From 54eede23e375cbc7dac5d38e54940b4e9cacf7af Mon Sep 17 00:00:00 2001 From: Ben Stull Date: Thu, 4 Jun 2026 00:25:48 -0700 Subject: [PATCH] update ohm/0067/SESSION-0067.0-TRANSCRIPT-2026-06-03T20-31--INPROGRESS.md --- ...TRANSCRIPT-2026-06-03T20-31--INPROGRESS.md | 77 ++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/ohm/0067/SESSION-0067.0-TRANSCRIPT-2026-06-03T20-31--INPROGRESS.md b/ohm/0067/SESSION-0067.0-TRANSCRIPT-2026-06-03T20-31--INPROGRESS.md index c4f72f8..ca63f9c 100644 --- a/ohm/0067/SESSION-0067.0-TRANSCRIPT-2026-06-03T20-31--INPROGRESS.md +++ b/ohm/0067/SESSION-0067.0-TRANSCRIPT-2026-06-03T20-31--INPROGRESS.md @@ -10,4 +10,79 @@ ## Launch prompt -_(launch prompt not captured at claim time)_ +Session-init → goal proposal selected §22 M3 (next slice after M1+M2). Operator +invoked brainstorming to design it. + +## Plan + +**Goal:** Design (this session) the backend half of §22 slice **M3** — multi-project +registry mirror + data spine + runtime-config APIs. Roadmap: `ohm-rfc/ROADMAP.md` +defers to framework slicing plan in `rfc-app/docs/design/multi-project-spec.md` Part C. + +**Brainstorming decisions:** +1. Scope split at the backend/frontend seam — this session = **M3-backend**; + routing/branding/directory/switcher = a later **M3-frontend** spec. +2. Build the full `initial_state`/`unreviewed` review plumbing now. +3. Config hard cut: `REGISTRY_REPO` required, `META_REPO` removed. +4. Re-stamp `default` → config slug by rewriting `project_id` everywhere + (folded into the 12-table PK rebuild). +5. Registry mirror in a self-contained `app/registry.py` (Option A), driven by + the existing webhook + `Reconciler.sweep()`. + +**Deliverable:** design spec at +`rfc-app/docs/superpowers/specs/2026-06-03-m3-backend-design.md` (committed on +branch `m3-backend-registry-spine`, `6f356d3`) → user review → writing-plans → +implementation. + +**Planning discoveries (folded into spec):** +- Re-stamp must be a Python startup step — pure-SQL migrations can't read + `DEFAULT_PROJECT_ID` (same constraint that forced M1's `seed_default_project`). +- The 12-table PK rebuild has a wide blast radius (~10 `ON CONFLICT` sites + every + RFC/branch writer needs `project_id` threading, FK-bomb post-re-stamp). Operator + chose to **split M3-backend into two plans**: **Plan A** (registry mirror + APIs + + initial_state/unreviewed + additive migration 027 — no rebuild/re-stamp/ + threading) ships first; **Plan B** (PK rebuild + threading + re-stamp) lands + before M4 / before public `/p/` URLs. + +**Deliverables (committed, branch `m3-backend-registry-spine`):** +- Spec: `docs/superpowers/specs/2026-06-03-m3-backend-design.md` (`6f356d3`, refined) +- Plan A: `docs/superpowers/plans/2026-06-03-m3-backend-plan-a.md` (`dd72f91`) — + 9 TDD tasks, each green-on-commit. + +**State:** Plan A IMPLEMENTED via subagent-driven development (9 tasks, each +implementer → spec review → code-quality review, fixes looped until approved). + +## Cut state (Plan A implementation) + +Branch `m3-backend-registry-spine`, off `dd72f91` (spec+plan commits). Full suite +**434 passed**. Version bumped 0.32.0 → **0.33.0**. Final whole-implementation +review (opus): **Ready to integrate**, no critical/important issues. + +Task commits: +- T1 entry review fields — `597f6bc` +- T2 migration 027 (additive) — `2d9022b` +- T3 cache review mirror — `8f21dc5` +- T4 registry.py module — `27a0a04` (+ review fixes `f7bd466`) +- T5 hard-cut META_REPO + wire mirror — `cecc6c0` (+ fixes `48fd6f9`) +- T6 runtime-config APIs — `c386b05` (+ 404 fix `07e003e`, + tests/guard `e8ce3cd`) +- T7 initial_state honoring — `fe47eef` (+ resolver fixup `2fe2a71`) +- T8 mark-reviewed + catalog filter — `76207bb` (+ fixes `69fd0cb`, `8004b2a`) +- T9 release 0.33.0 — `a2dc29a` (+ changelog fixes `f114af8`) + +## What lands on the operator's plate + +- **Integrate the branch** (finishing-a-development-branch): PR or merge + `m3-backend-registry-spine` → `main`. NOT yet pushed/merged as of this note. +- **Deploy upgrade** (when shipping): create a registry repo, author + `projects.yaml` (id: default, content_repo = old META_REPO), set REGISTRY_REPO, + remove META_REPO, add registry webhook — per CHANGELOG 0.33.0 upgrade steps. + +## Plan B follow-ups (deferred by design, tracked for next slice before M4) + +- 12-table PK rebuild (migration 028) + project_id in every ON CONFLICT target. +- project_id writer-threading through every RFC/branch writer — concrete known + instances surfaced in final review: the **mark-reviewed** and **propose** write + sites currently hardcode the default content_repo (safe in Plan A's single + project; wrong once project #2 exists). +- default→slug re-stamp (rides the rebuild's ON UPDATE CASCADE). +- two-project isolation tests; project archival from the registry.