carlos / platform Public

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>
claude agent, operated by paul@keymail.dev ca5a79d8a3821172f5829231014969f106bc33e9 parent 8159a6fparent 7143c7e
118 files changed, +16692 −217
  • AGENTS.md +30 −0
  • README.md +22 −6
  • apimode.go +51 −9
  • apimode_test.go +194 −0
  • cmd/console/hostclaim_flag.go +0 −7
  • cmd/console/hostclaim_flag_test.go +0 −16
  • cmd/console/hostclaim_test.go +20 −0
  • cmd/console/main.go +15 −1
  • docs/site/cli.md +55 −3
  • docs/superpowers/plans/2026-10-05-deploy-credential.md +2247 −0
  • docs/superpowers/plans/2026-10-05-scanner-host-rollout.md +9 −7
  • docs/superpowers/specs/2026-10-04-scanner-host-rollout-design.md +4 −4
  • docs/superpowers/specs/2026-10-05-deploy-credential-design.md +719 −0
  • docs/superpowers/specs/2026-10-05-instance-catchall-design.md +410 −0
  • docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R1.md +43 −0
  • docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R2.md +34 −0
  • docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R3.md +50 −0
  • docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R4.md +40 −0
  • docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R5.md +10 −0
  • docs/superpowers/specs/CODEX-REVIEW-BRIEF-DEPLOY-CREDENTIAL.md +157 −0
  • domains_cli.go +26 −1
  • domains_cli_test.go +46 −0
  • e2e_test.go +11 −1
  • infra/modules/region-host/main.tf +8 −1
  • infra/modules/region-remote-host/main.tf +8 −1
  • infra/modules/scanner-host/scanner-init.sh.tftpl +6 −5
  • infra/modules/scanner-host/tests/scanner_host.tftest.hcl +12 −0
  • internal/console/apicli.go +61 −3
  • internal/console/apidb.go +47 −0
  • internal/console/apidbclaim.go +305 −0
  • internal/console/apidbclaim_generation_test.go +164 −0
  • internal/console/apidbclaim_http_test.go +301 −0
  • internal/console/apidbclaim_r3_test.go +221 −0
  • internal/console/apidbclaim_range_test.go +198 −0
  • internal/console/apidbclaim_test.go +386 −0
  • internal/console/apidomains.go +130 −2
  • internal/console/apidomains_firstroute_test.go +97 −0
  • internal/console/apiservices.go +42 −3
  • internal/console/appdomains.go +33 −0
  • internal/console/appsettings.go +8 −0
  • internal/console/authcli.go +13 −13
  • internal/console/authstore.go +10 −3
  • internal/console/deploycred_test.go +154 −0
  • internal/console/deploydoors_test.go +80 −0
  • internal/console/deploymint_test.go +138 −0
  • internal/console/deploymixed_test.go +95 −0
  • internal/console/deployscope.go +170 −0
  • internal/console/deployscope_test.go +181 −0
  • internal/console/deploysign_test.go +285 −0
  • internal/console/domainattach.go +4 −4
  • internal/console/domaincatchall.go +343 −0
  • internal/console/domaincatchall_test.go +374 −0
  • internal/console/server.go +19 −6
  • internal/console/svcpage.go +53 −3
  • internal/console/svcprincipal.go +62 −13
  • internal/console/templates/account_settings.html +5 −2
  • internal/console/templates/app_settings.html +5 −0
  • internal/console/view_test.go +9 −0
  • internal/dbdoor/client.go +35 −5
  • internal/dbdoor/client_handles.go +92 −0
  • internal/dbdoor/client_handles_test.go +168 −0
  • internal/dbdoor/coords.go +12 −8
  • internal/dbdoor/restore.go +43 −6
  • internal/dbdoor/restore_test.go +21 −0
  • internal/domains/aliases.go +165 −1
  • internal/domains/claimcache.go +37 −3
  • internal/domains/claims.go +211 −3
  • internal/domains/instancecatchall_test.go +534 −0
  • internal/edge/dns.go +24 −1
  • internal/edge/dns_test.go +22 −0
  • internal/edge/edge.go +21 −0
  • internal/edge/homemap.go +15 −0
  • internal/edge/homemap_test.go +25 −0
  • internal/edge/route53dns.go +7 −1
  • internal/edge/wildcard.go +29 −3
  • internal/edge/wildcard_zonecheck_test.go +108 −0
  • internal/genselect/compatibility_test.go +66 −0
  • internal/genselect/select.go +509 −0
  • internal/genselect/select_test.go +779 −0
  • internal/host/agent.go +62 −22
  • internal/host/stage_relay_test.go +115 −2
  • internal/hostclaim/claim.go +53 −10
  • internal/hostclaim/generation.go +10 −3
  • internal/hostclaim/generation_test.go +5 −3
  • internal/hostclaim/lossidentity_test.go +125 −0
  • internal/hostclaim/lossrecord.go +6 −6
  • internal/hostclaim/park_test.go +119 −0
  • internal/hostclaim/rev713_test.go +110 −4
  • internal/hostguard/retirement.go +95 −0
  • internal/hostguard/retirement_test.go +127 −0
  • internal/lease/leasetest/bucket.go +27 −0
  • internal/lease/leasetest/contract.go +85 −0
  • internal/lease/leasetest/s3server.go +25 −0
  • internal/lease/versioned.go +28 −1
  • internal/lease/versioned_test.go +51 −0
  • internal/park/local.go +270 −0
  • internal/park/local_linux.go +348 −0
  • internal/park/local_linux_test.go +673 −0
  • internal/park/local_other.go +9 −0
  • internal/park/moves_test.go +204 −0
  • internal/park/namespace_test.go +87 −0
  • internal/park/remote.go +573 −0
  • internal/park/remote_test.go +574 −0
  • internal/park/sweep.go +316 −0
  • internal/park/sweep_coverage_test.go +249 −0
  • internal/park/sweep_test.go +390 −0
  • internal/release/authorize.go +14 −0
  • internal/release/authorize_sim_test.go +189 −0
  • internal/release/authorize_test.go +329 −0
  • internal/release/release.go +56 −1
  • internal/svcrole/svcrole.go +8 −2
  • internal/svcrole/svcrole_test.go +20 −0
  • mail_cli.go +31 −2
  • mail_cli_test.go +49 −0
  • main_test.go +16 −0
  • scopedkeys_e2e_test.go +11 −1
  • services.go +28 −10
  • services_cli_test.go +62 −5

