carlos / platform Public

Merge remote-tracking branch 'origin/main' into worktree-scanner-host

Paul Campbell pushed by claude agent, operated by paul@keymail.dev a8e9f61f87a3a2b873d20ce50c39806e4e7fb9dd parent 036d9eeparent 04cd2d7
138 files changed, +10809 −426
  • AGENTS.md +26 −1
  • README.md +24 −2
  • accounts.go +46 −2
  • apimode.go +39 −21
  • apimode_test.go +46 −5
  • appconfig_cli.go +47 −11
  • canary.go +114 −7
  • canary_create_e2e_test.go +164 −0
  • canary_region_e2e_test.go +2 −2
  • canary_region_test.go +3 −3
  • canary_test.go +139 −16
  • cli.go +39 −2
  • cmd/console/main.go +45 −16
  • config_e2e_test.go +1 −1
  • docs/site/cli.md +25 −13
  • docs/superpowers/plans/2026-10-02-nearest-region-copy.json +1 −1
  • domains_cli.go +9 −3
  • domains_cli_test.go +15 −0
  • e2e_test.go +13 −2
  • go.mod +1 −0
  • go.sum +2 −0
  • infra/modules/region-host/main.tf +14 −0
  • infra/modules/region-remote-host/main.tf +14 −0
  • internal/activator/activator.go +175 −4
  • internal/activator/activator_test.go +14 −0
  • internal/activator/backend_exec.go +29 −0
  • internal/activator/backend_unit.go +9 −0
  • internal/activator/config_gate_test.go +219 −0
  • internal/activator/converge_adopted_test.go +203 −0
  • internal/appconfig/canprovide.go +132 −0
  • internal/appconfig/canprovide_test.go +280 −0
  • internal/appconfig/configack.go +2 −2
  • internal/appconfig/configack_test.go +1 −1
  • internal/appconfig/crypto.go +161 −20
  • internal/appconfig/crypto_bind_test.go +202 −0
  • internal/appconfig/crypto_test.go +27 −9
  • internal/appconfig/generation_test.go +1 −1
  • internal/appconfig/instances_test.go +1 −1
  • internal/appconfig/materialize.go +4 −3
  • internal/appconfig/materialize_test.go +4 −4
  • internal/appconfig/sync.go +8 −2
  • internal/appconfig/sync_test.go +1 −1
  • internal/appconfig/syncexec.go +2 −2
  • internal/console/apex.go +85 −0
  • internal/console/apiconfig.go +10 −0
  • internal/console/apiconfig_test.go +31 −3
  • internal/console/apidomains.go +100 −41
  • internal/console/apidoorkeys.go +14 −0
  • internal/console/apidoorkeys_test.go +133 −0
  • internal/console/apiinstances.go +38 −0
  • internal/console/apiinstancescanary_test.go +187 −0
  • internal/console/apiledger.go +1 −1
  • internal/console/apimail.go +33 −11
  • internal/console/apimail_test.go +30 −0
  • internal/console/apistore.go +12 −0
  • internal/console/apistore_provision.go +4 −0
  • internal/console/apistore_test.go +27 −1
  • internal/console/appsettings.go +3 −0
  • internal/console/authcli.go +27 −5
  • internal/console/claimlogging_test.go +1 −1
  • internal/console/deletion_test.go +35 −0
  • internal/console/domainattach.go +28 −2
  • internal/console/domainplatform_test.go +313 −0
  • internal/console/domainpolicy.go +97 −9
  • internal/console/doorkeys_store.go +18 −0
  • internal/console/instanceprivatestore.go +6 −0
  • internal/console/ownership.go +2 −0
  • internal/console/regioncandidates_test.go +4 −4
  • internal/console/regionclaim_test.go +3 −3
  • internal/console/regiondefault_test.go +1 −1
  • internal/console/regiondrift_test.go +5 −5
  • internal/console/regionguess_test.go +1 −1
  • internal/console/relayops.go +1 −1
  • internal/console/server.go +71 −8
  • internal/console/server_account_test.go +26 −4
  • internal/console/store.go +49 −0
  • internal/console/storelock.go +19 −7
  • internal/console/storelock_test.go +26 −0
  • internal/console/svcpage_test.go +46 −0
  • internal/edge/static.go +301 −2
  • internal/edge/static_cache_test.go +596 −0
  • internal/edge/status.go +17 −1
  • internal/edge/status_test.go +46 −6
  • internal/host/agent.go +135 −3
  • internal/host/alertsink.go +336 −0
  • internal/host/alertsink_test.go +451 −0
  • internal/host/configguard.go +371 −0
  • internal/host/configguard_test.go +615 −0
  • internal/host/converge_adopted_test.go +416 −0
  • internal/host/metrics_loop.go +11 −21
  • internal/host/metrics_loop_test.go +13 −8
  • internal/lease/export_test.go +9 −0
  • internal/lease/leasetest/bucket.go +340 −0
  • internal/lease/leasetest/bucket_test.go +15 −0
  • internal/lease/leasetest/contract.go +245 −0
  • internal/lease/leasetest/s3server.go +222 −0
  • internal/lease/leasetest/s3server_test.go +38 −0
  • internal/lease/versioned.go +268 −0
  • internal/lease/versioned_test.go +97 −0
  • internal/ledger/ledger.go +4 −2
  • internal/mail/aws.go +10 −1
  • internal/mail/aws_test.go +40 −4
  • internal/mail/domain.go +5 −0
  • internal/mail/domainclaim.go +233 −0
  • internal/mail/memprovisioner.go +7 −3
  • internal/mail/memprovisioner_test.go +27 −7
  • internal/mail/provisioner.go +20 −2
  • internal/mail/walk.go +135 −10
  • internal/mail/walk_enable_test.go +1 −1
  • internal/mail/walk_identityowner_test.go +332 −0
  • internal/maintenance/envelope_test.go +12 −5
  • internal/objstore/nameclaim.go +341 −0
  • internal/objstore/nameclaim_test.go +346 −0
  • internal/objstore/walk.go +61 −5
  • internal/objstore/walk_env_test.go +1 −1
  • internal/objstore/walk_test.go +8 −8
  • internal/provision/config_gate_test.go +116 −0
  • internal/provision/reconcile.go +23 −0
  • internal/provision/sidecar_reconcile.go +8 −0
  • internal/relay/server.go +61 −9
  • internal/relay/server_test.go +15 −1
  • internal/release/accountbind_test.go +150 −0
  • internal/release/golden_test.go +1 −1
  • internal/release/qualified_test.go +2 −2
  • internal/release/rebind.go +70 −0
  • internal/release/release.go +61 −16
  • internal/release/release_test.go +4 −4
  • internal/release/scopedverify_test.go +14 −14
  • internal/release/trash.go +16 −3
  • internal/release/trash_test.go +38 −0
  • internal/status/contract_test.go +26 −15
  • internal/status/dryrun.go +31 −0
  • internal/status/snapshot.go +88 −1
  • internal/status/snapshot_test.go +41 −0
  • internal/status/status_test.go +76 −0
  • mail_cli.go +5 −2
  • mail_cli_test.go +2 −2
  • statuslive_test.go +45 −0
