25 Commits

Author SHA1 Message Date
William Valentin
35e3cbf52f feat: support lan/tailnet endpoint selection for presigned URLs 2026-02-05 10:10:53 -08:00
William Valentin
d93caedb31 fix: align moments range and failed filter 2026-02-05 09:17:16 -08:00
William Valentin
523460f639 fix: improve moments clustering 2026-02-05 09:14:45 -08:00
William Valentin
fdd1c932fd fix: stop dupes loading on error 2026-02-04 23:46:32 -08:00
William Valentin
83f3ff1f69 feat: expose and display duplicates 2026-02-04 23:38:24 -08:00
William Valentin
c6b4095a39 fix: move Leaflet CSS import 2026-02-04 18:13:30 -08:00
William Valentin
8f59d3ba72 feat: add map page 2026-02-04 17:42:41 -08:00
William Valentin
4b2a4808b6 feat: add geo points endpoint 2026-02-04 16:44:57 -08:00
William Valentin
ffba6fb290 fix: sync capture override response 2026-02-04 11:02:06 -08:00
William Valentin
8eae0c7c97 feat: add UI for capture time override 2026-02-04 08:57:27 -08:00
William Valentin
d0ad1caec5 fix: preserve capture overrides on partial updates 2026-02-02 21:27:21 -08:00
William Valentin
6525a553ae feat: add capture time overrides and apply in queries 2026-02-02 21:21:11 -08:00
William Valentin
1f8c28e1db fix: handle viewer load errors 2026-02-02 19:47:45 -08:00
William Valentin
eb712ac9e9 feat: add tags/albums UI 2026-02-02 19:46:24 -08:00
William Valentin
e455425d2e fix: return 400 on invalid tag/album payload 2026-02-01 18:01:25 -08:00
William Valentin
51aba941d6 feat: add admin tags and albums APIs 2026-02-01 17:57:10 -08:00
William Valentin
691f5908d3 fix: use playback selector in MediaPanel 2026-02-01 16:52:34 -08:00
William Valentin
4cd6dfef40 fix: use playback selector in MediaPanel 2026-02-01 16:49:47 -08:00
William Valentin
8479f50daa feat: add asset variants endpoint 2026-02-01 16:47:50 -08:00
William Valentin
5058afc980 feat: prefer derived mp4 playback with fallback 2026-02-01 15:58:11 -08:00
William Valentin
517e21d0b7 fix: fallback to legacy keys for variant lookup 2026-02-01 12:13:39 -08:00
William Valentin
26e2d74d2b feat: add asset variants table and URL selection 2026-02-01 12:08:18 -08:00
William Valentin
7c8406c7cc feat: require admin token for ingestion endpoints 2026-02-01 03:08:15 -08:00
OpenCode Test
4e2ab7cdd8 task-11: complete QA + hardening with resilience fixes
- Created comprehensive QA checklist covering edge cases (missing EXIF, timezones, codecs, corrupt files)
- Added ErrorBoundary component wrapped around TimelineTree and MediaPanel
- Created global error.tsx page for unhandled errors
- Improved failed asset UX with red borders, warning icons, and inline error display
- Added loading skeletons to TimelineTree and MediaPanel
- Added retry button for failed media loads
- Created DEPLOYMENT_VALIDATION.md with validation commands and checklist
- Applied k8s recommendations:
  - Changed node affinity to required for compute nodes (Pi 5)
  - Enabled Tailscale LoadBalancer service for MinIO S3 (reliable Range requests)
  - Enabled cleanup CronJob for staging files
2025-12-24 12:45:22 -08:00
OpenCode Test
e1a64aa092 Initial commit 2025-12-24 10:50:10 -08:00