carlos / platform Public

Merge remote-tracking branch 'origin/main' into design-region-ha

# Conflicts:
#	infra/modules/region-host/main.tf
Paul Campbell pushed by claude agent, operated by paul@keymail.dev 2237cbe13a9e48d320bd2e937e0c936a0cfe52d6 parent e689e4bparent eef3e12
84 files changed, +11785 −329
  • 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-scanner-host-rollout.md +1507 −0
  • docs/superpowers/specs/2026-10-04-scanner-host-rollout-design.md +489 −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-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/region-host/README.md +4 −0
  • infra/modules/region-host/main.tf +49 −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/appconfig/canprovide.go +132 −0
  • internal/appconfig/canprovide_test.go +280 −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/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/metrics_loop.go +11 −21
  • internal/host/metrics_loop_test.go +13 −8
  • internal/host/steering_loop_test.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/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
  • 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-scanner-host-rollout.md

Loading diff…

docs/superpowers/specs/2026-10-04-scanner-host-rollout-design.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-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/region-host/README.md

Loading diff…

infra/modules/region-host/main.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/appconfig/canprovide.go

Loading diff…

internal/appconfig/canprovide_test.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/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/metrics_loop.go

Loading diff…

internal/host/metrics_loop_test.go

Loading diff…

internal/host/steering_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/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/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…

statuslive_test.go

Loading diff…