Region HA plan 1b-next: Astra round 18 findings (3 resolved, 2 new P2 test gaps), unedited
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 file changed,
+43
−0
docs/superpowers/plans/CODEX-PLAN-REGION-HA-1BN-R18.md+43 −0
diff --git a/docs/superpowers/plans/CODEX-PLAN-REGION-HA-1BN-R18.md b/docs/superpowers/plans/CODEX-PLAN-REGION-HA-1BN-R18.md| new file mode 100644 |
| index 000000000..0472fa521 |
| --- /dev/null |
| +++ b/docs/superpowers/plans/CODEX-PLAN-REGION-HA-1BN-R18.md |
| @@ -0,0 +1,43 @@ |
| +Reviewed `15c43ac0`. |
| + |
| +| Round 17 finding | Disposition | Assessment | |
| +|---|---|---| |
| +| P1: existing empty manifest permits key loss | Resolved | Nonempty databases now require a live `instance.key` entry. Missing evidence produces `stuck`; L21 remains explicitly open. | |
| +| P2: target termination bypasses the no-spare deadline | Resolved | The deadline now consumes the target’s fence, retains its loss and records `stuck`. | |
| +| P2: replacement from `probe-failed` forgets unopened P | Resolved | `abandonPrepared` records P before removal; completion queues its retirement. | |
| + |
| +1. **P2 — Task 7, Step 4: the lifecycle property cannot exercise removal during an ongoing relocation.** The [event generator](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha-1b-next/docs/superpowers/plans/2026-10-07-region-ha-1b-next-relocation.md:10247) includes completion and successor operations, but no participant replacement or removal within the same operation. Its [recovery oracle](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha-1b-next/docs/superpowers/plans/2026-10-07-region-ha-1b-next-relocation.md:10358) would reject correct recovery once this box is excluded. |
| + |
| + Missing trace: a target releases after probe failure, is replaced, encounters blocked cleanup, crashes, then recovers while relocation continues elsewhere. Its controller, execution record and participation journal must disappear without reopening. |
| + |
| + **Fix:** Add same-operation replacement/removal events. Require readiness for participating boxes and completed cleanup for excluded boxes, preserving the cleanup-before-clear and crash-persistence assertions. |
| + |
| +2. **P2 — Task 2, Step 1: the hash-choice test does not assert the hash winner.** [`TestExecutorChooserSpreadsThenBalancesThenHashes`](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha-1b-next/docs/superpowers/plans/2026-10-07-region-ha-1b-next-relocation.md:3071) accepts the first result and derives subsequent expectations from it. Passing a constant instead of `r.Holder.Host` to `boxchoice.Choose` would escape these assertions. |
| + |
| + **Fix:** Add equal-load cases with independently calculated winners for two hostnames choosing opposite boxes. Verify that substituting a constant hostname fails. |
| + |
| +Rulings 1–27 are accepted. Stage B contracts remain complete. These are test findings, not demonstrated production failures. |
| + |
| +All 12 embedded patches pass `git apply --check`; all 47 Go blocks parse with `gofmt`. Compilation, runtime tests and mutations were not independently reproduced in this read-only workspace. |
| + |
| +--- |
| + |
| +**FIRST PROMPT:** |
| +“Follow the review brief docs/superpowers/plans/CODEX-PLAN-REGION-HA-1BN-BRIEF-18.md. Review the plan at commit 15c43ac0.” |
| + |
| +**WHAT:** |
| +Review Stage A readiness and Stage B contracts. |
| + |
| +**STATUS:** |
| +Three prior findings resolved; two new P2 test gaps. |
| + |
| +**NEEDED:** |
| +Nothing. |
| + |
| +**RECOMMENDED:** |
| +Extend the lifecycle events and assert the hostname-based choice. |
| + |
| +**SESSION:** |
| +Safe to close — no files changed or processes left running. |
| + |
| +**Verdict: not ready.** |
| \ No newline at end of file |