CI passed — run details

AGENTS.md

Loading diff…

README.md

Loading diff…

apimode.go

Loading diff…

apimode_test.go

Loading diff…

cmd/console/hostclaim_flag.go

Loading diff…

cmd/console/hostclaim_flag_test.go

Loading diff…

cmd/console/hostclaim_test.go

Loading diff…

cmd/console/main.go

Loading diff…

docs/site/cli.md

Loading diff…

docs/superpowers/plans/2026-10-05-deploy-credential.md

Loading diff…

docs/superpowers/plans/2026-10-05-scanner-host-rollout.md

Loading diff…

docs/superpowers/specs/2026-10-04-scanner-host-rollout-design.md

Loading diff…

docs/superpowers/specs/2026-10-05-deploy-credential-design.md

Loading diff…

docs/superpowers/specs/2026-10-05-instance-catchall-design.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R1.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R2.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R3.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R4.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-DEPLOY-CREDENTIAL-R5.md

Loading diff…

docs/superpowers/specs/CODEX-REVIEW-BRIEF-DEPLOY-CREDENTIAL.md

Loading diff…

domains_cli.go

Loading diff…

domains_cli_test.go

Loading diff…

e2e_test.go

Loading diff…

infra/modules/region-host/main.tf

Loading diff…

infra/modules/region-remote-host/main.tf

Loading diff…

infra/modules/scanner-host/scanner-init.sh.tftpl

Loading diff…

infra/modules/scanner-host/tests/scanner_host.tftest.hcl

Loading diff…

internal/console/apicli.go

Loading diff…

internal/console/apidb.go

Loading diff…

internal/console/apidbclaim.go

Loading diff…

internal/console/apidbclaim_generation_test.go

Loading diff…

internal/console/apidbclaim_http_test.go

Loading diff…

internal/console/apidbclaim_r3_test.go

Loading diff…

internal/console/apidbclaim_range_test.go

Loading diff…

internal/console/apidbclaim_test.go

Loading diff…

