Commit Graph
22 Commits
Author SHA1 Message Date
ilia e8c13f86d7 Add People hub, Phase 5 junk reject, cluster-name, a11y smoke.
CI / skip-ci-check (pull_request) Successful in 30s
CI / python-lint (pull_request) Successful in 32s
CI / docker-ci (pull_request) Successful in 31s
CI / secret-scan (pull_request) Successful in 39s
CI / viewer-unit (pull_request) Successful in 1m44s
CI / admin-unit (pull_request) Successful in 2m1s
CI / e2e (pull_request) Failing after 2m2s
Nest Identify/Auto-Match/Modify under /people with redirects; reject
blur/extreme pose at Process; Name-cluster on Identify; axe smoke tests;
helpers to rotate DEV admin password and seed match_decisions.
2026-08-05 14:24:28 -04:00
ilia 32e5fc1974 Make admin Chabad chrome match viewer (navy + theme).
CI / skip-ci-check (pull_request) Successful in 30s
CI / docker-ci (pull_request) Successful in 32s
CI / python-lint (pull_request) Successful in 32s
CI / secret-scan (pull_request) Successful in 38s
CI / viewer-unit (pull_request) Successful in 1m43s
CI / admin-unit (pull_request) Successful in 2m3s
CI / e2e (pull_request) Failing after 2m49s
Add light/dark toggle, navy gold-accented sidebar, skip link, and
clearer titles so admin reads as the same JRCC brand; document UX
review and next priorities in ROADMAP.
2026-08-05 14:13:26 -04:00
ilia 39c36a68e2 Note person merge shipped; Phase 6 remains cluster-name work.
CI / skip-ci-check (pull_request) Successful in 35s
CI / docker-ci (pull_request) Successful in 34s
CI / secret-scan (pull_request) Successful in 41s
CI / python-lint (pull_request) Successful in 38s
CI / admin-unit (pull_request) Successful in 57s
CI / viewer-unit (pull_request) Successful in 1m34s
CI / e2e (pull_request) Successful in 4m46s
2026-08-05 12:32:26 -04:00
ilia c8067470cc Align admin Chabad Blue theme and Immich precision gates.
CI / skip-ci-check (pull_request) Successful in 30s
CI / python-lint (pull_request) Successful in 32s
CI / docker-ci (pull_request) Successful in 32s
CI / secret-scan (pull_request) Successful in 40s
CI / viewer-unit (pull_request) Successful in 1m42s
CI / e2e (pull_request) Successful in 1m55s
CI / admin-unit (pull_request) Successful in 2m0s
Port viewer design tokens to admin shell/login with JRCC branding; add max recognition distance, next-best person margin, stricter detection floor, and tighter auto-accept distance.
2026-08-05 12:13:24 -04:00
ilia a0795daec3 Multi-ref Auto-Match and robust confidence fit (Phase 4).
CI / skip-ci-check (pull_request) Successful in 30s
CI / python-lint (pull_request) Successful in 33s
CI / docker-ci (pull_request) Successful in 33s
CI / secret-scan (pull_request) Successful in 35s
CI / e2e (pull_request) Successful in 2m35s
CI / viewer-unit (pull_request) Successful in 2m54s
CI / admin-unit (pull_request) Successful in 3m8s
Match each person against up to three trusted refs (best distance wins), document DEV accuracy metrics, and replace the collapsing histogram calibrator with a rolling-mean fitter.
2026-08-05 11:58:52 -04:00
ilia b68d7d6507 Add confidence fit + quality re-score tooling (Phase 3).
CI / skip-ci-check (pull_request) Successful in 30s
CI / docker-ci (pull_request) Successful in 31s
CI / python-lint (pull_request) Failing after 32s
CI / secret-scan (pull_request) Successful in 38s
CI / admin-unit (pull_request) Successful in 50s
CI / e2e (pull_request) Successful in 3m11s
CI / viewer-unit (pull_request) Successful in 3m33s
Support distance→confidence knots from identified pairs and match_decisions, keep legacy curve until a knots file is applied, and re-score face quality without re-detecting.
2026-08-05 11:33:42 -04:00
ilia 085b7962cf Tighten Auto-Match refs and log accept/reject (Phase 2).
CI / skip-ci-check (pull_request) Successful in 30s
CI / python-lint (pull_request) Successful in 31s
CI / docker-ci (pull_request) Successful in 32s
CI / secret-scan (pull_request) Successful in 35s
CI / e2e (pull_request) Successful in 2m34s
CI / viewer-unit (pull_request) Successful in 2m53s
CI / admin-unit (pull_request) Successful in 3m8s
Raise reference quality floor to 0.5, align browse/run/auto-accept defaults with UI copy, and persist match_decisions for later confidence calibration.
2026-08-05 11:23:24 -04:00
ilia 7856be47ff Fix face quality sharpness: Laplacian on face crop (Phase 1).
CI / skip-ci-check (pull_request) Successful in 30s
CI / python-lint (pull_request) Successful in 32s
CI / docker-ci (pull_request) Successful in 33s
CI / secret-scan (pull_request) Successful in 36s
CI / viewer-unit (pull_request) Successful in 1m44s
CI / e2e (pull_request) Successful in 1m54s
CI / admin-unit (pull_request) Successful in 2m0s
Sharpness previously used variance of the kernel constant, so every face
got ~0 sharpness weight. Compute Laplacian variance on the grayscale crop;
add unit tests and an error-tagging checklist for follow-on accuracy work.
2026-08-05 11:04:31 -04:00
ilia 0b4162de5f Fix favorite sign-in copy and pale text-secondary contrast.
CI / skip-ci-check (pull_request) Successful in 30s
CI / python-lint (pull_request) Successful in 31s
CI / docker-ci (pull_request) Successful in 33s
CI / secret-scan (pull_request) Successful in 35s
CI / viewer-unit (pull_request) Successful in 2m53s
CI / e2e (pull_request) Failing after 3m4s
CI / admin-unit (pull_request) Successful in 3m7s
Logged-out favorite/report share a reason-aware SignInRequiredDialog so
favorites no longer show report messaging. Replace misplaced text-secondary
(light wash token) with foreground/primary on labels, auth, and menus.
2026-08-05 10:33:29 -04:00
ilia 26faf33a95 Sprint D: hardening e2e, /search redirect, scroll restore fix.
CI / skip-ci-check (pull_request) Successful in 29s
CI / docker-ci (pull_request) Successful in 32s
CI / python-lint (pull_request) Successful in 32s
CI / secret-scan (pull_request) Successful in 37s
CI / viewer-unit (pull_request) Successful in 1m53s
CI / admin-unit (pull_request) Successful in 2m39s
CI / e2e (pull_request) Failing after 3m19s
Admin review smoke tests, CWV budgets, unified gallery at /, and explicit
body unlock when closing the photo modal so scroll position restores.
2026-08-04 22:17:43 -04:00
ilia 3a6eab2566 Docs: Sprint C admin throughput + Sprint D backlog.
CI / skip-ci-check (pull_request) Successful in 32s
CI / docker-ci (pull_request) Successful in 36s
CI / python-lint (pull_request) Successful in 36s
CI / secret-scan (pull_request) Successful in 47s
CI / admin-unit (pull_request) Successful in 1m18s
CI / viewer-unit (pull_request) Successful in 2m6s
CI / e2e (pull_request) Successful in 1m35s
2026-08-04 22:03:43 -04:00
ilia 69fd9a2fc8 Docs: Sprint B mobile gallery UX.
CI / skip-ci-check (pull_request) Successful in 39s
CI / python-lint (pull_request) Successful in 36s
CI / docker-ci (pull_request) Successful in 36s
CI / secret-scan (pull_request) Successful in 47s
CI / admin-unit (pull_request) Successful in 1m18s
CI / viewer-unit (pull_request) Successful in 2m14s
CI / e2e (pull_request) Successful in 1m41s
2026-08-04 21:58:24 -04:00
ilia 6917cc8407 Docs: Sprint A UX (match-all, slim payloads, deploy-viewer).
CI / skip-ci-check (pull_request) Successful in 29s
CI / docker-ci (pull_request) Successful in 32s
CI / python-lint (pull_request) Successful in 32s
CI / secret-scan (pull_request) Successful in 37s
CI / viewer-unit (pull_request) Successful in 1m38s
CI / admin-unit (pull_request) Successful in 1m51s
CI / e2e (pull_request) Failing after 2m3s
2026-08-04 21:48:43 -04:00
ilia 15633a1d37 Switch viewer PM2 template to next start and add deploy-viewer.sh.
DEV should build once then run production Next.js instead of long-lived next dev.
2026-08-04 21:48:25 -04:00
ilia c64a97d147 Add person email/phone, approve bulk select, and pending-queue digest
CI / skip-ci-check (pull_request) Successful in 29s
CI / python-lint (pull_request) Successful in 31s
CI / docker-ci (pull_request) Successful in 32s
CI / secret-scan (pull_request) Successful in 37s
CI / e2e (pull_request) Successful in 4m32s
CI / viewer-unit (pull_request) Successful in 4m42s
CI / admin-unit (pull_request) Successful in 5m6s
Capture optional contact fields on identify/approve, add Select All and
Approve Next 10 on User Identified Faces, and email admins when the
pending queue grows (ADMIN_NOTIFY_EMAIL via existing noreply SMTP).
2026-08-04 12:20:39 -04:00
ilia abb7b34700 docs: finish homelab IP scrub across repo, add e2e env-defaults local override 2026-07-26 15:56:57 -04:00
ilia 5f8f2e0bee Update roadmap 2026-07-26 15:27:17 -04:00
ilia c0c997f796 test: timing budgets + CI hardening (artifact v3 pin, npm cache retry)
CI / skip-ci-check (pull_request) Successful in 5s
CI / docker-ci (pull_request) Successful in 7s
CI / secret-scan (pull_request) Successful in 12s
CI / viewer-unit (pull_request) Successful in 1m29s
CI / e2e (pull_request) Successful in 4m8s
CI / admin-unit (pull_request) Successful in 4m24s
Closes three items from the outstanding e2e/CI gap list:

