carlos / platform Public

Region HA two-box model plan: Astra round 8 findings (2 resolved, 1 P2, 1 P3), unedited

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev 813bc7e76ef445d60673e69e4da4a21172e2bc6e parent 54a3797
1 file changed, +48 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R8.md +48 −0
diff --git a/docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R8.md b/docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R8.md
new file mode 100644
index 000000000..8de83adbe
--- /dev/null
+++ b/docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R8.md
@@ -0,0 +1,48 @@
+Reviewed `54a37976`.
+
+| Round 7 finding | Disposition | Assessment |
+|---|---|---|
+| #1: stopping a target discharges local cleanup | Resolved | Task 5G requires termination and qualifying volume evidence. INV-26 and the stopped-target test cover the distinction. |
+| #2: fallback stops targets that can still release | Resolved | `releaseUnrecoverable` narrows stopping; direct tests cover delayed acknowledgements and recorded-flush replay. |
+
+1. **P2 — Task 5F, Step 1 / Task 5G, Step 1: recorded positions incorrectly suffice for recovery after a controller crash.**
+
+ The [replay branch](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha-two-box/docs/superpowers/plans/2026-10-07-region-ha-hostlife-two-box.md:9393) returns a release from `relRecord` alone. The [operator predicate](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha-two-box/docs/superpowers/plans/2026-10-07-region-ha-hostlife-two-box.md:9563) likewise considers any matching record recoverable.
+
+ In 1b-next rev 19, Task 7’s `Release` and `RecoveryReleaseDrain` require the old controller’s durable root receipt after a restart. Positions are recorded **before** producer shutdown and receipt persistence.
+
+ The missing interleaving is: flush → record positions → crash before receipt persistence → restart. The model cannot distinguish this from successful receipt persistence and permits replay; 1b-next refuses and eventually becomes stuck. Rev 9 acknowledges the collapse, but these states have different recovery outcomes. This is false progress evidence, not a demonstrated production data-loss path.
+
+ **Fix:** track receipt persistence separately from recorded positions, retaining the flushing controller’s identity. Allow same-controller completion; require the matching receipt after restart. Test crashes on both sides of receipt persistence and update `releaseUnrecoverable` accordingly.
+
+2. **P3 — Task 1, Step 1: identity traces omit the gate’s final seed.**
+
+ [The identity loop](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha-two-box/docs/superpowers/plans/2026-10-07-region-ha-hostlife-two-box.md:508) hashes seeds `0..299`, while [the gate](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha-two-box/internal/sim/hostlife/sim_test.go:918) runs `1..300`. The claimed per-seed comparison therefore omits seed 300.
+
+ **Fix:** use the same `1..n` range in both loops.
+
+The L18 and claim §11 coverage mappings otherwise hold. Adapter-only exclusions remain necessary; additionally, historical R5-3’s HA-disabled reconcile behavior and R5-5’s environment-file deletion rely on 1b-next tests rather than model coverage.
+
+Task 1 was reconstructed in memory; all 12 subsequent patches, comprising 220 hunks, applied sequentially. Go parsing/formatting, shell syntax and rule counts checked cleanly. Compilation, runtime tests and mutations were not independently reproduced. No files changed or sweeps ran.
+
+---
+
+**FIRST PROMPT:**
+“Follow the review brief docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-8.md. Review the plan at commit 54a37976.”
+
+**WHAT:**
+Review round 7’s dispositions and report new findings.
+
+**STATUS:**
+Both prior findings resolved; one new P2 and one P3.
+
+**NEEDED:**
+Nothing for this review.
+
+**RECOMMENDED:**
+Separate flush records from stop receipts and align the identity seed range.
+
+**SESSION:**
+Safe to close — no changes or processes left running.
+
+**Verdict: not ready.**
\ No newline at end of file