Merge origin/main into instance-key-build (zdd surfaces)
Brings in moves-phase1-5d, 5c, 5e, settings-3-console-settings and zdd-6-surfaces. Resolutions: - internal/activator/backend_exec.go, internal/activator/prepare.go: the only conflicts were the import blocks (this branch's instancekey beside main's instanceupdates); both kept. Main's control-socket mount (UpdatesReader beside Timers) merged cleanly; the instance-key mint (ensureInstanceKeyFor) and replica gate (replicaKeyGate) in spawnChildFrom, seedChild and prepareAt are unchanged. - internal/host/claimproduction.go (auto-merged, did not build): both sides imported crypto/ed25519; kept one, and moved this branch's crypto/ecdh into the standard-library group. No launch path was added or changed by main's five commits: the activator changes are event wording and the read-only GET /updates mount, the host changes are moves parks/install journalling (no process start; the landing probe stays nil in production), the restart-log retry verb (clears a rollout hold; the retry's start goes through StartGen/StartStaged) and roster/claim refactors. Config sync's new keepAbsent leaves an empty render's <host>.config.env absent; the mint's delivery rule asks the bucket (ConfiguredKeyDigest), which renders no key for such a bundle, so the two agree.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
apimode.go+58 −4approved_copy_test.go+15 −8approved_copy_zdd_test.go+73 −0approved_moves_copy_test.go+11 −0apps.go+6 −1apps_swap.go+188 −0apps_swap_constants_test.go+62 −0apps_swap_test.go+112 −0cli.go+32 −1cmd/console/main.go+16 −0cmd/console/movesswitch_test.go+57 −0deploy.go+127 −133deploywatch.go+721 −0deploywatch_test.go+877 −0docs/site/cli.md+72 −4docs/superpowers/plans/2026-10-06-moves-phase1-copy.md+28 −0docs/superpowers/plans/2026-10-07-instance-settings-3-copy.json+30 −0docs/superpowers/plans/2026-10-07-zero-downtime-deploys-6-copy.json+155 −0docs/superpowers/plans/2026-10-07-zero-downtime-deploys-6-roll-notes.md+551 −0docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-3-R2.md+36 −0docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-3.md+47 −0docs/superpowers/plans/CODEX-FINDINGS-ZDD-IMPL-6-R2.md+27 −0docs/superpowers/plans/CODEX-FINDINGS-ZDD-IMPL-6-R3.md+17 −0docs/superpowers/plans/CODEX-FINDINGS-ZDD-IMPL-6.md+43 −0docs/superpowers/specs/2026-10-02-move-any-app-design.md+51 −17instances_cli.go+146 −2instances_e2e_test.go+36 −0instances_retry_test.go+37 −0instances_rollout_test.go+111 −0internal/activator/activator.go+1 −1internal/activator/backend_exec.go+11 −2internal/activator/logsink.go+8 −0internal/activator/prepare.go+8 −2internal/activator/updates_control_test.go+126 −0internal/activator/wakeplan.go+8 −6internal/activator/wakeplan_test.go+35 −9internal/alerting/alerting.go+32 −0internal/alerting/alerting_test.go+33 −0internal/appconfig/renderheld.go+20 −4internal/appconfig/renderheld_before_test.go+62 −0internal/appconfig/swap.go+114 −0internal/appconfig/swap_sync_test.go+116 −0internal/appconfig/swap_test.go+107 −0internal/appconfig/syncexec.go+43 −2internal/console/apicli.go+36 −7internal/console/apiinstances.go+229 −13internal/console/apiretry.go+122 −0internal/console/apiretry_test.go+127 −0internal/console/apiship_swap.go+48 −0internal/console/apiship_swap_test.go+98 −0internal/console/apisidecars.go+9 −11internal/console/apisidecars_test.go+9 −6internal/console/apiswap.go+85 −0internal/console/apiswap_test.go+109 −0internal/console/apisystemgeoip.go+14 −0internal/console/apiupdates.go+629 −0internal/console/apiupdates_test.go+1065 −0internal/console/appswap.go+83 −0internal/console/appswap_test.go+83 −0internal/console/authcli.go+19 −0internal/console/browserretry.go+81 −0internal/console/browserretry_test.go+116 −0internal/console/claim_authority_census_test.go+3 −0internal/console/claim_invariant_fixtures_test.go+109 −0internal/console/claim_invariant_moves_test.go+19 −0internal/console/claim_invariant_probes_read_test.go+2 −0internal/console/claim_runtime.go+15 −0internal/console/instancepage.go+61 −0internal/console/movesrecovery.go+516 −0internal/console/movesrecovery_test.go+721 −0internal/console/rolloutfleet_test.go+207 −0internal/console/rolloutjoin_test.go+213 −0internal/console/server.go+22 −3internal/console/store.go+31 −0internal/console/store_gate.go+1 −0internal/console/svcroutes_test.go+26 −3internal/console/swapcopy.go+74 −0internal/console/swapcopy_truth_test.go+70 −0internal/console/templates/app_instance.html+10 −1internal/console/templates/app_settings.html+21 −0internal/console/testdata/claim-authority-sites.txt+8 −0internal/console/testdata/claim-routes.txt+8 −0internal/console/updatesgate.go+67 −0internal/console/updatesgate_test.go+283 −0internal/host/agent.go+25 −2internal/host/claimproduction.go+39 −15internal/host/movesabort.go+43 −25internal/host/movesabort_test.go+25 −10internal/host/movescarries_test.go+503 −0internal/host/movesclose_order_test.go+135 −0internal/host/movesevidence.go+315 −0internal/host/movesevidence_test.go+897 −0internal/host/movesfileslive_test.go+610 −0internal/host/movesfinal.go+38 −18internal/host/movesfinal_test.go+11 −3internal/host/movesinstall.go+236 −12internal/host/movesinstall_test.go+30 −1internal/host/movesland.go+32 −13internal/host/movesland_test.go+65 −39internal/host/moveslandcommit.go+4 −3internal/host/moveslandpark.go+64 −64internal/host/movesparkfakes_test.go+76 −0internal/host/movesparks.go+73 −32internal/host/movesparks_test.go+29 −15internal/host/movespass.go+48 −27internal/host/movespass_test.go+2 −2internal/host/movesphase1_test.go+1 −1internal/host/movesrecover.go+38 −30internal/host/movesrecover_test.go+10 −11internal/host/movesrefusals.go+225 −0internal/host/movesrefusals_test.go+226 −0internal/host/movesrevert.go+57 −59internal/host/movesrevert_test.go+1 −1internal/host/movesrollback.go+163 −39internal/host/movesrollback_finalfix_test.go+2 −2internal/host/movessources.go+648 −0internal/host/movessources_test.go+712 −0internal/host/restart.go+12 −0internal/host/restartscope.go+53 −0internal/host/restartscope_test.go+126 −0internal/host/rollout.go+4 −4internal/host/rolloutdeclined.go+1 −1internal/host/rolloutdeclined_test.go+2 −2internal/host/rolloutrefusaldrafts_test.go+21 −0internal/instanceupdates/control.go+94 −0internal/instanceupdates/control_test.go+216 −0internal/park/live_generations_test.go+39 −0internal/park/sweep.go+14 −0internal/provision/move_test.go+44 −0internal/provision/plan9_b8_census_test.go+33 −15internal/provision/provision.go+34 −0internal/provision/reconcile.go+71 −13internal/provision/reconcile_test.go+12 −12internal/provision/updates.go+85 −0internal/provision/updates_reconcile_test.go+155 −0internal/provision/updates_test.go+78 −0internal/registry/coldhandover.go+1 −1internal/registry/registry.go+50 −15internal/registry/registry_test.go+1 −0internal/registry/remote_dispatch.go+3 −0internal/registry/updatesettings_test.go+82 −0internal/release/restartscope.go+8 −1internal/release/restartscope_test.go+12 −0internal/release/updatesettings.go+89 −0internal/release/updatesettings_test.go+47 −0internal/rollout/events.go+17 −12internal/rollout/events_mode_test.go+46 −0internal/rollout/events_words_test.go+59 −0internal/rollout/manager_test.go+19 −12internal/rollout/wakeplan.go+6 −6internal/rollout/wakeplan_test.go+16 −8internal/rolloutwords/words.go+126 −0internal/rolloutwords/words_test.go+135 −0internal/sim/hostlife/console_test.go+13 −2internal/sim/hostlife/moves_test.go+80 −5internal/sim/hostlife/rules_test.go+1 −0internal/sim/hostlife/sim_test.go+24 −8internal/sim/hostlife/witness_test.go+65 −7internal/sim/hostlife/world_test.go+4 −0internal/status/dryrun.go+50 −0internal/status/snapshot.go+28 −1internal/status/snapshot_test.go+21 −0internal/updatewords/words_approved_test.go+79 −32internal/updatewords/words_console.go+58 −0ship_swap_test.go+88 −0sidecars_cli.go+6 −7
apimode.goLoading diff…
approved_copy_test.goLoading diff…
approved_copy_zdd_test.goLoading diff…
approved_moves_copy_test.goLoading diff…
apps.goLoading diff…
apps_swap.goLoading diff…
apps_swap_constants_test.goLoading diff…
apps_swap_test.goLoading diff…
cli.goLoading diff…
cmd/console/main.goLoading diff…
cmd/console/movesswitch_test.goLoading diff…
deploy.goLoading diff…
deploywatch.goLoading diff…
deploywatch_test.goLoading diff…
docs/site/cli.mdLoading diff…
docs/superpowers/plans/2026-10-06-moves-phase1-copy.mdLoading diff…
docs/superpowers/plans/2026-10-07-instance-settings-3-copy.jsonLoading diff…
docs/superpowers/plans/2026-10-07-zero-downtime-deploys-6-copy.jsonLoading diff…
docs/superpowers/plans/2026-10-07-zero-downtime-deploys-6-roll-notes.mdLoading diff…
docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-3-R2.mdLoading diff…
docs/superpowers/plans/CODEX-FINDINGS-SETTINGS-IMPL-3.mdLoading diff…
docs/superpowers/plans/CODEX-FINDINGS-ZDD-IMPL-6-R2.mdLoading diff…
docs/superpowers/plans/CODEX-FINDINGS-ZDD-IMPL-6-R3.mdLoading diff…
docs/superpowers/plans/CODEX-FINDINGS-ZDD-IMPL-6.mdLoading diff…
docs/superpowers/specs/2026-10-02-move-any-app-design.mdLoading diff…
instances_cli.goLoading diff…
instances_e2e_test.goLoading diff…
instances_retry_test.goLoading diff…
instances_rollout_test.goLoading diff…
internal/activator/activator.goLoading diff…
internal/activator/backend_exec.goLoading diff…
internal/activator/logsink.goLoading diff…
internal/activator/prepare.goLoading diff…
internal/activator/updates_control_test.goLoading diff…
internal/activator/wakeplan.goLoading diff…
internal/activator/wakeplan_test.goLoading diff…
internal/alerting/alerting.goLoading diff…
internal/alerting/alerting_test.goLoading diff…
internal/appconfig/renderheld.goLoading diff…
internal/appconfig/renderheld_before_test.goLoading diff…
internal/appconfig/swap.goLoading diff…
internal/appconfig/swap_sync_test.goLoading diff…
internal/appconfig/swap_test.goLoading diff…
internal/appconfig/syncexec.goLoading diff…
internal/console/apicli.goLoading diff…
internal/console/apiinstances.goLoading diff…
internal/console/apiretry.goLoading diff…
internal/console/apiretry_test.goLoading diff…
internal/console/apiship_swap.goLoading diff…
internal/console/apiship_swap_test.goLoading diff…
internal/console/apisidecars.goLoading diff…
internal/console/apisidecars_test.goLoading diff…
internal/console/apiswap.goLoading diff…
internal/console/apiswap_test.goLoading diff…
internal/console/apisystemgeoip.goLoading diff…
internal/console/apiupdates.goLoading diff…
internal/console/apiupdates_test.goLoading diff…
internal/console/appswap.goLoading diff…
internal/console/appswap_test.goLoading diff…
internal/console/authcli.goLoading diff…
internal/console/browserretry.goLoading diff…
internal/console/browserretry_test.goLoading diff…
internal/console/claim_authority_census_test.goLoading diff…
internal/console/claim_invariant_fixtures_test.goLoading diff…
internal/console/claim_invariant_moves_test.goLoading diff…
internal/console/claim_invariant_probes_read_test.goLoading diff…
internal/console/claim_runtime.goLoading diff…
internal/console/instancepage.goLoading diff…
internal/console/movesrecovery.goLoading diff…
internal/console/movesrecovery_test.goLoading diff…
internal/console/rolloutfleet_test.goLoading diff…
internal/console/rolloutjoin_test.goLoading diff…
internal/console/server.goLoading diff…
internal/console/store.goLoading diff…
internal/console/store_gate.goLoading diff…
internal/console/svcroutes_test.goLoading diff…
internal/console/swapcopy.goLoading diff…
internal/console/swapcopy_truth_test.goLoading diff…
internal/console/templates/app_instance.htmlLoading diff…
internal/console/templates/app_settings.htmlLoading diff…
internal/console/testdata/claim-authority-sites.txtLoading diff…
internal/console/testdata/claim-routes.txtLoading diff…
internal/console/updatesgate.goLoading diff…
internal/console/updatesgate_test.goLoading diff…
internal/host/agent.goLoading diff…
internal/host/claimproduction.goLoading diff…
internal/host/movesabort.goLoading diff…
internal/host/movesabort_test.goLoading diff…
internal/host/movescarries_test.goLoading diff…
internal/host/movesclose_order_test.goLoading diff…
internal/host/movesevidence.goLoading diff…
internal/host/movesevidence_test.goLoading diff…
internal/host/movesfileslive_test.goLoading diff…
internal/host/movesfinal.goLoading diff…
internal/host/movesfinal_test.goLoading diff…
internal/host/movesinstall.goLoading diff…
internal/host/movesinstall_test.goLoading diff…
internal/host/movesland.goLoading diff…
internal/host/movesland_test.goLoading diff…
internal/host/moveslandcommit.goLoading diff…
internal/host/moveslandpark.goLoading diff…
internal/host/movesparkfakes_test.goLoading diff…
internal/host/movesparks.goLoading diff…
internal/host/movesparks_test.goLoading diff…
internal/host/movespass.goLoading diff…
internal/host/movespass_test.goLoading diff…
internal/host/movesphase1_test.goLoading diff…
internal/host/movesrecover.goLoading diff…
internal/host/movesrecover_test.goLoading diff…
internal/host/movesrefusals.goLoading diff…
internal/host/movesrefusals_test.goLoading diff…
internal/host/movesrevert.goLoading diff…
internal/host/movesrevert_test.goLoading diff…
internal/host/movesrollback.goLoading diff…
internal/host/movesrollback_finalfix_test.goLoading diff…
internal/host/movessources.goLoading diff…
internal/host/movessources_test.goLoading diff…
internal/host/restart.goLoading diff…
internal/host/restartscope.goLoading diff…
internal/host/restartscope_test.goLoading diff…
internal/host/rollout.goLoading diff…
internal/host/rolloutdeclined.goLoading diff…
internal/host/rolloutdeclined_test.goLoading diff…
internal/host/rolloutrefusaldrafts_test.goLoading diff…
internal/instanceupdates/control.goLoading diff…
internal/instanceupdates/control_test.goLoading diff…
internal/park/live_generations_test.goLoading diff…
internal/park/sweep.goLoading diff…
internal/provision/move_test.goLoading diff…
internal/provision/plan9_b8_census_test.goLoading diff…
internal/provision/provision.goLoading diff…
internal/provision/reconcile.goLoading diff…
internal/provision/reconcile_test.goLoading diff…
internal/provision/updates.goLoading diff…
internal/provision/updates_reconcile_test.goLoading diff…
internal/provision/updates_test.goLoading diff…
internal/registry/coldhandover.goLoading diff…
internal/registry/registry.goLoading diff…
internal/registry/registry_test.goLoading diff…
internal/registry/remote_dispatch.goLoading diff…
internal/registry/updatesettings_test.goLoading diff…
internal/release/restartscope.goLoading diff…
internal/release/restartscope_test.goLoading diff…
internal/release/updatesettings.goLoading diff…
internal/release/updatesettings_test.goLoading diff…
internal/rollout/events.goLoading diff…
internal/rollout/events_mode_test.goLoading diff…
internal/rollout/events_words_test.goLoading diff…
internal/rollout/manager_test.goLoading diff…
internal/rollout/wakeplan.goLoading diff…
internal/rollout/wakeplan_test.goLoading diff…
internal/rolloutwords/words.goLoading diff…
internal/rolloutwords/words_test.goLoading diff…
internal/sim/hostlife/console_test.goLoading diff…
internal/sim/hostlife/moves_test.goLoading diff…
internal/sim/hostlife/rules_test.goLoading diff…
internal/sim/hostlife/sim_test.goLoading diff…
internal/sim/hostlife/witness_test.goLoading diff…
internal/sim/hostlife/world_test.goLoading diff…
internal/status/dryrun.goLoading diff…
internal/status/snapshot.goLoading diff…
internal/status/snapshot_test.goLoading diff…
internal/updatewords/words_approved_test.goLoading diff…
internal/updatewords/words_console.goLoading diff…
ship_swap_test.goLoading diff…
sidecars_cli.goLoading diff…