- Timing budgets: timings.measure() only ever recorded durations for the
  (still-unwired) Pushgateway export — nothing failed CI when a step got
  slow. Add e2e/timing-budgets.ts (expectWithinBudget + shared BUDGET_MS
  buckets) and wire it into every measure() call site across the suite.
  Mail-wait steps are deliberately left unbudgeted (external mail-trap
  delivery latency, not a code performance signal).

- actions/upload-artifact@v4 doesn't work against this Gitea/act runner's
  artifact backend — pin to v3 for the e2e failure-report upload.

- Shared act_runner npm cache has corrupted platform-native tarballs before
  (@next/swc-linux-x64-musl) and reds viewer-unit/admin-unit/e2e with no
  product bug involved. All three npm ci steps now retry once after
  `npm cache clean --force` on first failure.

Verified: full local suite green against DEV (37 passed, 6 skipped, no
budget assertion failures) before wiring into CI.
2026-07-15 08:56:31 -04:00
ilia 96351288f0 test: playkit v0.3.1 adoption, Zod widening, PROD smoke, NextAuth write gates (#68)
CI / skip-ci-check (push) Successful in 4s
CI / docker-ci (push) Successful in 6s
CI / secret-scan (push) Successful in 11s
CI / admin-unit (push) Successful in 1m23s
CI / viewer-unit (push) Successful in 2m2s
CI / e2e (push) Successful in 2m43s
2026-07-14 22:24:07 -05:00
ilia 72e89aef9f docs: playkit gaps + next e2e ideas (#67)
CI / skip-ci-check (push) Successful in 4s
CI / docker-ci (push) Successful in 6s
CI / secret-scan (push) Successful in 11s
CI / e2e (push) Failing after 3m3s
CI / viewer-unit (push) Successful in 3m9s
2026-07-14 20:26:33 -05:00
ilia e78fad692f test: FastAPI e2e role-permission gates + gallery search filter coverage
CI / skip-ci-check (pull_request) Successful in 5s
CI / docker-ci (pull_request) Successful in 5s
CI / secret-scan (pull_request) Successful in 10s
CI / viewer-unit (pull_request) Successful in 2m33s
CI / e2e (pull_request) Successful in 2m38s
- Wire E2E_API_USERNAME/PASSWORD (admin) + E2E_API_VIEWER_USERNAME/PASSWORD
  (viewer) into the Gitea Actions e2e job so FastAPI-authed specs run in CI.
- Add api.role-permissions.spec.ts: viewer 403 vs admin 200/200/200 on
  /api/v1/users, /api/v1/role-permissions, and /api/v1/photos/bulk-delete
  (safe no-op via a non-existent photo id — proves the gate, not deletion).
- Add gallery.search-filters.spec.ts: tag_id and person_id filters on the
  public /api/search route return correct subsets, combined filters narrow
  results, and the /search UI tag-filter interaction updates the URL/count.
- Update ROADMAP/README/.env.example for the new env vars and coverage.
2026-07-14 20:42:47 -04:00
ilia d9910acdde Fill e2e gaps: storageState, real upload POST, session smoke
CI / skip-ci-check (pull_request) Successful in 3s
CI / docker-ci (pull_request) Successful in 5s
CI / secret-scan (pull_request) Successful in 12s
CI / viewer-unit (pull_request) Successful in 3m11s
CI / e2e (pull_request) Failing after 5m24s
Add auth setup project, viewer session check, upload that posts a fixture,
FastAPI login spec (skips without E2E_API_*), and repo ROADMAP.md.
2026-07-14 19:17:14 -04:00