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
AGENTS.md+17 −0apimode.go+95 −0apps.go+13 −1apps_buildprobe.go+97 −0cli.go+208 −12deploy.go+31 −2deploy_e2e_test.go+16 −2docs/site/cli.md+133 −8docs/superpowers/specs/2026-09-02-path-based-routing-design.md+29 −16infra/modules/region-host/variables.tf+15 −1internal/activator/activator.go+8 −3internal/awsinv/ec2.go+19 −0internal/console/apibuildprobe.go+77 −0internal/console/apibuildprobe_test.go+88 −0internal/console/apicli.go+9 −6internal/console/apiregions.go+3 −1internal/console/apirestartscope.go+390 −0internal/console/apirestartscope_test.go+422 −0internal/console/apiroutes.go+7 −0internal/console/apiroutes_test.go+36 −1internal/console/apistatusinstances.go+162 −0internal/console/apistatusinstances_test.go+198 −0internal/console/archestate.go+248 −0internal/console/archestate_test.go+285 −0internal/console/archfits_test.go+31 −15internal/console/archgraph.go+264 −49internal/console/archgraph_test.go+125 −42internal/console/archlayout.go+122 −84internal/console/archlayout_test.go+118 −56internal/console/archlegibility_test.go+77 −54internal/console/archpage.go+6 −1internal/console/archpage_test.go+48 −0internal/console/archregion.go+179 −0internal/console/archregion_test.go+343 −0internal/console/authcli.go+54 −1internal/console/economicspass.go+16 −3internal/console/instancesplacement.go+67 −16internal/console/instancesplacement_test.go+75 −0internal/console/server.go+7 −4internal/console/svcroutes_test.go+19 −3internal/console/templates/architecture.html+67 −25internal/console/templates/layout.html+17 −15internal/edge/edge.go+47 −16internal/edge/noactivator_test.go+95 −0internal/edge/purge_header.go+55 −2internal/edge/purge_path_test.go+156 −0internal/host/agent.go+22 −8internal/host/bootstrap.go+39 −0internal/host/fileowner_other.go+10 −0internal/host/fileowner_unix.go+20 −0internal/host/registryowner.go+237 −0internal/host/registryowner_test.go+368 −0internal/host/restart.go+167 −21internal/host/restart_test.go+34 −13internal/host/restartscope.go+289 −0internal/host/restartscope_test.go+577 −0internal/provision/reconcile.go+45 −2internal/provision/reconcile_test.go+47 −0internal/registry/registry.go+167 −14internal/registry/replication_test.go+219 −0internal/release/adopt.go+11 −4internal/release/restartscope.go+314 −0internal/release/restartscope_test.go+301 −0internal/release/stage_blocked_test.go+72 −0main.go+2 −1restart.go+152 −6restart_test.go+182 −0route_replication_test.go+333 −0routes_cli.go+30 −8status_instances.go+161 −0status_instances_test.go+43 −0
CI passed — run details
AGENTS.mdLoading diff…
apimode.goLoading diff…
apps.goLoading diff…
apps_buildprobe.goLoading diff…
cli.goLoading diff…
deploy.goLoading diff…
deploy_e2e_test.goLoading diff…
docs/site/cli.mdLoading diff…
docs/superpowers/specs/2026-09-02-path-based-routing-design.mdLoading diff…
infra/modules/region-host/variables.tfLoading diff…
internal/activator/activator.goLoading diff…
internal/awsinv/ec2.goLoading diff…
internal/console/apibuildprobe.goLoading diff…
internal/console/apibuildprobe_test.goLoading diff…
internal/console/apicli.goLoading diff…
internal/console/apiregions.goLoading diff…
internal/console/apirestartscope.goLoading diff…
internal/console/apirestartscope_test.goLoading diff…
internal/console/apiroutes.goLoading diff…
internal/console/apiroutes_test.goLoading diff…
internal/console/apistatusinstances.goLoading diff…
internal/console/apistatusinstances_test.goLoading diff…
internal/console/archestate.goLoading diff…
internal/console/archestate_test.goLoading diff…
internal/console/archfits_test.goLoading diff…
internal/console/archgraph.goLoading diff…
internal/console/archgraph_test.goLoading diff…
internal/console/archlayout.goLoading diff…
internal/console/archlayout_test.goLoading diff…
internal/console/archlegibility_test.goLoading diff…
internal/console/archpage.goLoading diff…
internal/console/archpage_test.goLoading diff…
internal/console/archregion.goLoading diff…
internal/console/archregion_test.goLoading diff…
internal/console/authcli.goLoading diff…
internal/console/economicspass.goLoading diff…
internal/console/instancesplacement.goLoading diff…
internal/console/instancesplacement_test.goLoading diff…
internal/console/server.goLoading diff…
internal/console/svcroutes_test.goLoading diff…
internal/console/templates/architecture.htmlLoading diff…
internal/console/templates/layout.htmlLoading diff…
internal/edge/edge.goLoading diff…
internal/edge/noactivator_test.goLoading diff…
internal/edge/purge_header.goLoading diff…
internal/edge/purge_path_test.goLoading diff…
internal/host/agent.goLoading diff…
internal/host/bootstrap.goLoading diff…
internal/host/fileowner_other.goLoading diff…
internal/host/fileowner_unix.goLoading diff…
internal/host/registryowner.goLoading diff…
internal/host/registryowner_test.goLoading diff…
internal/host/restart.goLoading diff…
internal/host/restart_test.goLoading diff…
internal/host/restartscope.goLoading diff…
internal/host/restartscope_test.goLoading diff…
internal/provision/reconcile.goLoading diff…
internal/provision/reconcile_test.goLoading diff…
internal/registry/registry.goLoading diff…
internal/registry/replication_test.goLoading diff…
internal/release/adopt.goLoading diff…
internal/release/restartscope.goLoading diff…
internal/release/restartscope_test.goLoading diff…
internal/release/stage_blocked_test.goLoading diff…
main.goLoading diff…
restart.goLoading diff…
restart_test.goLoading diff…
route_replication_test.goLoading diff…
routes_cli.goLoading diff…
status_instances.goLoading diff…
status_instances_test.goLoading diff…