carlos / platform Public

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

Plain git — no account needed to clone.

Download

Download this file

1# Review brief: region HA plan 1b, round 2
2
3You are an independent second reader. Review the implementation plan
4`docs/superpowers/plans/2026-10-06-region-ha-1b-claim-readers.md` at the
5commit named in the prompt, against the tree at the working directory
6(Go, module github.com/carlosframework/platform) and the approved spec
7`docs/superpowers/specs/2026-10-04-region-ha-box-placement-design.md`
8(rev 5.4; rulings H1–H19 in §0). Your round 1 findings are in
9`CODEX-PLAN-REGION-HA-1B-R1.md`; the author's answers are the table
10"Astra plan round 1: dispositions" at the end of the plan.
11
12## Fixed: do not re-argue
13
14- The spec's rulings H1 to H19, and Paul's approval of rev 5.4.
15- The scope rule: plan 1b builds only what needs none of the spec's
16 L1–L20 claim/moves changes; everything listed under "Waits for the
17 claim" is out of scope. Do not ask 1b to build those.
18- The controller rulings recorded in the plan's header (six, unchanged
19 this round).
20- Everything stays dormant behind CARLOS_REGION_HA and changes nothing on
21 a one-box region.
22- Round 1 findings the dispositions table marks fixed are not to be
23 raised again unless the fix itself is wrong; say which, and why.
24
25## What changed since round 1
26
27- Task 5: `Discharge` validates every stored record of the enrollment
28 before using it (version, a state carrying mappings, a non-empty
29 mapping, volume ids and devices); new test
30 `TestDischargeRefusesStoredRecordsThatAreNotEvidence`.
31- Task 6: aliases and served catch-alls take their primary's stamp (two
32 new replacements in `edgesfile.go`); entries track the last attempt
33 separately from the last decision; `edgesLoopState` adds a pass every
34 30 seconds while claim reads are due, replacing the loop's direct use of
35 `edgesFileSchedule`; three new host tests and one new `internal/edge`
36 test.
37- Task 7: participation and marker failures are recorded as `deferred`
38 (not `refused`); new test
39 `TestApplyDeferredForParticipationAppliesOnceItEnds`.
40- Task 8: the tofu test compares each statement whole; Steps 2 and 4 keep
41 the module initialized until validation has run.
42
43## What to check
44
451. The dispositions table first: for each of R1-1 to R1-7, is the finding
46 resolved, partly resolved (say what is left), or not resolved?
472. Then only new findings, in the changed parts above or anything the
48 changes break elsewhere. In particular:
49 - `edgesLoopState`: with CARLOS_REGION_HA off, is the loop's behaviour
50 identical to before (passes, `timed`, retry backoff, headroom
51 refresh)? With it on, can the 30-second passes interfere with the
52 schedule's change detection or backoff?
53 - The `deferred` outcome: does anything in the agent's leg or root's
54 apply treat a repeated deferral badly (log volume, the replay
55 watermark in `seen.json`, the rolled-back stickiness)?
56 - `Discharge`'s validation: could it refuse a record `Write` produces
57 today from a real describe (for example a box mid-`stopping`)?
58 - Alias stamps: with the flag on, can an alias of a withheld primary
59 or a non-relocatable primary ever be published with a stale stamp?
603. As in round 1: does the code compile and do the tests pass as written,
61 does each new test fail with its mechanism removed, and do task
62 boundaries still build in order?
63
64## Output
65
66Findings ranked P1 (would not compile, a test fails, or unsafe), P2
67(wrong or missing), P3 (clarity). Each: task and step, the problem, the
68evidence (file:line, or the plan's own line), and a concrete fix. Start
69with the round 1 table, then new findings only. End with a verdict:
70ready to build, or not ready.
71