AGENTS.md

Loading diff…

README.md

Loading diff…

accounts.go

Loading diff…

apimode.go

Loading diff…

apimode_test.go

Loading diff…

appconfig_cli.go

Loading diff…

canary.go

Loading diff…

canary_create_e2e_test.go

Loading diff…

canary_region_e2e_test.go

Loading diff…

canary_region_test.go

Loading diff…

canary_test.go

Loading diff…

cli.go

Loading diff…

cmd/console/main.go

Loading diff…

config_e2e_test.go

Loading diff…

docs/site/cli.md

Loading diff…

docs/superpowers/plans/2026-10-02-nearest-region-copy.json

Loading diff…

domains_cli.go

Loading diff…

domains_cli_test.go

Loading diff…

e2e_test.go

Loading diff…

go.mod

Loading diff…

go.sum

Loading diff…

infra/modules/region-host/main.tf

Loading diff…

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

Loading diff…

internal/activator/activator.go

Loading diff…

internal/activator/activator_test.go

Loading diff…

internal/activator/backend_exec.go

Loading diff…

internal/activator/backend_unit.go

Loading diff…

internal/activator/config_gate_test.go

Loading diff…

internal/activator/converge_adopted_test.go

Loading diff…

internal/appconfig/canprovide.go

Loading diff…

internal/appconfig/canprovide_test.go

Loading diff…

internal/appconfig/configack.go

Loading diff…

internal/appconfig/configack_test.go

Loading diff…

internal/appconfig/crypto.go

Loading diff…

internal/appconfig/crypto_bind_test.go

Loading diff…

internal/appconfig/crypto_test.go

Loading diff…

internal/appconfig/generation_test.go

Loading diff…

internal/appconfig/instances_test.go

Loading diff…

internal/appconfig/materialize.go

Loading diff…

internal/appconfig/materialize_test.go

Loading diff…

internal/appconfig/sync.go

Loading diff…

internal/appconfig/sync_test.go

Loading diff…

internal/appconfig/syncexec.go

Loading diff…

internal/console/apex.go

Loading diff…

internal/console/apiconfig.go

Loading diff…

internal/console/apiconfig_test.go

Loading diff…

