carlos / platform Public

Clone
git clone https://amadan.net/carlos/platform

Plain git — no account needed to clone.

Download

Download this file

1Reviewed `56ea4a15`.
2
3| Round 4 finding | Disposition | Assessment |
4|---|---|---|
5| #1: converted moves pin before naming a target | Resolved | Task 5D names missing targets before pin selection on every path and adds the no-eligible-target interleaving. |
6| #2: one-box matrix misses actual `pinning` | Resolved | Phase predicates distinguish `PinFailover`’s `starting` from `pinning`; the matrix exercises both boundaries. |
7| #3: initial failovers bypass start guards | Resolved | Failover starts now check eligibility, admission and the relocation start guard, with tests for closed admission and outstanding `park-replica`. |
8
91. **P2 — Task 3, Step 1, and Task 5B, Step 1: a pending target fence allows phase work to continue.**
10
11 [`fenceStep`](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha-two-box/docs/superpowers/plans/2026-10-07-region-ha-hostlife-two-box.md:7122) returns true only when fencing changes the claim version. When a terminated target has no eligible replacement and its deadline has not passed, `replaceTarget` refuses the CAS. Consequently, [`workerMode`](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha-two-box/docs/superpowers/plans/2026-10-07-region-ha-hostlife-two-box.md:2611) continues into `role`.
12
13 For example, terminate an acknowledged target in `starting`, with no spare eligible. The source’s worker can advance to `releasing` while replacement remains blocked. At `pinning`, it can likewise select a pin while the dead target remains named.
14
15 In 1b-next rev 19, `Worker.Step` returns `w.replace(...)` immediately upon finding the target’s fence, **before the phase switch** (lines 6949–6958). That pending fence therefore blocks regional phase transitions even when replacement changes nothing. The model still permits an ordering that production refuses.
16
17 **Fix:** distinguish “relocation fence pending” from “no fence” and block regional phase transitions in the former case. Keep independent participant work schedulable. Add a mutation-sensitive test that terminates an acknowledged target in `starting` and separately in `pinning`, holds replacements ineligible, and asserts no phase advance or pin selection before replacement or the deadline.
18
19The four new Go files reconstructed from their sequential patches passed `gofmt` syntax checks. Compilation, runtime tests and mutations were not independently reproduced in this read-only workspace. No files changed or sweeps ran.
20
21---
22
23**FIRST PROMPT:**
24Review the plan at `56ea4a15` using review brief 5.
25
26**WHAT:**
27Check prior dispositions and report new findings.
28
29**STATUS:**
30All three round 4 findings resolved; one new P2 finding.
31
32**NEEDED:**
33Nothing for this review.
34
35**RECOMMENDED:**
36Correct pending-fence scheduling and add the discriminating test.
37
38**SESSION:**
39Safe to close — no changes or processes left running.
40
41**Verdict: not ready.**