carlos / platform Public

Merge remote-tracking branch 'origin/main' into feat/hostclaim-boxguard

# Conflicts:
#	internal/hostclaim/claim.go
#	internal/hostclaim/generation.go
#	internal/hostclaim/generation_test.go
claude agent, operated by paul@keymail.dev eb3fe844b9510c83c75f0d6641d8e7183c15c1ff parent 695b6d3parent 4d13aec
159 files changed, +27508 −418
  • README.md +24 −6
  • apimode.go +46 −9
  • apimode_test.go +194 −0
  • docs/site/cli.md +17 −11
  • docs/superpowers/plans/2026-09-01-carloku-scanning-rollout.md +2 −0
  • docs/superpowers/plans/2026-10-05-deploy-credential.md +2247 −0
  • docs/superpowers/plans/2026-10-05-region-ha-1a-foundations.md +6741 −0
  • docs/superpowers/plans/2026-10-05-scanner-host-rollout.md +1509 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-BRIEF-1.md +50 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-BRIEF-2.md +46 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-BRIEF-3.md +41 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-BRIEF-4.md +29 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-BRIEF-5.md +17 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-R1.md +41 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-R2.md +56 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-R3.md +41 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-R4.md +20 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-R5.md +9 −0
  • docs/superpowers/specs/2026-10-04-region-ha-box-placement-design.md +926 −0
  • docs/superpowers/specs/2026-10-04-scanner-host-rollout-design.md +489 −0
  • docs/superpowers/specs/2026-10-05-deploy-credential-design.md +719 −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-FINDINGS-REGION-HA-1.md +110 −0
  • docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-2.md +75 −0
  • docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-3.md +50 −0
  • docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-4.md +39 −0
  • docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-5.md +21 −0
  • docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-6.md +14 −0
  • docs/superpowers/specs/CODEX-FINDINGS-SCANNER-HOST-CODE.md +17 −0
  • docs/superpowers/specs/CODEX-FINDINGS-SCANNER-HOST-R2.md +35 −0
  • docs/superpowers/specs/CODEX-FINDINGS-SCANNER-HOST-R3.md +19 −0
  • docs/superpowers/specs/CODEX-FINDINGS-SCANNER-HOST-R4.md +26 −0
  • docs/superpowers/specs/CODEX-FINDINGS-SCANNER-HOST-R5.md +35 −0
  • docs/superpowers/specs/CODEX-FINDINGS-SCANNER-HOST.md +23 −0
  • docs/superpowers/specs/CODEX-REVIEW-BRIEF-DEPLOY-CREDENTIAL.md +157 −0
  • docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-1.md +53 −0
  • docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-2.md +63 −0
  • docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-3.md +65 −0
  • docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-4.md +65 −0
  • docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-5.md +62 −0
  • docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-6.md +61 −0
  • docs/superpowers/specs/CODEX-REVIEW-BRIEF-SCANNER-HOST-CODE.md +59 −0
  • docs/superpowers/specs/CODEX-REVIEW-BRIEF-SCANNER-HOST.md +58 −0
  • e2e_test.go +11 −1
  • infra/modules/README.md +21 −0
  • infra/modules/deployment-buckets/main.tf +53 −0
  • infra/modules/deployment-buckets/variables.tf +6 −0
  • infra/modules/region-host/README.md +28 −0
  • infra/modules/region-host/main.tf +112 −0
  • infra/modules/region-host/outputs.tf +5 −0
  • infra/modules/region-host/tests/store_scanning.tftest.hcl +70 −0
  • infra/modules/region-host/variables.tf +6 −0
  • infra/modules/scanner-host/README.md +181 −0
  • infra/modules/scanner-host/files/scanner-selftest +146 −0
  • infra/modules/scanner-host/files/scanner-selftest.service +23 −0
  • infra/modules/scanner-host/files/scanner-tcp.service +15 −0
  • infra/modules/scanner-host/files/scanner-tcp.socket +26 −0
  • infra/modules/scanner-host/main.tf +157 −0
  • infra/modules/scanner-host/outputs.tf +19 −0
  • infra/modules/scanner-host/scanner-init.sh.tftpl +175 −0
  • infra/modules/scanner-host/tests/scanner_host.tftest.hcl +259 −0
  • infra/modules/scanner-host/variables.tf +63 −0
  • infra/modules/scanner-host/versions.tf +9 −0
  • internal/activator/activator.go +28 −5
  • internal/activator/converge_adopted_test.go +43 −0
  • internal/activator/installed.go +122 −0
  • internal/activator/installed_test.go +106 −0
  • internal/boxid/boxid_test.go +213 −0
  • internal/boxid/certs.go +43 −0
  • internal/boxid/certs/README.md +7 −0
  • internal/boxid/certs/ap-southeast-2.pem +19 −0
  • internal/boxid/certs/eu-west-1.pem +19 −0
  • internal/boxid/certs/eu-west-2.pem +19 −0
  • internal/boxid/certs/us-east-1.pem +19 −0
  • internal/boxid/record.go +93 −0
  • internal/boxid/verify.go +84 −0
  • internal/clamd/clamd.go +27 −2
  • internal/clamd/clamd_test.go +63 −0
  • internal/console/apicli.go +61 −3
  • internal/console/apiservices.go +42 −3
  • internal/console/authcli.go +13 −13
  • internal/console/authstore.go +10 −3
  • internal/console/boxchoice.go +98 −0
  • internal/console/boxchoice_test.go +163 −0
  • 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/instancesplacement.go +14 −4
  • internal/console/regioncandidates_test.go +27 −0
  • internal/console/server.go +1 −0
  • internal/console/svcpage.go +53 −3
  • internal/console/svcprincipal.go +62 −13
  • internal/console/templates/account_settings.html +5 −2
  • internal/edge/homemap.go +84 −6
  • internal/edge/homemap_test.go +123 −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 +134 −44
  • internal/host/converge_adopted_test.go +102 −20
  • internal/host/edgesfile.go +77 −3
  • internal/host/edgesfile_test.go +154 −0
  • internal/host/headroom.go +38 −0
  • internal/host/headroom_linux.go +23 −0
  • internal/host/headroom_other.go +6 −0
  • internal/host/headroom_test.go +26 −0
  • internal/host/stage_relay_test.go +115 −2
  • internal/host/steering_loop_test.go +10 −0
  • internal/hostclaim/claim.go +11 −10
  • internal/hostclaim/generation.go +60 −6
  • internal/hostclaim/generation_test.go +20 −12
  • internal/hostclaim/rev713_test.go +472 −0
  • internal/hostfiles/deadline.go +36 −0
  • internal/hostfiles/deadline_test.go +38 −0
  • internal/hostfiles/dir_other.go +26 −0
  • internal/hostfiles/dir_unix.go +183 −0
  • internal/hostfiles/hostfiles_test.go +822 −0
  • internal/hostfiles/manifest.go +91 −0
  • internal/hostfiles/publish_unix_test.go +135 −0
  • internal/hostfiles/publisher.go +226 −0
  • internal/hostfiles/restore.go +358 −0
  • internal/hostfiles/run.go +213 −0
  • internal/hostfiles/run_test.go +379 −0
  • internal/hostfiles/sync.go +125 −0
  • internal/hostfiles/sync_test.go +190 −0
  • internal/hostfiles/sync_unix_test.go +254 −0
  • internal/hostfiles/wake.go +138 −0
  • internal/hostfiles/wake_test.go +191 −0
  • internal/hostfiles/walk_unix.go +73 −0
  • internal/hostfiles/watch_linux.go +217 −0
  • internal/hostfiles/watch_linux_test.go +232 −0
  • internal/hostfiles/watch_other.go +10 −0
  • internal/provision/applisting_test.go +337 −0
  • internal/provision/parallelreads_test.go +320 −0
  • internal/provision/reconcile.go +386 −132
  • internal/provision/sidecar_reconcile.go +95 −86
  • internal/registry/timers.go +31 −0
  • internal/registry/timers_test.go +77 −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/release/store.go +28 −0
  • internal/svcrole/svcrole.go +8 −2
  • internal/svcrole/svcrole_test.go +20 −0
  • internal/termfence/fence.go +138 −0
  • internal/termfence/fence_test.go +127 −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

