Region HA spec 1 rev 5.4 and plan 1b: claim readers and evidence, dormant
Spec 1 restated against the host lifecycle claim (rev 6.25+), with Paul's rulings H10-H19 (2026-10-06): automatic failover on a verified terminated read alone; host-actors.json as the one roster; choose() for the executor; no warm reuse of local copies (R6); a box-side reservation check; automatic enrollment on evidence; a cross-region confirmer for emptied regions; box-started relocations accept a console's last good report; disk evidence only for discharging a dead box's cleanup chores. §9 asks the claim and moves specs for L1-L20 (#236). Plan 1b builds the parts that need none of L1-L20, all dormant behind CARLOS_REGION_HA (strconv.ParseBool true, in /etc/carlos/host.env): - boxid: the AWS-signed identity record is enrollment evidence (Verifier.Enroll, both binding directions, legacy tofu id). - console: eligible boxes from the roster's proven cloud; the P5-D2 hash as the final tie-break; WarmCopyTrusted removed. - agent: publishes its identity record once, under its label. - termfence: the fence binds to the roster entry and a worker in the box's own region; terminated alone (H19). - boxvolumes: running-time volume records and a fail-safe Discharge. - edges file: a relocatable host is home only on its claim's executor, stamped with holder.stamp; bounded, deadline-limited claim reads. - system update: root defers an update while the box takes part in a claim operation (update-begun marker, .hostexec scan). - infra: control/boxes, box-volumes, box-enrollment and box-fences are create-only and never deleted; tofu test. Relocation, reconcile row cases, create wiring and fence writes wait for the claim; the plan lists each against its L-number. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Squashed from design-region-ha-rev5 into main.
42 files changed,
+9409
−801
docs/superpowers/plans/2026-10-06-region-ha-1b-claim-readers.md+4312 −0docs/superpowers/plans/CODEX-PLAN-REGION-HA-1B-BRIEF-1.md+47 −0docs/superpowers/plans/CODEX-PLAN-REGION-HA-1B-BRIEF-2.md+70 −0docs/superpowers/plans/CODEX-PLAN-REGION-HA-1B-BRIEF-3.md+56 −0docs/superpowers/plans/CODEX-PLAN-REGION-HA-1B-R1.md+19 −0docs/superpowers/plans/CODEX-PLAN-REGION-HA-1B-R2.md+29 −0docs/superpowers/plans/CODEX-PLAN-REGION-HA-1B-R3.md+14 −0docs/superpowers/specs/2026-10-04-region-ha-box-placement-design.md+1343 −427docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-REV5-1.md+47 −0docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-REV5-2.md+77 −0docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-REV5-3.md+68 −0docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-REV5-4.md+49 −0docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-REV5-5.md+12 −0docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-REV5-1.md+61 −0docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-REV5-2.md+85 −0docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-REV5-3.md+78 −0docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-REV5-4.md+70 −0docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-REV5-5.md+57 −0infra/modules/deployment-buckets/main.tf+20 −11infra/modules/deployment-buckets/tests/evidence.tftest.hcl+62 −0internal/activator/activator.go+5 −1internal/activator/installed.go+5 −34internal/activator/installed_test.go+0 −32internal/boxid/boxid_test.go+113 −90internal/boxid/record.go+24 −46internal/boxid/verify.go+121 −39internal/boxvolumes/volumes.go+394 −0internal/boxvolumes/volumes_test.go+361 −0internal/console/boxchoice.go+50 −26internal/console/boxchoice_test.go+76 −29internal/edge/homemap_alias_stamp_test.go+18 −0internal/host/agent.go+3 −0internal/host/boxrecord.go+189 −0internal/host/boxrecord_test.go+183 −0internal/host/edgesclaims.go+276 −0internal/host/edgesclaims_test.go+421 −0internal/host/edgesfile.go+34 −8internal/host/systemapply.go+17 −0internal/host/systemparticipation.go+134 −0internal/host/systemparticipation_test.go+205 −0internal/termfence/fence.go+94 −30internal/termfence/fence_test.go+110 −28
CI cancelled — superseded by a newer push — run details
docs/superpowers/plans/2026-10-06-region-ha-1b-claim-readers.mdLoading diff…
docs/superpowers/plans/CODEX-PLAN-REGION-HA-1B-BRIEF-1.mdLoading diff…
docs/superpowers/plans/CODEX-PLAN-REGION-HA-1B-BRIEF-2.mdLoading diff…
docs/superpowers/plans/CODEX-PLAN-REGION-HA-1B-BRIEF-3.mdLoading diff…
docs/superpowers/plans/CODEX-PLAN-REGION-HA-1B-R1.mdLoading diff…
docs/superpowers/plans/CODEX-PLAN-REGION-HA-1B-R2.mdLoading diff…
docs/superpowers/plans/CODEX-PLAN-REGION-HA-1B-R3.mdLoading diff…
docs/superpowers/specs/2026-10-04-region-ha-box-placement-design.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-REV5-1.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-REV5-2.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-REV5-3.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-REV5-4.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-REV5-5.mdLoading diff…
docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-REV5-1.mdLoading diff…
docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-REV5-2.mdLoading diff…
docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-REV5-3.mdLoading diff…
docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-REV5-4.mdLoading diff…
docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-REV5-5.mdLoading diff…
infra/modules/deployment-buckets/main.tfLoading diff…
infra/modules/deployment-buckets/tests/evidence.tftest.hclLoading diff…
internal/activator/activator.goLoading diff…
internal/activator/installed.goLoading diff…
internal/activator/installed_test.goLoading diff…
internal/boxid/boxid_test.goLoading diff…
internal/boxid/record.goLoading diff…
internal/boxid/verify.goLoading diff…
internal/boxvolumes/volumes.goLoading diff…
internal/boxvolumes/volumes_test.goLoading diff…
internal/console/boxchoice.goLoading diff…
internal/console/boxchoice_test.goLoading diff…
internal/edge/homemap_alias_stamp_test.goLoading diff…
internal/host/agent.goLoading diff…
internal/host/boxrecord.goLoading diff…
internal/host/boxrecord_test.goLoading diff…
internal/host/edgesclaims.goLoading diff…
internal/host/edgesclaims_test.goLoading diff…
internal/host/edgesfile.goLoading diff…
internal/host/systemapply.goLoading diff…
internal/host/systemparticipation.goLoading diff…
internal/host/systemparticipation_test.goLoading diff…
internal/termfence/fence.goLoading diff…
internal/termfence/fence_test.goLoading diff…