docs: add BACKLOG.md for near-term open tasks

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.
This commit is contained in:
2026-06-27 22:34:55 +02:00
parent d9ba194b30
commit cc8de0e52d
2 changed files with 26 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
# 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.