From 46614574c403a7037739e20532623e5fdf196d3f Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Tue, 24 Mar 2026 09:21:02 +0100 Subject: [PATCH] docs(phase-03): evolve PROJECT.md after phase completion --- .planning/PROJECT.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.planning/PROJECT.md b/.planning/PROJECT.md index 8cf57fb..60ab67a 100644 --- a/.planning/PROJECT.md +++ b/.planning/PROJECT.md @@ -29,10 +29,14 @@ Reliable, persistent visibility into which services need updating — data never - ✓ Server struct replaces package-level globals (db, mu, webhookSecret) — Phase 2 - ✓ Schema migrations via golang-migrate with embedded SQL files — Phase 2 - ✓ Per-test in-memory databases for isolated, parallel-safe testing — Phase 2 +- ✓ PostgreSQL support via pgx/v5 with DATABASE_URL env var selection — Phase 3 +- ✓ Separate PostgreSQL migration directory with baseline schema — Phase 3 +- ✓ Docker Compose profiles for optional PostgreSQL service — Phase 3 +- ✓ Cross-dialect UNIQUE constraint detection (case-insensitive) — Phase 3 ### Active -- [ ] Add PostgreSQL support alongside SQLite (dual DB, user chooses) +- [ ] Bulk acknowledge (dismiss all, dismiss by group) - [ ] Bulk acknowledge (dismiss all, dismiss by group) - [ ] Filtering and search across updates - [ ] In-dashboard new-update indicators (badge/counter/toast) @@ -69,7 +73,9 @@ Reliable, persistent visibility into which services need updating — data never | Decision | Rationale | Outcome | |----------|-----------|---------| -| Dual DB (SQLite + PostgreSQL) | SQLite is fine for simple setups, Postgres for users who want robustness | — Pending | +| Dual DB (SQLite + PostgreSQL) | SQLite is fine for simple setups, Postgres for users who want robustness | ✓ Phase 3 | +| DATABASE_URL as DB selector | Presence of DATABASE_URL activates PostgreSQL; absence falls back to SQLite with DB_PATH | ✓ Phase 3 | +| pgx/v5/stdlib over native pgx | Keeps both stores on database/sql for identical constructor signatures | ✓ Phase 3 | | Fix SQLite bugs before adding features | Data trust is the #1 priority; features on a broken foundation waste effort | ✓ Phase 1 | | Store interface as persistence abstraction | 9 methods, no SQL in handlers; enables PostgreSQL swap without touching HTTP layer | ✓ Phase 2 | | Server struct over package globals | Dependency injection via constructor; enables per-test isolated databases | ✓ Phase 2 | @@ -94,4 +100,4 @@ This document evolves at phase transitions and milestone boundaries. 4. Update Context with current state --- -*Last updated: 2026-03-24 after Phase 2 completion* +*Last updated: 2026-03-24 after Phase 3 completion*