Merge origin/main into geoip-for-apps (console release defences alongside the geoip heartbeat block)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
apimode.go+16 −10apimode_test.go+67 −22auth_e2e_test.go+1 −1canary.go+2 −2cli.go+61 −7cli_test.go+92 −0deploy.go+2 −2docs/site/cli.md+39 −0docs/superpowers/plans/2026-10-06-console-release-defences-plan-1-d1.md+1957 −0docs/superpowers/plans/2026-10-06-console-release-defences-plan-2-d2.md+721 −0docs/superpowers/plans/2026-10-06-console-release-defences-plan-3-d3.md+3599 −0docs/superpowers/plans/2026-10-06-console-release-defences-plan-4-d4.md+437 −0docs/superpowers/specs/2026-10-06-console-release-defences-design.md+653 −0docs/superpowers/specs/CODEX-FINDINGS-console-release-defences-r2.md+21 −0docs/superpowers/specs/CODEX-FINDINGS-console-release-defences-r3.md+14 −0docs/superpowers/specs/CODEX-FINDINGS-console-release-defences-r4.md+13 −0docs/superpowers/specs/CODEX-FINDINGS-console-release-defences.md+19 −0docs/superpowers/specs/CODEX-REVIEW-BRIEF-console-release-defences.md+58 −0internal/console/apicli.go+47 −3internal/console/apicli_test.go+165 −0internal/console/pendingflow_test.go+89 −0internal/console/pendinghandlers.go+18 −3internal/host/agent.go+251 −22internal/host/agent_test.go+23 −18internal/host/alertsink.go+90 −0internal/host/converge_adopted_test.go+5 −5internal/host/fileowner_other.go+4 −0internal/host/fileowner_unix.go+10 −0internal/host/metrics_loop.go+7 −0internal/host/proofask.go+187 −0internal/host/proofask_test.go+378 −0internal/host/proofobserve.go+140 −0internal/host/proofobserve_test.go+239 −0internal/host/proofroot.go+294 −0internal/host/proofroot_test.go+440 −0internal/host/proofstatus.go+15 −0internal/host/refusalwatch.go+59 −0internal/host/refusalwatch_test.go+161 −0internal/host/unitsettle.go+314 −0internal/host/unitsettle_test.go+539 −0internal/release/adopt.go+246 −5internal/release/adopt_test.go+136 −0internal/release/healthy.go+118 −0internal/release/healthy_test.go+62 −0internal/release/program.go+178 −0internal/release/program_test.go+344 −0internal/release/programhistory.go+60 −0internal/release/programhistory_test.go+440 −0internal/release/proof.go+255 −0internal/release/proof_test.go+203 −0internal/release/proofgate.go+356 −0internal/release/proofgate_test.go+627 −0internal/release/proofpolicy.go+165 −0internal/release/proofpolicy_test.go+104 −0internal/release/refusal.go+172 −0internal/release/refusal_test.go+86 −0internal/release/release.go+84 −5internal/release/release_test.go+145 −0internal/release/rollback.go+138 −0internal/release/rollback_test.go+486 −0internal/status/contract_test.go+31 −13internal/status/dryrun.go+58 −0internal/status/snapshot.go+47 −1internal/status/status_test.go+95 −0main.go+3 −0mutation_message_test.go+2 −2proof_cli.go+182 −0proof_cli_test.go+149 −0statuslive_test.go+131 −0
CI passed — run details
apimode.goLoading diff…
apimode_test.goLoading diff…
auth_e2e_test.goLoading diff…
canary.goLoading diff…
cli.goLoading diff…
cli_test.goLoading diff…
deploy.goLoading diff…
docs/site/cli.mdLoading diff…
docs/superpowers/plans/2026-10-06-console-release-defences-plan-1-d1.mdLoading diff…
docs/superpowers/plans/2026-10-06-console-release-defences-plan-2-d2.mdLoading diff…
docs/superpowers/plans/2026-10-06-console-release-defences-plan-3-d3.mdLoading diff…
docs/superpowers/plans/2026-10-06-console-release-defences-plan-4-d4.mdLoading diff…
docs/superpowers/specs/2026-10-06-console-release-defences-design.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-console-release-defences-r2.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-console-release-defences-r3.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-console-release-defences-r4.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-console-release-defences.mdLoading diff…
docs/superpowers/specs/CODEX-REVIEW-BRIEF-console-release-defences.mdLoading diff…
internal/console/apicli.goLoading diff…
internal/console/apicli_test.goLoading diff…
internal/console/pendingflow_test.goLoading diff…
internal/console/pendinghandlers.goLoading diff…
internal/host/agent.goLoading diff…
internal/host/agent_test.goLoading diff…
internal/host/alertsink.goLoading diff…
internal/host/converge_adopted_test.goLoading diff…
internal/host/fileowner_other.goLoading diff…
internal/host/fileowner_unix.goLoading diff…
internal/host/metrics_loop.goLoading diff…
internal/host/proofask.goLoading diff…
internal/host/proofask_test.goLoading diff…
internal/host/proofobserve.goLoading diff…
internal/host/proofobserve_test.goLoading diff…
internal/host/proofroot.goLoading diff…
internal/host/proofroot_test.goLoading diff…
internal/host/proofstatus.goLoading diff…
internal/host/refusalwatch.goLoading diff…
internal/host/refusalwatch_test.goLoading diff…
internal/host/unitsettle.goLoading diff…
internal/host/unitsettle_test.goLoading diff…
internal/release/adopt.goLoading diff…
internal/release/adopt_test.goLoading diff…
internal/release/healthy.goLoading diff…
internal/release/healthy_test.goLoading diff…
internal/release/program.goLoading diff…
internal/release/program_test.goLoading diff…
internal/release/programhistory.goLoading diff…
internal/release/programhistory_test.goLoading diff…
internal/release/proof.goLoading diff…
internal/release/proof_test.goLoading diff…
internal/release/proofgate.goLoading diff…
internal/release/proofgate_test.goLoading diff…
internal/release/proofpolicy.goLoading diff…
internal/release/proofpolicy_test.goLoading diff…
internal/release/refusal.goLoading diff…
internal/release/refusal_test.goLoading diff…
internal/release/release.goLoading diff…
internal/release/release_test.goLoading diff…
internal/release/rollback.goLoading diff…
internal/release/rollback_test.goLoading diff…
internal/status/contract_test.goLoading diff…
internal/status/dryrun.goLoading diff…
internal/status/snapshot.goLoading diff…
internal/status/status_test.goLoading diff…
main.goLoading diff…
mutation_message_test.goLoading diff…
proof_cli.goLoading diff…
proof_cli_test.goLoading diff…
statuslive_test.goLoading diff…