carlos / platform Public

Merge main into the scanning branch, and count the doors again

`main` moved 31 commits while this branch was being split and reviewed.
One conflict, in the one place designed to have it: `closedDoors`.

Both sides had added shut doors since the merge base — main two (the
build probe, the fleet-wide live tenancy read), this branch two (the
deployment-wide antivirus pair) — and both sides had bumped the same
literal from 17 to 19. Git took that identical edit silently, because
textually it was not a conflict at all: two people writing `19` agree.

They did not agree. The list holds 21. Had the merge been committed as
git resolved it, `TestEveryClosedDoorRefusesAServiceCredential` would
have failed on `seen != 21` — which is the outcome the redundant literal
is there to produce, and the reason it is written as a second assertion
beside `len(closedDoors)` rather than derived from it. A door added by
somebody who is not looking at your branch cannot slip in unremarked.

Resolved to 21, with the message naming all four of the newcomers.

Whole tree green.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ExnZtUYmt2h8QFcymjPaSL
Paul Campbell pushed by paul@keymail.dev 6280140f2471d3860d2f9d90780cd2483125236a parent 25f2784parent b08445b
71 files changed, +8436 −516
  • AGENTS.md +17 −0
  • apimode.go +95 −0
  • apps.go +13 −1
  • apps_buildprobe.go +97 −0
  • cli.go +208 −12
  • deploy.go +31 −2
  • deploy_e2e_test.go +16 −2
  • docs/site/cli.md +133 −8
  • docs/superpowers/specs/2026-09-02-path-based-routing-design.md +29 −16
  • infra/modules/region-host/variables.tf +15 −1
  • internal/activator/activator.go +8 −3
  • internal/awsinv/ec2.go +19 −0
  • internal/console/apibuildprobe.go +77 −0
  • internal/console/apibuildprobe_test.go +88 −0
  • internal/console/apicli.go +9 −6
  • internal/console/apiregions.go +3 −1
  • internal/console/apirestartscope.go +390 −0
  • internal/console/apirestartscope_test.go +422 −0
  • internal/console/apiroutes.go +7 −0
  • internal/console/apiroutes_test.go +36 −1
  • internal/console/apistatusinstances.go +162 −0
  • internal/console/apistatusinstances_test.go +198 −0
  • internal/console/archestate.go +248 −0
  • internal/console/archestate_test.go +285 −0
  • internal/console/archfits_test.go +31 −15
  • internal/console/archgraph.go +264 −49
  • internal/console/archgraph_test.go +125 −42
  • internal/console/archlayout.go +122 −84
  • internal/console/archlayout_test.go +118 −56
  • internal/console/archlegibility_test.go +77 −54
  • internal/console/archpage.go +6 −1
  • internal/console/archpage_test.go +48 −0
  • internal/console/archregion.go +179 −0
  • internal/console/archregion_test.go +343 −0
  • internal/console/authcli.go +54 −1
  • internal/console/economicspass.go +16 −3
  • internal/console/instancesplacement.go +67 −16
  • internal/console/instancesplacement_test.go +75 −0
  • internal/console/server.go +7 −4
  • internal/console/svcroutes_test.go +19 −3
  • internal/console/templates/architecture.html +67 −25
  • internal/console/templates/layout.html +17 −15
  • internal/edge/edge.go +47 −16
  • internal/edge/noactivator_test.go +95 −0
  • internal/edge/purge_header.go +55 −2
  • internal/edge/purge_path_test.go +156 −0
  • internal/host/agent.go +22 −8
  • internal/host/bootstrap.go +39 −0
  • internal/host/fileowner_other.go +10 −0
  • internal/host/fileowner_unix.go +20 −0
  • internal/host/registryowner.go +237 −0
  • internal/host/registryowner_test.go +368 −0
  • internal/host/restart.go +167 −21
  • internal/host/restart_test.go +34 −13
  • internal/host/restartscope.go +289 −0
  • internal/host/restartscope_test.go +577 −0
  • internal/provision/reconcile.go +45 −2
  • internal/provision/reconcile_test.go +47 −0
  • internal/registry/registry.go +167 −14
  • internal/registry/replication_test.go +219 −0
  • internal/release/adopt.go +11 −4
  • internal/release/restartscope.go +314 −0
  • internal/release/restartscope_test.go +301 −0
  • internal/release/stage_blocked_test.go +72 −0
  • main.go +2 −1
  • restart.go +152 −6
  • restart_test.go +182 −0
  • route_replication_test.go +333 −0
  • routes_cli.go +30 −8
  • status_instances.go +161 −0
  • status_instances_test.go +43 −0

