carlos / platform Public

Merge origin/main (moves-plan15-proof, region-ha-two-box-build, settings-5-surfaces) into region-ha-1b-next-build

moves-plan15-proof replaces the C8 provider's origin proof with claim Plan 15's ClaimOriginProof (one batch Proven over the claim's recorded admissions, no retained-chain fallback). It addresses none of merge round 6's findings 1 to 4, so relocation's fixes carry forward onto it.

Conflicts:
- internal/host/claimfiles.go: movesFilesSource.Open takes main's claims store and builds main's ClaimOriginProof, keeps the branch's Routes requirement, and binds EnvFile: claimEnvFileFor (the env file through the row) where main bound the flat FilesDir. The branch's claimEnvFile and claimEnvFileFor are kept.
- internal/host/movesfiles.go: the movesFiles fields are the branch's EnvFile with main's Proof comment (nil refuses). movesFilesAllowed takes main's batch body (generations, proveOrigins) over the branch's moves.FilesGenerationBase. preparedBinding, relocationPreparedManifest and preparedOpening carry forward unchanged and feed main's proveOrigins.
- internal/host/movesfiles_test.go: main's fixture (a claims store, ClaimOriginProof) with the branch's EnvFile: flatClaimEnvFile.
- internal/host/movesprobeowners_test.go: main's realC8 (Proof: ClaimOriginProof) with the branch's EnvFile: envFileOf.
- internal/provision/plan9_b8_census_test.go: both sides' rows. handleAPIInstanceList takes main's digest (558d0b3e..., settings-5 changed it; the branch did not). handleAPIInstanceCreate keeps the branch's digest (3a4cbb44..., its EvidenceComplete line; main did not change it) with its review comments. The census passes as merged, so no digest is recomputed.

Also: relocation's provider tests turn on CARLOS_HOST_CLAIM_ORIGINS, so the claim records the admissions Plan 15's proof walks.

Copy gate passes. Main's moves rows run to MV-N456, so there is no collision with the branch's MV-N500.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Paul Campbell pushed by claude agent, operated by paul@keymail.dev 6317c1afe3473944921b765aac71b2fa92b7b946 parent e77d591parent 68b6ab5
103 files changed, +26289 −589
  • README.md +2 −0
  • apimode.go +22 −0
  • apps_swap.go +20 −13
  • apps_updates.go +135 −0
  • apps_updates_test.go +273 −0
  • cli.go +6 −0
  • docs/site/cli.md +24 −0
  • docs/superpowers/notes/2026-10-08-region-ha-two-box-sweep-diagnosis.md +175 −0
  • docs/superpowers/plans/2026-10-07-instance-settings-5-copy.json +236 −0
  • docs/superpowers/plans/2026-10-07-region-ha-hostlife-two-box.md +10467 −0
  • docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-5-R2.md +40 −0
  • docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-5-R3.md +31 −0
  • docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-5-R4.md +64 −0
  • docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-5-R5.md +41 −0
  • docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-5-R6.md +28 −0
  • docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-5.md +101 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-1.md +53 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-2.md +62 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-3.md +65 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-4.md +65 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-5.md +68 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-6.md +68 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-7.md +68 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-8.md +68 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-9.md +68 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R1.md +71 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R2.md +50 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R3.md +49 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R4.md +54 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R5.md +41 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R6.md +41 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R7.md +47 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R8.md +48 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R9.md +38 −0
  • docs/superpowers/plans/CODEX-REVIEW-BRIEF-TWO-BOX-R1.md +339 −0
  • docs/superpowers/plans/CODEX-REVIEW-BRIEF-TWO-BOX-R2.md +41 −0
  • docs/superpowers/plans/CODEX-REVIEW-BRIEF-TWO-BOX-R3.md +37 −0
  • docs/superpowers/plans/CODEX-REVIEW-TWO-BOX-R1.md +42 −0
  • docs/superpowers/plans/CODEX-REVIEW-TWO-BOX-R2.md +45 −0
  • docs/superpowers/plans/CODEX-REVIEW-TWO-BOX-R3.md +35 −0
  • instances_cli.go +73 −13
  • instances_reason_test.go +105 −0
  • instances_updates.go +286 −0
  • instances_updates_test.go +437 −0
  • internal/console/apiinstances.go +109 −1
  • internal/console/apiinstances_test.go +5 −2
  • internal/console/apiupdates.go +22 −175
  • internal/console/browserupdates.go +314 −0
  • internal/console/browserupdates_test.go +801 −0
  • internal/console/claim_invariant_fixtures_test.go +48 −0
  • internal/console/instancepage.go +6 −0
  • internal/console/server.go +2 −0
  • internal/console/templates/app_instance.html +25 −0
  • internal/console/testdata/claim-routes.txt +2 −0
  • internal/console/updatescore.go +233 −0
  • internal/console/updatesjoin_test.go +303 −0
  • internal/host/buildstate.go +33 −7
  • internal/host/buildstate_astra_test.go +27 −12
  • internal/host/buildstate_test.go +6 −0
  • internal/host/claimfiles.go +7 −3
  • internal/host/movesfiles.go +68 −88
  • internal/host/movesfiles_test.go +266 −82
  • internal/host/movesprobeowners_test.go +10 −1
  • internal/host/movesrecoveryowners_test.go +5 −0
  • internal/host/plan15_originproof_test.go +3 −20
  • internal/host/relocationprobefiles_linux_test.go +6 −1
  • internal/host/tenantchange_test.go +216 −0
  • internal/host/updatesreport.go +31 −5
  • internal/host/updatesreport_test.go +188 −6
  • internal/provision/plan9_b8_census_test.go +12 −6
  • internal/registry/registry.go +50 −2
  • internal/registry/updatesettings_test.go +115 −0
  • internal/release/adopt.go +14 −2
  • internal/release/adoptsettings_test.go +70 −0
  • internal/release/buildstate.go +33 −2
  • internal/release/tenantchange_test.go +221 −0
  • internal/release/updatetarget.go +12 −3
  • internal/sim/hostlife/background_test.go +18 −4
  • internal/sim/hostlife/console_test.go +181 −11
  • internal/sim/hostlife/expected-outcomes.two-box.txt +13 −0
  • internal/sim/hostlife/expected-outcomes.txt +32 −0
  • internal/sim/hostlife/moves_test.go +107 −82
  • internal/sim/hostlife/mutate.sh +39 −16
  • internal/sim/hostlife/onebox_identity_test.go +77 −0
  • internal/sim/hostlife/protocol_test.go +106 −9
  • internal/sim/hostlife/regionha_cases_test.go +733 −0
  • internal/sim/hostlife/regionha_completion_test.go +528 −0
  • internal/sim/hostlife/regionha_completion_witness_test.go +770 −0
  • internal/sim/hostlife/regionha_round1_test.go +1350 −0
  • internal/sim/hostlife/regionha_test.go +2668 −0
  • internal/sim/hostlife/regionha_witness_test.go +1290 −0
  • internal/sim/hostlife/rules_test.go +81 −0
  • internal/sim/hostlife/sim_test.go +68 −7
  • internal/sim/hostlife/twobox_test.go +194 −0
  • internal/sim/hostlife/witness_test.go +123 −3
  • internal/sim/hostlife/world_test.go +233 −3
  • internal/status/contract_test.go +4 −2
  • internal/status/snapshot.go +7 −0
  • internal/status/status_test.go +3 −2
  • internal/updatewords/export_test.go +137 −0
  • internal/updatewords/words_approved_test.go +14 −6
  • internal/updatewords/words_docs_test.go +41 −0
  • internal/updatewords/words_surfaces.go +80 −0
README.md

Loading diff…

apimode.go

Loading diff…

apps_swap.go

Loading diff…

apps_updates.go

Loading diff…

apps_updates_test.go

Loading diff…

cli.go

Loading diff…

docs/site/cli.md

Loading diff…

docs/superpowers/notes/2026-10-08-region-ha-two-box-sweep-diagnosis.md

Loading diff…

docs/superpowers/plans/2026-10-07-instance-settings-5-copy.json

Loading diff…

docs/superpowers/plans/2026-10-07-region-ha-hostlife-two-box.md

Loading diff…

docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-5-R2.md

Loading diff…

docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-5-R3.md

Loading diff…

docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-5-R4.md

Loading diff…

docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-5-R5.md

Loading diff…

docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-5-R6.md

Loading diff…

docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-5.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-1.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-2.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-3.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-4.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-5.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-6.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-7.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-8.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-BRIEF-9.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R1.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R2.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R3.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R4.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R5.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R6.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R7.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R8.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-TWO-BOX-R9.md

Loading diff…

docs/superpowers/plans/CODEX-REVIEW-BRIEF-TWO-BOX-R1.md

Loading diff…

docs/superpowers/plans/CODEX-REVIEW-BRIEF-TWO-BOX-R2.md

Loading diff…

docs/superpowers/plans/CODEX-REVIEW-BRIEF-TWO-BOX-R3.md

Loading diff…

docs/superpowers/plans/CODEX-REVIEW-TWO-BOX-R1.md

Loading diff…

docs/superpowers/plans/CODEX-REVIEW-TWO-BOX-R2.md

Loading diff…

docs/superpowers/plans/CODEX-REVIEW-TWO-BOX-R3.md

Loading diff…

instances_cli.go

Loading diff…

instances_reason_test.go

Loading diff…

instances_updates.go

Loading diff…

instances_updates_test.go

Loading diff…

internal/console/apiinstances.go

Loading diff…

internal/console/apiinstances_test.go

Loading diff…

internal/console/apiupdates.go

Loading diff…

internal/console/browserupdates.go

Loading diff…

internal/console/browserupdates_test.go

Loading diff…

internal/console/claim_invariant_fixtures_test.go

Loading diff…

internal/console/instancepage.go

Loading diff…

internal/console/server.go

Loading diff…

internal/console/templates/app_instance.html

Loading diff…

internal/console/testdata/claim-routes.txt

Loading diff…

internal/console/updatescore.go

Loading diff…

internal/console/updatesjoin_test.go

Loading diff…

internal/host/buildstate.go

Loading diff…

internal/host/buildstate_astra_test.go

Loading diff…

internal/host/buildstate_test.go

Loading diff…

internal/host/claimfiles.go

Loading diff…

internal/host/movesfiles.go

Loading diff…

internal/host/movesfiles_test.go

Loading diff…

internal/host/movesprobeowners_test.go

Loading diff…

internal/host/movesrecoveryowners_test.go

Loading diff…

internal/host/plan15_originproof_test.go

Loading diff…

internal/host/relocationprobefiles_linux_test.go

Loading diff…

internal/host/tenantchange_test.go

Loading diff…

internal/host/updatesreport.go

Loading diff…

internal/host/updatesreport_test.go

Loading diff…

internal/provision/plan9_b8_census_test.go

Loading diff…

internal/registry/registry.go

Loading diff…

internal/registry/updatesettings_test.go

Loading diff…

internal/release/adopt.go

Loading diff…

internal/release/adoptsettings_test.go

Loading diff…

internal/release/buildstate.go

Loading diff…

internal/release/tenantchange_test.go

Loading diff…

internal/release/updatetarget.go

Loading diff…

internal/sim/hostlife/background_test.go

Loading diff…

internal/sim/hostlife/console_test.go

Loading diff…

internal/sim/hostlife/expected-outcomes.two-box.txt

Loading diff…

internal/sim/hostlife/expected-outcomes.txt

Loading diff…

internal/sim/hostlife/moves_test.go

Loading diff…

internal/sim/hostlife/mutate.sh

Loading diff…

internal/sim/hostlife/onebox_identity_test.go

Loading diff…

internal/sim/hostlife/protocol_test.go

Loading diff…

internal/sim/hostlife/regionha_cases_test.go

Loading diff…

internal/sim/hostlife/regionha_completion_test.go

Loading diff…

internal/sim/hostlife/regionha_completion_witness_test.go

Loading diff…

internal/sim/hostlife/regionha_round1_test.go

Loading diff…

internal/sim/hostlife/regionha_test.go

Loading diff…

internal/sim/hostlife/regionha_witness_test.go

Loading diff…

internal/sim/hostlife/rules_test.go

Loading diff…

internal/sim/hostlife/sim_test.go

Loading diff…

internal/sim/hostlife/twobox_test.go

Loading diff…

internal/sim/hostlife/witness_test.go

Loading diff…

internal/sim/hostlife/world_test.go

Loading diff…

internal/status/contract_test.go

Loading diff…

internal/status/snapshot.go

Loading diff…

internal/status/status_test.go

Loading diff…

internal/updatewords/export_test.go

Loading diff…

internal/updatewords/words_approved_test.go

Loading diff…

internal/updatewords/words_docs_test.go

Loading diff…

internal/updatewords/words_surfaces.go

Loading diff…