Merge origin/main (claim E, F, Plans 3, 4, 7 and fixes) into feat/hostclaim-leases
Takes main's internal/hostclaim and re-applies Plan 8's own changes; reconciles them with rev 6.24-6.26 (the legacy session-0 identity is valid in both loss fields; a create's first admission declares nothing; records with unarchived losses are never trimmed); uses main's Config.HostClaim and hostClaimEnabled, removing Plan 8's duplicate.
Co-Authored-By: Codex <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
AGENTS.md+30 −0README.md+22 −6apimode.go+51 −9apimode_test.go+194 −0cmd/console/hostclaim_flag.go+0 −7cmd/console/hostclaim_flag_test.go+0 −16cmd/console/hostclaim_test.go+20 −0cmd/console/main.go+15 −1docs/site/cli.md+55 −3docs/superpowers/plans/2026-10-05-deploy-credential.md+2247 −0docs/superpowers/plans/2026-10-05-scanner-host-rollout.md+9 −7docs/superpowers/specs/2026-10-04-scanner-host-rollout-design.md+4 −4docs/superpowers/specs/2026-10-05-deploy-credential-design.md+719 −0docs/superpowers/specs/2026-10-05-instance-catchall-design.md+410 −0docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R1.md+43 −0docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R2.md+34 −0docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R3.md+50 −0docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R4.md+40 −0docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R5.md+10 −0docs/superpowers/specs/CODEX-REVIEW-BRIEF-DEPLOY-CREDENTIAL.md+157 −0domains_cli.go+26 −1domains_cli_test.go+46 −0e2e_test.go+11 −1infra/modules/region-host/main.tf+8 −1infra/modules/region-remote-host/main.tf+8 −1infra/modules/scanner-host/scanner-init.sh.tftpl+6 −5infra/modules/scanner-host/tests/scanner_host.tftest.hcl+12 −0internal/console/apicli.go+61 −3internal/console/apidb.go+47 −0internal/console/apidbclaim.go+305 −0internal/console/apidbclaim_generation_test.go+164 −0internal/console/apidbclaim_http_test.go+301 −0internal/console/apidbclaim_r3_test.go+221 −0internal/console/apidbclaim_range_test.go+198 −0internal/console/apidbclaim_test.go+386 −0internal/console/apidomains.go+130 −2internal/console/apidomains_firstroute_test.go+97 −0internal/console/apiservices.go+42 −3internal/console/appdomains.go+33 −0internal/console/appsettings.go+8 −0internal/console/authcli.go+13 −13internal/console/authstore.go+10 −3internal/console/deploycred_test.go+154 −0internal/console/deploydoors_test.go+80 −0internal/console/deploymint_test.go+138 −0internal/console/deploymixed_test.go+95 −0internal/console/deployscope.go+170 −0internal/console/deployscope_test.go+181 −0internal/console/deploysign_test.go+285 −0internal/console/domainattach.go+4 −4internal/console/domaincatchall.go+343 −0internal/console/domaincatchall_test.go+374 −0internal/console/server.go+19 −6internal/console/svcpage.go+53 −3internal/console/svcprincipal.go+62 −13internal/console/templates/account_settings.html+5 −2internal/console/templates/app_settings.html+5 −0internal/console/view_test.go+9 −0internal/dbdoor/client.go+35 −5internal/dbdoor/client_handles.go+92 −0internal/dbdoor/client_handles_test.go+168 −0internal/dbdoor/coords.go+12 −8internal/dbdoor/restore.go+43 −6internal/dbdoor/restore_test.go+21 −0internal/domains/aliases.go+165 −1internal/domains/claimcache.go+37 −3internal/domains/claims.go+211 −3internal/domains/instancecatchall_test.go+534 −0internal/edge/dns.go+24 −1internal/edge/dns_test.go+22 −0internal/edge/edge.go+21 −0internal/edge/homemap.go+15 −0internal/edge/homemap_test.go+25 −0internal/edge/route53dns.go+7 −1internal/edge/wildcard.go+29 −3internal/edge/wildcard_zonecheck_test.go+108 −0internal/genselect/compatibility_test.go+66 −0internal/genselect/select.go+509 −0internal/genselect/select_test.go+779 −0internal/host/agent.go+62 −22internal/host/stage_relay_test.go+115 −2internal/hostclaim/claim.go+53 −10internal/hostclaim/generation.go+10 −3internal/hostclaim/generation_test.go+5 −3internal/hostclaim/lossidentity_test.go+125 −0internal/hostclaim/lossrecord.go+6 −6internal/hostclaim/park_test.go+119 −0internal/hostclaim/rev713_test.go+110 −4internal/hostguard/retirement.go+95 −0internal/hostguard/retirement_test.go+127 −0internal/lease/leasetest/bucket.go+27 −0internal/lease/leasetest/contract.go+85 −0internal/lease/leasetest/s3server.go+25 −0internal/lease/versioned.go+28 −1internal/lease/versioned_test.go+51 −0internal/park/local.go+270 −0internal/park/local_linux.go+348 −0internal/park/local_linux_test.go+673 −0internal/park/local_other.go+9 −0internal/park/moves_test.go+204 −0internal/park/namespace_test.go+87 −0internal/park/remote.go+573 −0internal/park/remote_test.go+574 −0internal/park/sweep.go+316 −0internal/park/sweep_coverage_test.go+249 −0internal/park/sweep_test.go+390 −0internal/release/authorize.go+14 −0internal/release/authorize_sim_test.go+189 −0internal/release/authorize_test.go+329 −0internal/release/release.go+56 −1internal/svcrole/svcrole.go+8 −2internal/svcrole/svcrole_test.go+20 −0mail_cli.go+31 −2mail_cli_test.go+49 −0main_test.go+16 −0scopedkeys_e2e_test.go+11 −1services.go+28 −10services_cli_test.go+62 −5
CI passed — run details
AGENTS.mdLoading diff…
README.mdLoading diff…
apimode.goLoading diff…
apimode_test.goLoading diff…
cmd/console/hostclaim_flag.goLoading diff…
cmd/console/hostclaim_flag_test.goLoading diff…
cmd/console/hostclaim_test.goLoading diff…
cmd/console/main.goLoading diff…
docs/site/cli.mdLoading diff…
docs/superpowers/plans/2026-10-05-deploy-credential.mdLoading diff…
docs/superpowers/plans/2026-10-05-scanner-host-rollout.mdLoading diff…
docs/superpowers/specs/2026-10-04-scanner-host-rollout-design.mdLoading diff…
docs/superpowers/specs/2026-10-05-deploy-credential-design.mdLoading diff…
docs/superpowers/specs/2026-10-05-instance-catchall-design.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R1.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R2.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R3.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R4.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R5.mdLoading diff…
docs/superpowers/specs/CODEX-REVIEW-BRIEF-DEPLOY-CREDENTIAL.mdLoading diff…
domains_cli.goLoading diff…
domains_cli_test.goLoading diff…
e2e_test.goLoading diff…
infra/modules/region-host/main.tfLoading diff…
infra/modules/region-remote-host/main.tfLoading diff…
infra/modules/scanner-host/scanner-init.sh.tftplLoading diff…
infra/modules/scanner-host/tests/scanner_host.tftest.hclLoading diff…
internal/console/apicli.goLoading diff…
internal/console/apidb.goLoading diff…
internal/console/apidbclaim.goLoading diff…
internal/console/apidbclaim_generation_test.goLoading diff…
internal/console/apidbclaim_http_test.goLoading diff…
internal/console/apidbclaim_r3_test.goLoading diff…
internal/console/apidbclaim_range_test.goLoading diff…
internal/console/apidbclaim_test.goLoading diff…
internal/console/apidomains.goLoading diff…
internal/console/apidomains_firstroute_test.goLoading diff…
internal/console/apiservices.goLoading diff…
internal/console/appdomains.goLoading diff…
internal/console/appsettings.goLoading diff…
internal/console/authcli.goLoading diff…
internal/console/authstore.goLoading diff…
internal/console/deploycred_test.goLoading diff…
internal/console/deploydoors_test.goLoading diff…
internal/console/deploymint_test.goLoading diff…
internal/console/deploymixed_test.goLoading diff…
internal/console/deployscope.goLoading diff…
internal/console/deployscope_test.goLoading diff…
internal/console/deploysign_test.goLoading diff…
internal/console/domainattach.goLoading diff…
internal/console/domaincatchall.goLoading diff…
internal/console/domaincatchall_test.goLoading diff…
internal/console/server.goLoading diff…
internal/console/svcpage.goLoading diff…
internal/console/svcprincipal.goLoading diff…
internal/console/templates/account_settings.htmlLoading diff…
internal/console/templates/app_settings.htmlLoading diff…
internal/console/view_test.goLoading diff…
internal/dbdoor/client.goLoading diff…
internal/dbdoor/client_handles.goLoading diff…
internal/dbdoor/client_handles_test.goLoading diff…
internal/dbdoor/coords.goLoading diff…
internal/dbdoor/restore.goLoading diff…
internal/dbdoor/restore_test.goLoading diff…
internal/domains/aliases.goLoading diff…
internal/domains/claimcache.goLoading diff…
internal/domains/claims.goLoading diff…
internal/domains/instancecatchall_test.goLoading diff…
internal/edge/dns.goLoading diff…
internal/edge/dns_test.goLoading diff…
internal/edge/edge.goLoading diff…
internal/edge/homemap.goLoading diff…
internal/edge/homemap_test.goLoading diff…
internal/edge/route53dns.goLoading diff…
internal/edge/wildcard.goLoading diff…
internal/edge/wildcard_zonecheck_test.goLoading diff…
internal/genselect/compatibility_test.goLoading diff…
internal/genselect/select.goLoading diff…
internal/genselect/select_test.goLoading diff…
internal/host/agent.goLoading diff…
internal/host/stage_relay_test.goLoading diff…
internal/hostclaim/claim.goLoading diff…
internal/hostclaim/generation.goLoading diff…
internal/hostclaim/generation_test.goLoading diff…
internal/hostclaim/lossidentity_test.goLoading diff…
internal/hostclaim/lossrecord.goLoading diff…
internal/hostclaim/park_test.goLoading diff…
internal/hostclaim/rev713_test.goLoading diff…
internal/hostguard/retirement.goLoading diff…
internal/hostguard/retirement_test.goLoading diff…
internal/lease/leasetest/bucket.goLoading diff…
internal/lease/leasetest/contract.goLoading diff…
internal/lease/leasetest/s3server.goLoading diff…
internal/lease/versioned.goLoading diff…
internal/lease/versioned_test.goLoading diff…
internal/park/local.goLoading diff…
internal/park/local_linux.goLoading diff…
internal/park/local_linux_test.goLoading diff…
internal/park/local_other.goLoading diff…
internal/park/moves_test.goLoading diff…
internal/park/namespace_test.goLoading diff…
internal/park/remote.goLoading diff…
internal/park/remote_test.goLoading diff…
internal/park/sweep.goLoading diff…
internal/park/sweep_coverage_test.goLoading diff…
internal/park/sweep_test.goLoading diff…
internal/release/authorize.goLoading diff…
internal/release/authorize_sim_test.goLoading diff…
internal/release/authorize_test.goLoading diff…
internal/release/release.goLoading diff…
internal/svcrole/svcrole.goLoading diff…
internal/svcrole/svcrole_test.goLoading diff…
mail_cli.goLoading diff…
mail_cli_test.goLoading diff…
main_test.goLoading diff…
scopedkeys_e2e_test.goLoading diff…
services.goLoading diff…
services_cli_test.goLoading diff…