Track loose ends between milestones: the pgvector spike's final coverage snapshot (pending CLIP re-run completion), the M1 validation-gate run on a hard sample, and the M1.5 least-privilege read-only role. Linked from ROADMAP.
26 lines
1.5 KiB
Markdown
26 lines
1.5 KiB
Markdown
# Backlog
|
|
|
|
Small, near-term open tasks that don't warrant a full milestone. Milestones live in
|
|
`docs/ROADMAP.md`; this file tracks the loose ends between them. Remove an item when it's done.
|
|
|
|
## Open
|
|
|
|
- [ ] **pgvector spike — final coverage snapshot.** The feasibility spike has *passed* (embeddings
|
|
readable, `assetId → asset.id` join clean, shape pinned: `smart_search.embedding`, 1152-dim,
|
|
cosine `<=>`). The CLIP re-run with the stronger model is still in progress (coverage ~70% and
|
|
climbing as of 2026-06-27). When it reaches ~100%, run `scripts/pgvector_spike.py` once (no
|
|
flags) and commit the refreshed findings doc to record final coverage.
|
|
See the "Definition of done" in `docs/superpowers/specs/2026-06-27-pgvector-embedding-spike-design.md`.
|
|
|
|
- [ ] **M1 validation gate — run on a hard, GPS-poor sample.** M1 shipped, but the acceptance-bar
|
|
run on a hard sample (not the easy last trip) is still pending before widening.
|
|
See `docs/M1-validation-gate.md` and the M1 row in `docs/ROADMAP.md`.
|
|
|
|
## Later / dependent
|
|
|
|
- [ ] **M1.5 — provision a least-privilege read-only Postgres role.** When M1.5 builds the pgvector
|
|
reader, replace the spike's session-level read-only guard (using Immich's write-capable `postgres`
|
|
user) with a dedicated `SELECT`-only role. Recipe is in the findings doc. Also: the pgvector reader
|
|
belongs in `shared/photoflow/immich` (the only Immich client) and any SQLite access in
|
|
`shared/photoflow/core` (the only SQLite owner) — not in app-level code.
|