064609483d
ci: allowlist known historical/fixture gitleaks findings
CI / skip-ci-check (pull_request) Successful in 11s
CI / docker-ci (pull_request) Successful in 12s
CI / secret-scan (pull_request) Successful in 15s
2026-07-13 15:55:43 -04:00
41d953638e
ci: fix gitleaks no-op ruleset (add useDefault = true)
CI / skip-ci-check (pull_request) Successful in 10s
CI / docker-ci (pull_request) Successful in 12s
CI / secret-scan (pull_request) Failing after 24s
2026-07-12 18:15:35 -05:00
f8bc0cd638
ci: add local pre-commit gitleaks hook
CI / skip-ci-check (pull_request) Successful in 9s
CI / docker-ci (pull_request) Successful in 11s
CI / secret-scan (pull_request) Successful in 19s
2026-07-12 16:23:00 -05:00
c9d0ffaa94
ci: add local pre-commit gitleaks hook
2026-07-12 16:22:59 -05:00
3e39f978f6
Merge pull request 'docs: close shipped triage issues; leave #43/#44 open' ( #54 ) from docs/close-shipped-issues into dev
CI / skip-ci-check (push) Successful in 6s
CI / docker-ci (push) Successful in 7s
CI / secret-scan (push) Successful in 12s
2026-07-09 19:41:40 -05:00
1bfc5adb6f
docs: close shipped triage issues; leave #43/#44 open
CI / skip-ci-check (pull_request) Successful in 7s
CI / docker-ci (pull_request) Successful in 8s
CI / secret-scan (pull_request) Successful in 12s
2026-07-09 20:41:18 -04:00
4f001e7887
Merge pull request 'docs: Postgres .179 + refresh next-steps' ( #53 ) from docs/fix-postgres-179-and-next-steps into master
CI / skip-ci-check (push) Successful in 6s
CI / docker-ci (push) Successful in 7s
CI / secret-scan (push) Successful in 15s
2026-07-09 14:17:07 -05:00
739ab17425
docs: retarget Postgres to .179 and refresh next-steps
...
CI / skip-ci-check (pull_request) Successful in 8s
CI / docker-ci (pull_request) Successful in 7s
CI / secret-scan (pull_request) Successful in 14s
Update deploy docs off dead .181, refresh FIXES_2026-07-09, and point
.notes/task_list at Gitea issues as source of truth.
2026-07-09 15:13:31 -04:00
eeb00339da
Merge pull request 'Release: merge dev into master (open-issue triage + thumb cache)' ( #52 ) from dev into master
...
CI / skip-ci-check (push) Successful in 6s
CI / docker-ci (push) Successful in 7s
CI / secret-scan (push) Successful in 12s
Reviewed-on: #52
2026-07-09 14:03:17 -05:00
3a4bfa9988
Merge pull request 'fix: open-issue triage (#21,#26,#45,#46,#47,#30-33)' ( #51 ) from fix/open-issues-triage into dev
...
CI / skip-ci-check (pull_request) Successful in 6s
CI / docker-ci (pull_request) Successful in 7s
CI / secret-scan (pull_request) Successful in 12s
Reviewed-on: #51
2026-07-09 13:58:27 -05:00
3769c897b0
perf: disk-cache grid thumbnails and document 2026-07-09 fixes
...
CI / skip-ci-check (pull_request) Successful in 6s
CI / docker-ci (pull_request) Successful in 7s
CI / secret-scan (pull_request) Successful in 12s
Cache resized thumbs under .cache/photo-thumbnails (360px) so repeat
grid loads skip Sharp. Document ticket/infra fixes; drop unused SVGs.
2026-07-09 14:54:08 -04:00
ffddeca268
fix: address open triage issues (#21,#26,#45,#46,#47,#30-33)
...
CI / skip-ci-check (pull_request) Successful in 6s
CI / docker-ci (pull_request) Successful in 7s
CI / secret-scan (pull_request) Successful in 11s
- #45 : re-read local folder when recursive checkbox toggles
- #47 : clear Identify crop spinner when image is already cached
- #46 : search selected people by person_ids; AND for "First Last"
- #21 : enqueue network import without blocking API walk
- #26 : serve resized grid thumbnails for photos
- #30/#31/#33: re-enable small-face filters in auto-match
2026-07-09 14:42:08 -04:00
2dab2aa7f9
Merge pull request 'PunimTag Web Application - Major Feature Release' ( #1 ) from dev into master
...
CI / skip-ci-check (push) Successful in 6s
CI / docker-ci (push) Successful in 9s
CI / secret-scan (push) Successful in 12s
Reviewed-on: #1
2026-07-09 12:20:31 -05:00
d69ad1576d
Merge pull request 'chore: merge master into dev (sync homelab CI bootstrap)' ( #50 ) from chore/sync-ci-from-master into dev
CI / skip-ci-check (pull_request) Successful in 10s
CI / docker-ci (pull_request) Successful in 11s
CI / secret-scan (pull_request) Successful in 16s
2026-05-29 21:52:46 -05:00
f0529e8274
chore: merge master into dev (sync homelab CI bootstrap)
...
CI / skip-ci-check (pull_request) Successful in 9s
CI / docker-ci (pull_request) Successful in 11s
CI / secret-scan (pull_request) Successful in 15s
Resolve add/add conflicts in CI files by adopting the homelab Gitea
Actions workflow from master (#48 ), replacing the legacy dev ci.yml.
2026-05-29 22:52:19 -04:00
5144d9a3b0
Merge pull request 'Add homelab Gitea Actions CI (generic)' ( #48 ) from ci/bootstrap-gitea-actions-docker into master
CI / skip-ci-check (push) Successful in 11s
CI / docker-ci (push) Successful in 11s
CI / secret-scan (push) Successful in 16s
CI / skip-ci-check (pull_request) Successful in 10s
CI / docker-ci (pull_request) Successful in 11s
CI / secret-scan (pull_request) Successful in 16s
2026-05-29 21:46:27 -05:00
2db7ee88c9
ci: sync gitleaks allowlist
CI / skip-ci-check (pull_request) Successful in 9s
CI / docker-ci (pull_request) Successful in 11s
CI / secret-scan (pull_request) Successful in 19s
2026-05-29 21:31:59 -05:00
c0b09b1d6b
ci: refresh workflow (re-run pipelines)
2026-05-29 21:31:56 -05:00
2658bc7b07
ci: sync gitleaks allowlist
CI / skip-ci-check (pull_request) Successful in 10s
CI / docker-ci (pull_request) Successful in 12s
CI / secret-scan (pull_request) Successful in 18s
2026-05-29 21:28:30 -05:00
7279c57955
ci: refresh workflow (re-run pipelines)
2026-05-29 21:28:28 -05:00
e2f980ad1a
ci: sync gitleaks allowlist
CI / skip-ci-check (pull_request) Successful in 12s
CI / docker-ci (pull_request) Successful in 14s
CI / secret-scan (pull_request) Successful in 18s
2026-05-29 21:24:22 -05:00
60c57bc351
ci: refresh workflow (re-run pipelines)
2026-05-29 21:24:13 -05:00
ef5d4df233
ci: add homelab gitleaks allowlist
CI / skip-ci-check (pull_request) Successful in 10s
CI / docker-ci (pull_request) Successful in 11s
CI / secret-scan (pull_request) Successful in 21s
2026-05-29 21:19:59 -05:00
d876a67244
ci: refresh workflow (re-run pipelines)
2026-05-29 21:19:56 -05:00
4fd6c4f24c
ci: refresh workflow (re-run pipelines)
CI / skip-ci-check (pull_request) Successful in 9s
CI / docker-ci (pull_request) Successful in 11s
CI / secret-scan (pull_request) Failing after 27s
2026-05-29 20:31:01 -05:00
eaa03d115b
ci: refresh workflow (re-run pipelines)
CI / skip-ci-check (pull_request) Successful in 10s
CI / docker-ci (pull_request) Successful in 12s
CI / secret-scan (pull_request) Failing after 31s
2026-05-29 20:28:42 -05:00
e6bd689a22
ci: sync workflow template
CI / skip-ci-check (pull_request) Successful in 9s
CI / docker-ci (pull_request) Successful in 11s
CI / secret-scan (pull_request) Failing after 36s
2026-05-29 20:26:18 -05:00
d21741c5b0
ci: refresh workflow (re-run pipelines)
CI / skip-ci-check (pull_request) Successful in 10s
CI / docker-ci (pull_request) Successful in 11s
CI / secret-scan (pull_request) Failing after 25s
2026-05-29 20:20:47 -05:00
9cfe05bd96
ci: sync workflow template (node container + host fixes)
CI / skip-ci-check (pull_request) Successful in 9s
CI / docker-ci (pull_request) Successful in 14s
CI / secret-scan (pull_request) Failing after 25s
2026-05-29 20:15:07 -05:00
c6fe7cbd3a
ci: add homelab Gitea Actions workflow (ci-docker.yml)
CI / skip-ci-check (pull_request) Failing after 8s
CI / docker-ci (pull_request) Has been skipped
CI / secret-scan (pull_request) Has been skipped
2026-05-29 16:15:08 -05:00
ccfd83e0f1
Merge pull request 'feat: web video transcoding, admin playback, and viewer fixes' ( #41 ) from feat/web-playback-viewer-admin into dev
...
Reviewed-on: #41
2026-03-25 14:47:08 -05:00
ff47c87e41
feat: web video transcoding, admin playback, and viewer fixes
...
CI / skip-ci-check (pull_request) Successful in 1m4s
CI / lint-and-type-check (pull_request) Has been cancelled
CI / python-lint (pull_request) Has been cancelled
CI / test-backend (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / secret-scanning (pull_request) Has been cancelled
CI / dependency-scan (pull_request) Has been cancelled
CI / sast-scan (pull_request) Has been cancelled
CI / workflow-summary (pull_request) Has been cancelled
Add on-demand H.264/AAC web playback (RQ, ffmpeg) with API routes and
Next.js proxies; extend admin UI with WebPlaybackVideo and shared hooks.
Store transcode cache beside pending-photos (WEB_VIDEO_CACHE_DIR / UPLOAD_DIR)
and ignore data/web_videos. Centralize FastAPI URL helpers, optional Vite
and Next base paths for subfolder deploy, and fix modal reopen by using
router.replace when closing the home photo viewer. Include migration,
install scripts, deployment doc updates, and CI admin build env tweak.
Made-with: Cursor
2026-03-25 15:33:05 -04:00
c316da02a4
Merge pull request 'feat: implement email sending functionality with SMTP and Resend fallback' ( #40 ) from feature/viewer-smtp-primary-resend-fallback into dev
...
Reviewed-on: #40
2026-03-23 14:30:43 -05:00
fc1914fe7a
Merge pull request 'docs: add appendix for permanent path redirect fixes in cPanel deployment guide' ( #39 ) from fix/hide-delete-for-inactive-users into dev
...
Reviewed-on: #39
2026-03-23 14:27:32 -05:00
a5838a8373
feat: implement email sending functionality with SMTP and Resend fallback
...
CI / skip-ci-check (pull_request) Successful in 29s
CI / lint-and-type-check (pull_request) Has been cancelled
CI / python-lint (pull_request) Has been cancelled
CI / test-backend (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / secret-scanning (pull_request) Has been cancelled
CI / dependency-scan (pull_request) Has been cancelled
CI / sast-scan (pull_request) Has been cancelled
CI / workflow-summary (pull_request) Has been cancelled
- Added support for sending emails using SMTP configuration or Resend API as a fallback.
- Updated environment variables in .env_example for SMTP settings.
- Enhanced email confirmation process with improved error handling and fallback logic.
- Introduced a test script to validate email sending configuration and functionality.
2026-03-23 15:23:55 -04:00
bda13fde67
docs: add appendix for permanent path redirect fixes in cPanel deployment guide
...
CI / skip-ci-check (pull_request) Successful in 31s
CI / lint-and-type-check (pull_request) Has been cancelled
CI / python-lint (pull_request) Has been cancelled
CI / test-backend (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / secret-scanning (pull_request) Has been cancelled
CI / dependency-scan (pull_request) Has been cancelled
CI / sast-scan (pull_request) Has been cancelled
CI / workflow-summary (pull_request) Has been cancelled
- Document long-term solutions for handling path prefixes in PunimTag deployments.
- Outline steps to configure viewer base path, align environment variables, and enforce consistent URL patterns.
- Include validation checklist and recommended deployment policy to ensure stable setups.
2026-03-23 14:11:44 -04:00
tanyar09
064daf47f7
documentation
2026-03-20 15:46:00 +00:00
5d5e828980
Merge pull request 'fix: remove unused isPlaying state variable in VideoPlayer' ( #38 ) from fix/video-player-typescript-error into dev
...
CI / skip-ci-check (pull_request) Has been cancelled
CI / lint-and-type-check (pull_request) Has been cancelled
CI / python-lint (pull_request) Has been cancelled
CI / test-backend (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / secret-scanning (pull_request) Has been cancelled
CI / dependency-scan (pull_request) Has been cancelled
CI / sast-scan (pull_request) Has been cancelled
CI / workflow-summary (pull_request) Has been cancelled
Reviewed-on: #38
2026-02-11 12:28:31 -05:00
fae8afaf84
fix: remove unused isPlaying state variable in VideoPlayer
...
CI / skip-ci-check (pull_request) Successful in 17s
CI / lint-and-type-check (pull_request) Successful in 1m1s
CI / python-lint (pull_request) Successful in 41s
CI / test-backend (pull_request) Successful in 2m45s
CI / build (pull_request) Successful in 3m31s
CI / secret-scanning (pull_request) Successful in 25s
CI / dependency-scan (pull_request) Successful in 21s
CI / sast-scan (pull_request) Successful in 1m38s
CI / workflow-summary (pull_request) Successful in 16s
- Remove unused isPlaying state that was causing TypeScript error TS6133
- Component only needs showPlayButton to control play button overlay visibility
- Fixes build error: 'isPlaying' is declared but its value is never read
2026-02-11 12:26:35 -05:00
2aac3befd4
Merge pull request 'feature/video-player-play-button' ( #37 ) from feature/video-player-play-button into dev
...
CI / skip-ci-check (pull_request) Has been cancelled
CI / lint-and-type-check (pull_request) Has been cancelled
CI / python-lint (pull_request) Has been cancelled
CI / test-backend (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / secret-scanning (pull_request) Has been cancelled
CI / dependency-scan (pull_request) Has been cancelled
CI / sast-scan (pull_request) Has been cancelled
CI / workflow-summary (pull_request) Has been cancelled
Reviewed-on: #37
2026-02-11 12:18:35 -05:00
726b36db80
feat: add informational message for bulk auto-match operation
...
CI / skip-ci-check (pull_request) Successful in 17s
CI / lint-and-type-check (pull_request) Successful in 1m1s
CI / python-lint (pull_request) Successful in 44s
CI / test-backend (pull_request) Successful in 2m51s
CI / build (pull_request) Failing after 3m29s
CI / secret-scanning (pull_request) Successful in 24s
CI / dependency-scan (pull_request) Successful in 21s
CI / sast-scan (pull_request) Successful in 1m37s
CI / workflow-summary (pull_request) Failing after 15s
- Show confirmation dialog before starting auto-match operation
- Inform users that it's a bulk operation processing entire photo library
- Warn that some matches may not be 100% accurate
- Recommend reviewing results after completion
2026-02-11 12:15:44 -05:00
4d8158ab94
feat: add Play button overlay for videos in search results
...
- Create VideoPlayer component with centered Play button overlay
- Add /video/:id route to display videos with Play button
- Update Search page to open videos in VideoPlayer page instead of direct URL
- Play button shows when video is paused/stopped and hides when playing
- Button includes hover effects and doesn't interfere with native controls
2026-02-11 12:12:34 -05:00
7d415c56fe
Merge pull request 'feat: enhance tag addition functionality in PhotoTagDialog' ( #36 ) from tags-tsx-updates into dev
...
CI / skip-ci-check (pull_request) Has been cancelled
CI / lint-and-type-check (pull_request) Has been cancelled
CI / python-lint (pull_request) Has been cancelled
CI / test-backend (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / secret-scanning (pull_request) Has been cancelled
CI / dependency-scan (pull_request) Has been cancelled
CI / sast-scan (pull_request) Has been cancelled
CI / workflow-summary (pull_request) Has been cancelled
Reviewed-on: #36
2026-02-10 13:55:40 -05:00
tanyar09
8992c07c8e
feat: enhance tag addition functionality in PhotoTagDialog
...
CI / skip-ci-check (pull_request) Successful in 16s
CI / lint-and-type-check (pull_request) Successful in 1m0s
CI / python-lint (pull_request) Successful in 40s
CI / test-backend (pull_request) Successful in 3m42s
CI / build (pull_request) Successful in 3m31s
CI / secret-scanning (pull_request) Successful in 23s
CI / dependency-scan (pull_request) Successful in 21s
CI / sast-scan (pull_request) Successful in 1m35s
CI / workflow-summary (pull_request) Successful in 14s
- Introduced a new input field for entering new tag names alongside selecting existing tags.
- Updated the handleAddTag function to support adding multiple tags at once.
- Improved user experience with alerts for empty tag submissions and success feedback.
- Enhanced UI with clear labeling and instructions for tag management.
2026-02-10 18:54:26 +00:00
c5c3059409
Merge pull request 'fix/auto-match-stricter-filtering' ( #35 ) from fix/auto-match-stricter-filtering into dev
...
CI / skip-ci-check (pull_request) Has been cancelled
CI / lint-and-type-check (pull_request) Has been cancelled
CI / python-lint (pull_request) Has been cancelled
CI / test-backend (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / secret-scanning (pull_request) Has been cancelled
CI / dependency-scan (pull_request) Has been cancelled
CI / sast-scan (pull_request) Has been cancelled
CI / workflow-summary (pull_request) Has been cancelled
Reviewed-on: #35
2026-02-10 13:29:26 -05:00
cc74599959
refactor: simplify developer mode to use environment variable
...
CI / skip-ci-check (pull_request) Successful in 16s
CI / lint-and-type-check (pull_request) Successful in 59s
CI / python-lint (pull_request) Successful in 40s
CI / test-backend (pull_request) Successful in 3m57s
CI / build (pull_request) Successful in 3m36s
CI / secret-scanning (pull_request) Successful in 25s
CI / dependency-scan (pull_request) Successful in 21s
CI / sast-scan (pull_request) Successful in 1m40s
CI / workflow-summary (pull_request) Successful in 14s
- Replace localStorage-based dev mode with VITE_DEVELOPER_MODE env var
- Remove setDeveloperMode function and localStorage logic
- Update Settings page to show status instead of toggle
- Add VITE_DEVELOPER_MODE to vite-env.d.ts type definitions
- Update .env_example with developer mode documentation
Developer mode is now controlled by setting VITE_DEVELOPER_MODE=true
in admin-frontend/.env file (requires rebuild to take effect)
2026-02-10 13:26:13 -05:00
a6ba78cd54
feat: add debug mode, distance-based thresholds, and improve pose detection
...
- Add debug mode support for encoding statistics in API responses
- Debug info includes encoding length, min/max/mean/std, and first 10 values
- Frontend logs encoding stats to browser console when debug enabled
- Identify page enables debug mode by default
- Implement distance-based confidence thresholds for stricter matching
- Borderline distances require higher confidence (70-95% vs 50%)
- Applied when use_distance_based_thresholds=True (auto-match)
- Reduces false positives for borderline matches
- Dual tolerance system for auto-match
- Default tolerance 0.6 for regular browsing (more lenient)
- Run auto-match button uses 0.5 tolerance with distance-based thresholds (stricter)
- Auto-accept threshold updated to 85% (from 70%)
- Enhance pose detection with single-eye detection
- Profile threshold reduced from 30° to 15° (stricter)
- Detect single-eye visibility for extreme profile views
- Infer profile direction from landmark visibility
- Improved face width threshold (20px vs 10px)
- Clean up debug code
- Remove test photo UUID checks from production code
- Remove debug print statements
- Replace print statements with proper logging
2026-02-10 13:20:07 -05:00
6b6b1449b2
Modified files:
...
backend/config.py - Added MIN_AUTO_MATCH_FACE_SIZE_RATIO = 0.005
backend/services/face_service.py - Multiple changes:
Added load_face_encoding() function (supports float32 and float64)
Added _calculate_face_size_ratio() function
Updated find_similar_faces() to filter small faces
Updated find_auto_match_matches() to exclude small reference faces
Fixed reference face quality calculation (use actual quality, not hardcoded 0.5)
Fixed duplicate detection (exclude faces from same photo)
Updated confidence threshold from 40% to 50%
Updated confidence calibration (moderate version)
backend/api/faces.py - Updated default tolerance to 0.5 for auto-match endpoints
backend/schemas/faces.py - Updated default tolerance to 0.5
admin-frontend/src/pages/AutoMatch.tsx - Updated default tolerance to 0.5
admin-frontend/src/api/faces.ts - Added tolerance parameter support
2026-02-06 14:16:11 -05:00
863b6188b4
Merge pull request 'feature/extend-people-search-and-fix-port-binding' ( #34 ) from feature/extend-people-search-and-fix-port-binding into dev
...
CI / skip-ci-check (pull_request) Successful in 8s
CI / lint-and-type-check (pull_request) Successful in 52s
CI / python-lint (pull_request) Successful in 35s
CI / test-backend (pull_request) Successful in 2m30s
CI / build (pull_request) Successful in 3m25s
CI / secret-scanning (pull_request) Successful in 15s
CI / dependency-scan (pull_request) Successful in 13s
CI / sast-scan (pull_request) Successful in 1m30s
CI / workflow-summary (pull_request) Successful in 6s
Reviewed-on: #34
2026-02-05 12:51:36 -05:00
tanyar09
d0dd5c82ea
feat: add click logging for admin frontend
...
CI / skip-ci-check (pull_request) Successful in 8s
CI / lint-and-type-check (pull_request) Successful in 54s
CI / test-backend (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / secret-scanning (pull_request) Has been cancelled
CI / dependency-scan (pull_request) Has been cancelled
CI / sast-scan (pull_request) Has been cancelled
CI / workflow-summary (pull_request) Has been cancelled
CI / python-lint (pull_request) Has been cancelled
- Add backend click logging utility with file rotation and retention
- Add POST /api/v1/log/click endpoint for logging click events
- Add frontend click logger service with batching and context extraction
- Add global click handler in App.tsx for authenticated users
- Add log cleanup script for old log files
- Update QUICK_LOG_REFERENCE.md with click log documentation
Logs are written to /opt/punimtag/logs/admin-clicks.log with:
- Auto-rotation at 10MB (keeps 5 backups)
- 30-day retention
- Format: timestamp | username | page | element_type | element_id | element_text | context
2026-02-05 17:50:15 +00:00