From cc8de0e52d12629f7110f5e0ab1b26ea46e29d67 Mon Sep 17 00:00:00 2001 From: mischa Date: Sat, 27 Jun 2026 22:34:55 +0200 Subject: [PATCH] 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. --- docs/BACKLOG.md | 25 +++++++++++++++++++++++++ docs/ROADMAP.md | 1 + 2 files changed, 26 insertions(+) create mode 100644 docs/BACKLOG.md diff --git a/docs/BACKLOG.md b/docs/BACKLOG.md new file mode 100644 index 0000000..381181a --- /dev/null +++ b/docs/BACKLOG.md @@ -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. diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index c683cf2..02f88ad 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -63,6 +63,7 @@ These apply across all milestones (decided during the 2026-06-27 brainstorm): ## Related specs +- Open near-term tasks (loose ends between milestones): `docs/BACKLOG.md` - M1: `docs/superpowers/specs/2026-06-27-immich-photo-flow-design.md` - M1.5 pgvector spike — design: `docs/superpowers/specs/2026-06-27-pgvector-embedding-spike-design.md` - M1.5 pgvector spike — findings (M1.5's contract): `docs/superpowers/specs/2026-06-27-pgvector-embedding-findings.md`