CI passed — run details

AGENTS.md

Loading diff…

apimode.go

Loading diff…

apps.go

Loading diff…

apps_buildprobe.go

Loading diff…

cli.go

Loading diff…

deploy.go

Loading diff…

deploy_e2e_test.go

Loading diff…

docs/site/cli.md

Loading diff…

docs/superpowers/specs/2026-09-02-path-based-routing-design.md

Loading diff…

infra/modules/region-host/variables.tf

Loading diff…

internal/activator/activator.go

Loading diff…

internal/awsinv/ec2.go

Loading diff…

internal/console/apibuildprobe.go

Loading diff…

internal/console/apibuildprobe_test.go

Loading diff…

internal/console/apicli.go

Loading diff…

internal/console/apiregions.go

Loading diff…

internal/console/apirestartscope.go

Loading diff…

internal/console/apirestartscope_test.go

Loading diff…

internal/console/apiroutes.go

Loading diff…

internal/console/apiroutes_test.go

Loading diff…

internal/console/apistatusinstances.go

Loading diff…

internal/console/apistatusinstances_test.go

Loading diff…

internal/console/archestate.go

Loading diff…

internal/console/archestate_test.go

Loading diff…

internal/console/archfits_test.go

Loading diff…

internal/console/archgraph.go

Loading diff…

internal/console/archgraph_test.go

Loading diff…

internal/console/archlayout.go

Loading diff…

internal/console/archlayout_test.go

Loading diff…

internal/console/archlegibility_test.go

Loading diff…

internal/console/archpage.go

Loading diff…

internal/console/archpage_test.go

Loading diff…

internal/console/archregion.go

Loading diff…

internal/console/archregion_test.go

Loading diff…

internal/console/authcli.go

Loading diff…

internal/console/economicspass.go

Loading diff…

internal/console/instancesplacement.go

Loading diff…

internal/console/instancesplacement_test.go

Loading diff…

internal/console/server.go

Loading diff…

internal/console/svcroutes_test.go

Loading diff…

internal/console/templates/architecture.html

Loading diff…

internal/console/templates/layout.html

Loading diff…

internal/edge/edge.go

Loading diff…

internal/edge/noactivator_test.go

Loading diff…

internal/edge/purge_header.go

Loading diff…

internal/edge/purge_path_test.go

Loading diff…

internal/host/agent.go

Loading diff…

internal/host/bootstrap.go

Loading diff…

internal/host/fileowner_other.go

Loading diff…

internal/host/fileowner_unix.go

Loading diff…

internal/host/registryowner.go

Loading diff…

internal/host/registryowner_test.go

Loading diff…

internal/host/restart.go

Loading diff…

internal/host/restart_test.go

Loading diff…

internal/host/restartscope.go

Loading diff…

internal/host/restartscope_test.go

Loading diff…

internal/provision/reconcile.go

Loading diff…

internal/provision/reconcile_test.go

Loading diff…

internal/registry/registry.go

Loading diff…

internal/registry/replication_test.go

Loading diff…

internal/release/adopt.go

Loading diff…

internal/release/restartscope.go

Loading diff…

internal/release/restartscope_test.go

Loading diff…

internal/release/stage_blocked_test.go

Loading diff…

main.go

Loading diff…

restart.go

Loading diff…

restart_test.go

Loading diff…

route_replication_test.go

Loading diff…

routes_cli.go

Loading diff…

status_instances.go

Loading diff…

status_instances_test.go

Loading diff…