carlos / platform Public

Astra stage B plan round 7: unedited

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Paul Campbell pushed by claude agent, operated by paul@keymail.dev 7947a18d09db2dc1bf4167bf465371c66b06f619 parent 1cbd65e
1 file changed, +35 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-STAGE-B-R7.md +35 −0
diff --git a/docs/superpowers/plans/CODEX-PLAN-REGION-HA-STAGE-B-R7.md b/docs/superpowers/plans/CODEX-PLAN-REGION-HA-STAGE-B-R7.md
new file mode 100644
index 000000000..7360e2268
--- /dev/null
+++ b/docs/superpowers/plans/CODEX-PLAN-REGION-HA-STAGE-B-R7.md
@@ -0,0 +1,35 @@
+Reviewed HEAD `1cbd65e4`; its plan is unchanged from rev 5.1 at `b313a50c`.
+
+1. **P2 — Discharge retries become unreachable after releasing the hold.** [Plan:13970](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha-1b-next-build/docs/superpowers/plans/2026-10-10-region-ha-1b-next-stage-b.md:13970)
+ `relocationReleaseHold` releases the registry hold before lifting the fence and writing `Discharged`. If that write fails, loses a CAS race, or the agent crashes first, subsequent runtime passes skip `Finish` because `HoldOp` is now empty. Production `Retained()` is also empty, so participant sweeping cannot recover it. Successor relocations remain blocked indefinitely; a failure before the lift also leaves admission fenced. Retry unfinished completions from the claim’s completion record, independently of the row’s hold. Test recovery through `RelocationRuntime.once`, including a failed discharge CAS and a restart after hold release.
+
+2. **P2 — A successor move bypasses the discharge gate.** [Plan:2543](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha-1b-next-build/docs/superpowers/plans/2026-10-10-region-ha-1b-next-stage-b.md:2543)
+ The new check protects only `RelocationStartGuard`. After A→B completes but before B discharges, a cross-region B→C move can still start through `BeginMove` and the unchanged `StartGuard`. A’s outstanding retirement does not block C. That transition overwrites `completed_relocation`, while B retains the old participation slot; `prepareWith` then returns `ErrLost` for the move. Apply the discharge barrier to successor moves too, or provide a proven participation handover, and test relocation completion followed immediately by a real move start.
+
+Round 6 findings **1, 2 and 4 are closed**. Finding **3 remains incomplete**. Task 10b is now correctly mandatory before activation.
+
+The termination-fence exception is appropriate for a dead completion box: the start verifies its fence and excludes it from the new participants. It cannot recover the live-box retry failure above.
+
+**Verdict: not ready to build unchanged.**
+
+Static review only; no tests executed or files changed.
+
+---
+
+**FIRST PROMPT:**
+“Follow the review brief docs/superpowers/plans/CODEX-PLAN-REGION-HA-STAGE-B-BRIEF-7.md. Review the plan at its branch HEAD (plan rev 5.1 at b313a50c).”
+
+**WHAT:**
+Review the four fixes, discharge recovery and new regressions.
+
+**STATUS:**
+Complete: two P2 findings.
+
+**NEEDED:**
+Nothing.
+
+**RECOMMENDED:**
+Fix completion retry discovery and gate successor moves; add regression tests.
+
+**SESSION:**
+Safe to close. Workspace unchanged; read-only permissions prevented saving the handoff file.
\ No newline at end of file