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>
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 |