internal/console/apidomains.go

Loading diff…

internal/console/apidoorkeys.go

Loading diff…

internal/console/apidoorkeys_test.go

Loading diff…

internal/console/apiinstances.go

Loading diff…

internal/console/apiinstancescanary_test.go

Loading diff…

internal/console/apiledger.go

Loading diff…

internal/console/apimail.go

Loading diff…

internal/console/apimail_test.go

Loading diff…

internal/console/apistore.go

Loading diff…

internal/console/apistore_provision.go

Loading diff…

internal/console/apistore_test.go

Loading diff…

internal/console/appsettings.go

Loading diff…

internal/console/authcli.go

Loading diff…

internal/console/claimlogging_test.go

Loading diff…

internal/console/deletion_test.go

Loading diff…

internal/console/domainattach.go

Loading diff…

internal/console/domainplatform_test.go

Loading diff…

internal/console/domainpolicy.go

Loading diff…

internal/console/doorkeys_store.go

Loading diff…

internal/console/instanceprivatestore.go

Loading diff…

internal/console/ownership.go

Loading diff…

internal/console/regioncandidates_test.go

Loading diff…

internal/console/regionclaim_test.go

Loading diff…

internal/console/regiondefault_test.go

Loading diff…

internal/console/regiondrift_test.go

Loading diff…

internal/console/regionguess_test.go

Loading diff…

internal/console/relayops.go

Loading diff…

internal/console/server.go

Loading diff…

internal/console/server_account_test.go

Loading diff…

internal/console/store.go

Loading diff…

internal/console/storelock.go

Loading diff…

internal/console/storelock_test.go

Loading diff…

internal/console/svcpage_test.go

Loading diff…

internal/edge/static.go

Loading diff…

internal/edge/static_cache_test.go

Loading diff…

internal/edge/status.go

Loading diff…

internal/edge/status_test.go

Loading diff…

internal/host/agent.go

Loading diff…

internal/host/alertsink.go

Loading diff…

internal/host/alertsink_test.go

Loading diff…

internal/host/configguard.go

Loading diff…

internal/host/configguard_test.go

Loading diff…

internal/host/converge_adopted_test.go

Loading diff…

internal/host/metrics_loop.go

Loading diff…

internal/host/metrics_loop_test.go

Loading diff…

internal/lease/export_test.go

Loading diff…

internal/lease/leasetest/bucket.go

Loading diff…

internal/lease/leasetest/bucket_test.go

Loading diff…

internal/lease/leasetest/contract.go

Loading diff…

internal/lease/leasetest/s3server.go

Loading diff…

internal/lease/leasetest/s3server_test.go

Loading diff…

internal/lease/versioned.go

Loading diff…

internal/lease/versioned_test.go

Loading diff…

internal/ledger/ledger.go

Loading diff…

internal/mail/aws.go

Loading diff…

internal/mail/aws_test.go

Loading diff…

internal/mail/domain.go

Loading diff…

internal/mail/domainclaim.go

Loading diff…

internal/mail/memprovisioner.go

Loading diff…

internal/mail/memprovisioner_test.go

Loading diff…

internal/mail/provisioner.go

Loading diff…

internal/mail/walk.go

Loading diff…

internal/mail/walk_enable_test.go

Loading diff…

internal/mail/walk_identityowner_test.go

Loading diff…

internal/maintenance/envelope_test.go

Loading diff…

internal/objstore/nameclaim.go

Loading diff…

internal/objstore/nameclaim_test.go

Loading diff…

internal/objstore/walk.go

Loading diff…

internal/objstore/walk_env_test.go

Loading diff…

internal/objstore/walk_test.go

Loading diff…

internal/provision/config_gate_test.go

Loading diff…

internal/provision/reconcile.go

Loading diff…

internal/provision/sidecar_reconcile.go

Loading diff…

internal/relay/server.go

Loading diff…

internal/relay/server_test.go

Loading diff…

internal/release/accountbind_test.go

Loading diff…

internal/release/golden_test.go

Loading diff…

internal/release/qualified_test.go

Loading diff…

internal/release/rebind.go

Loading diff…

internal/release/release.go

Loading diff…

internal/release/release_test.go

Loading diff…

internal/release/scopedverify_test.go

Loading diff…

internal/release/trash.go

Loading diff…

internal/release/trash_test.go

Loading diff…

internal/status/contract_test.go

Loading diff…

internal/status/dryrun.go

Loading diff…

internal/status/snapshot.go

Loading diff…

internal/status/snapshot_test.go

Loading diff…

internal/status/status_test.go

Loading diff…

mail_cli.go

Loading diff…

mail_cli_test.go

Loading diff…

statuslive_test.go

Loading diff…