README.md

Loading diff…

apimode.go

Loading diff…

apimode_test.go

Loading diff…

docs/site/cli.md

Loading diff…

docs/superpowers/plans/2026-09-01-carloku-scanning-rollout.md

Loading diff…

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

Loading diff…

docs/superpowers/plans/2026-10-05-region-ha-1a-foundations.md

Loading diff…

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

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-BRIEF-1.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-BRIEF-2.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-BRIEF-3.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-BRIEF-4.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-BRIEF-5.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-R1.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-R2.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-R3.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-R4.md

Loading diff…

docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-R5.md

Loading diff…

docs/superpowers/specs/2026-10-04-region-ha-box-placement-design.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/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-FINDINGS-REGION-HA-1.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-2.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-3.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-4.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-5.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-6.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-SCANNER-HOST-CODE.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-SCANNER-HOST-R2.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-SCANNER-HOST-R3.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-SCANNER-HOST-R4.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-SCANNER-HOST-R5.md

Loading diff…

docs/superpowers/specs/CODEX-FINDINGS-SCANNER-HOST.md

Loading diff…

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

Loading diff…

docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-1.md

Loading diff…

docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-2.md

Loading diff…

docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-3.md

Loading diff…

docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-4.md

Loading diff…

docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-5.md

Loading diff…

docs/superpowers/specs/CODEX-REVIEW-BRIEF-REGION-HA-6.md

