carlos / platform Public

Merge remote-tracking branch 'origin/main' into design-deploy-credential

claude agent, operated by paul@keymail.dev 91026571b75c6838b82520fe093a78306ebc7191 parent 5f0e7a3parent aadb860
158 files changed, +26532 −342
  • AGENTS.md +6 −1
  • README.md +25 −2
  • 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
  • docs/site/cli.md +22 −16
  • docs/superpowers/plans/2026-09-01-carloku-scanning-rollout.md +2 −0
  • docs/superpowers/plans/2026-10-02-nearest-region-copy.json +1 −1
  • docs/superpowers/plans/2026-10-05-region-ha-1a-foundations.md +6741 −0
  • docs/superpowers/plans/2026-10-05-scanner-host-rollout.md +1507 −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/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-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
  • go.mod +1 −0
  • go.sum +2 −0
  • 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 +126 −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/region-remote-host/main.tf +14 −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 +174 −0
  • infra/modules/scanner-host/tests/scanner_host.tftest.hcl +247 −0
  • infra/modules/scanner-host/variables.tf +63 −0
  • infra/modules/scanner-host/versions.tf +9 −0
  • internal/activator/activator.go +203 −9
  • 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 +246 −0
  • internal/activator/installed.go +122 −0
  • internal/activator/installed_test.go +106 −0
  • internal/appconfig/canprovide.go +132 −0
  • internal/appconfig/canprovide_test.go +280 −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/apex.go +85 −0
  • internal/console/apiinstances.go +38 −0
  • internal/console/apiinstancescanary_test.go +187 −0
  • internal/console/boxchoice.go +98 −0
  • internal/console/boxchoice_test.go +163 −0
  • internal/console/instancesplacement.go +14 −4
  • internal/console/regioncandidates_test.go +27 −0
  • internal/edge/homemap.go +84 −6
  • internal/edge/homemap_test.go +123 −0
  • internal/edge/static.go +301 −2
  • internal/edge/static_cache_test.go +596 −0
  • internal/host/agent.go +185 −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 +498 −0
  • 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/metrics_loop.go +11 −21
  • internal/host/metrics_loop_test.go +13 −8
  • internal/host/steering_loop_test.go +10 −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/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/provision/applisting_test.go +337 −0
  • internal/provision/config_gate_test.go +116 −0
  • internal/provision/parallelreads_test.go +320 −0
  • internal/provision/reconcile.go +409 −132
  • internal/provision/sidecar_reconcile.go +103 −86
  • internal/registry/timers.go +31 −0
  • internal/registry/timers_test.go +77 −0
  • internal/release/store.go +28 −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
  • internal/termfence/fence.go +138 −0
  • internal/termfence/fence_test.go +127 −0
  • statuslive_test.go +45 −0

CI passed — run details

AGENTS.md

Loading diff…

README.md

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…

docs/site/cli.md

Loading diff…

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

Loading diff…

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

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/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-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…

go.mod

Loading diff…

go.sum

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/region-remote-host/main.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/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/activator/installed.go

Loading diff…

internal/activator/installed_test.go

Loading diff…

internal/appconfig/canprovide.go

Loading diff…

internal/appconfig/canprovide_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/apex.go

Loading diff…

internal/console/apiinstances.go

Loading diff…

internal/console/apiinstancescanary_test.go

Loading diff…

internal/console/boxchoice.go

Loading diff…

internal/console/boxchoice_test.go

Loading diff…

internal/console/instancesplacement.go

Loading diff…

internal/console/regioncandidates_test.go

Loading diff…

internal/edge/homemap.go

Loading diff…

internal/edge/homemap_test.go

Loading diff…

internal/edge/static.go

Loading diff…

internal/edge/static_cache_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/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/metrics_loop.go

Loading diff…

internal/host/metrics_loop_test.go

Loading diff…

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

Loading diff…

internal/provision/config_gate_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/store.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…

internal/termfence/fence.go

Loading diff…

internal/termfence/fence_test.go

Loading diff…

statuslive_test.go

Loading diff…