internal/console/apidomains.go

Loading diff…

internal/console/apidomains_firstroute_test.go

Loading diff…

internal/console/apiservices.go

Loading diff…

internal/console/appdomains.go

Loading diff…

internal/console/appsettings.go

Loading diff…

internal/console/authcli.go

Loading diff…

internal/console/authstore.go

Loading diff…

internal/console/deploycred_test.go

Loading diff…

internal/console/deploydoors_test.go

Loading diff…

internal/console/deploymint_test.go

Loading diff…

internal/console/deploymixed_test.go

Loading diff…

internal/console/deployscope.go

Loading diff…

internal/console/deployscope_test.go

Loading diff…

internal/console/deploysign_test.go

Loading diff…

internal/console/domainattach.go

Loading diff…

internal/console/domaincatchall.go

Loading diff…

internal/console/domaincatchall_test.go

Loading diff…

internal/console/server.go

Loading diff…

internal/console/svcpage.go

Loading diff…

internal/console/svcprincipal.go

Loading diff…

internal/console/templates/account_settings.html

Loading diff…

internal/console/templates/app_settings.html

Loading diff…

internal/console/view_test.go

Loading diff…

internal/dbdoor/client.go

Loading diff…

internal/dbdoor/client_handles.go

Loading diff…

internal/dbdoor/client_handles_test.go

Loading diff…

internal/dbdoor/coords.go

Loading diff…

internal/dbdoor/restore.go

Loading diff…

internal/dbdoor/restore_test.go

Loading diff…

internal/domains/aliases.go

Loading diff…

internal/domains/claimcache.go

Loading diff…

internal/domains/claims.go

Loading diff…

internal/domains/instancecatchall_test.go

Loading diff…

internal/edge/dns.go

Loading diff…

internal/edge/dns_test.go

Loading diff…

internal/edge/edge.go

Loading diff…

internal/edge/homemap.go

Loading diff…

internal/edge/homemap_test.go

Loading diff…

internal/edge/route53dns.go

Loading diff…

internal/edge/wildcard.go

Loading diff…

internal/edge/wildcard_zonecheck_test.go

Loading diff…

internal/genselect/compatibility_test.go

Loading diff…

internal/genselect/select.go

Loading diff…

internal/genselect/select_test.go

Loading diff…

internal/host/agent.go

Loading diff…

internal/host/stage_relay_test.go

Loading diff…

internal/hostclaim/claim.go

Loading diff…

internal/hostclaim/generation.go

Loading diff…

internal/hostclaim/generation_test.go

Loading diff…

internal/hostclaim/lossidentity_test.go

Loading diff…

internal/hostclaim/lossrecord.go

Loading diff…

internal/hostclaim/park_test.go

Loading diff…

internal/hostclaim/rev713_test.go

Loading diff…

internal/hostguard/retirement.go

Loading diff…

internal/hostguard/retirement_test.go

Loading diff…

internal/lease/leasetest/bucket.go

Loading diff…

internal/lease/leasetest/contract.go

Loading diff…

internal/lease/leasetest/s3server.go

Loading diff…

internal/lease/versioned.go

Loading diff…

internal/lease/versioned_test.go

Loading diff…

internal/park/local.go

Loading diff…

internal/park/local_linux.go

Loading diff…

internal/park/local_linux_test.go

Loading diff…

internal/park/local_other.go

Loading diff…

internal/park/moves_test.go

Loading diff…

internal/park/namespace_test.go

Loading diff…

internal/park/remote.go

Loading diff…

internal/park/remote_test.go

Loading diff…

internal/park/sweep.go

Loading diff…

internal/park/sweep_coverage_test.go

Loading diff…

internal/park/sweep_test.go

Loading diff…

internal/release/authorize.go

Loading diff…

internal/release/authorize_sim_test.go

Loading diff…

internal/release/authorize_test.go

Loading diff…

internal/release/release.go

Loading diff…

internal/svcrole/svcrole.go

Loading diff…

internal/svcrole/svcrole_test.go

Loading diff…

mail_cli.go

Loading diff…

mail_cli_test.go

Loading diff…

main_test.go

Loading diff…

scopedkeys_e2e_test.go

Loading diff…

services.go

Loading diff…

services_cli_test.go

Loading diff…