Loading diff…

docs/superpowers/specs/CODEX-REVIEW-BRIEF-SCANNER-HOST-CODE.md

Loading diff…

docs/superpowers/specs/CODEX-REVIEW-BRIEF-SCANNER-HOST.md

Loading diff…

e2e_test.go

Loading diff…

infra/modules/README.md

Loading diff…

infra/modules/deployment-buckets/main.tf

Loading diff…

infra/modules/deployment-buckets/variables.tf

Loading diff…

infra/modules/region-host/README.md

Loading diff…

infra/modules/region-host/main.tf

Loading diff…

infra/modules/region-host/outputs.tf

Loading diff…

infra/modules/region-host/tests/store_scanning.tftest.hcl

Loading diff…

infra/modules/region-host/variables.tf

Loading diff…

infra/modules/scanner-host/README.md

Loading diff…

infra/modules/scanner-host/files/scanner-selftest

Loading diff…

infra/modules/scanner-host/files/scanner-selftest.service

Loading diff…

infra/modules/scanner-host/files/scanner-tcp.service

Loading diff…

infra/modules/scanner-host/files/scanner-tcp.socket

Loading diff…

infra/modules/scanner-host/main.tf

Loading diff…

infra/modules/scanner-host/outputs.tf

Loading diff…

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

Loading diff…

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

Loading diff…

infra/modules/scanner-host/variables.tf

Loading diff…

infra/modules/scanner-host/versions.tf

Loading diff…

internal/activator/activator.go

Loading diff…

internal/activator/converge_adopted_test.go

Loading diff…

internal/activator/installed.go

Loading diff…

internal/activator/installed_test.go

Loading diff…

internal/boxid/boxid_test.go

Loading diff…

internal/boxid/certs.go

Loading diff…

internal/boxid/certs/README.md

Loading diff…

internal/boxid/certs/ap-southeast-2.pem

Loading diff…

internal/boxid/certs/eu-west-1.pem

Loading diff…

internal/boxid/certs/eu-west-2.pem

Loading diff…

internal/boxid/certs/us-east-1.pem

Loading diff…

internal/boxid/record.go

Loading diff…

internal/boxid/verify.go

Loading diff…

internal/clamd/clamd.go

Loading diff…

internal/clamd/clamd_test.go

Loading diff…

internal/console/apicli.go

Loading diff…

internal/console/apiservices.go

Loading diff…

internal/console/authcli.go

Loading diff…

internal/console/authstore.go

Loading diff…

internal/console/boxchoice.go

Loading diff…

internal/console/boxchoice_test.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/instancesplacement.go

Loading diff…

internal/console/regioncandidates_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/edge/homemap.go

Loading diff…

internal/edge/homemap_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/converge_adopted_test.go

Loading diff…

internal/host/edgesfile.go

Loading diff…

internal/host/edgesfile_test.go

Loading diff…

internal/host/headroom.go

Loading diff…

internal/host/headroom_linux.go

Loading diff…

internal/host/headroom_other.go

Loading diff…

internal/host/headroom_test.go

Loading diff…

internal/host/stage_relay_test.go

Loading diff…

internal/host/steering_loop_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/rev713_test.go

Loading diff…

internal/hostfiles/deadline.go

Loading diff…

internal/hostfiles/deadline_test.go

Loading diff…

internal/hostfiles/dir_other.go

Loading diff…

internal/hostfiles/dir_unix.go

Loading diff…

internal/hostfiles/hostfiles_test.go

Loading diff…

internal/hostfiles/manifest.go

Loading diff…

internal/hostfiles/publish_unix_test.go

Loading diff…

internal/hostfiles/publisher.go

Loading diff…

internal/hostfiles/restore.go

Loading diff…

internal/hostfiles/run.go

Loading diff…

internal/hostfiles/run_test.go

Loading diff…

internal/hostfiles/sync.go

Loading diff…

internal/hostfiles/sync_test.go

Loading diff…

internal/hostfiles/sync_unix_test.go

Loading diff…

internal/hostfiles/wake.go

Loading diff…

internal/hostfiles/wake_test.go

Loading diff…

internal/hostfiles/walk_unix.go

Loading diff…

internal/hostfiles/watch_linux.go

Loading diff…

internal/hostfiles/watch_linux_test.go

Loading diff…

internal/hostfiles/watch_other.go

Loading diff…

internal/provision/applisting_test.go

Loading diff…

internal/provision/parallelreads_test.go

Loading diff…

internal/provision/reconcile.go

Loading diff…

internal/provision/sidecar_reconcile.go

Loading diff…

internal/registry/timers.go

Loading diff…

internal/registry/timers_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/release/store.go

Loading diff…

internal/svcrole/svcrole.go

Loading diff…

internal/svcrole/svcrole_test.go

Loading diff…

internal/termfence/fence.go

Loading diff…

internal/termfence/fence_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…