Merge origin/main: union the registry's guarded columns (caps/tunnel + provisioned/seed)
Both sides added two guarded columns to routes; the union keeps all four CASE guards, widens routeCols/scanRoute/VALUES to 31, and merges the Upsert comment. Route registrations in authcli.go are side-by-side.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
CLAUDE.md+7 −1README.md+127 −3apimode.go+254 −11apimode_test.go+592 −10appconfig_cli.go+334 −41cli.go+765 −21cli_test.go+434 −0cmd/console/main.go+28 −1config_e2e_test.go+317 −0docs/superpowers/plans/2026-08-03-app-capabilities.md+902 −0docs/superpowers/plans/2026-08-04-config-console-api.md+382 −0docs/superpowers/plans/2026-08-04-pi-enablement.md+247 −0docs/superpowers/plans/2026-08-04-remote-host-agent.md+1261 −0docs/superpowers/specs/2026-08-03-app-capabilities-design.md+960 −0docs/superpowers/specs/2026-08-03-cli-console-api-design.md+2 −1docs/superpowers/specs/2026-08-04-config-console-api-design.md+266 −0docs/superpowers/specs/2026-08-04-remote-host-pi-design.md+267 −0e2e_test.go+151 −0go.mod+1 −1infra/remote-host.md+95 −0internal/appconfig/crypto.go+31 −0internal/appconfig/crypto_test.go+66 −0internal/appconfig/environments.go+12 −1internal/appconfig/generation.go+128 −0internal/appconfig/generation_test.go+252 −0internal/appconfig/store.go+21 −3internal/appconfig/sync.go+34 −0internal/appconfig/syncexec.go+43 −0internal/appconfig/syncexec_test.go+120 −0internal/caps/caps.go+436 −0internal/caps/caps_test.go+456 −0internal/caps/converge.go+1055 −0internal/caps/converge_test.go+1255 −0internal/caps/grants.go+214 −0internal/caps/grants_test.go+184 −0internal/caps/neutrality_test.go+141 −0internal/caps/render.go+187 −0internal/caps/render_test.go+353 −0internal/caps/testdata/console.service.conf+6 −0internal/caps/testdata/keymail.service.conf+14 −0internal/caps/testdata/keymail.socket.conf+3 −0internal/console/apicli.go+152 −15internal/console/apicli_test.go+366 −0internal/console/apiconfig.go+472 −0internal/console/apiconfig_test.go+904 −0internal/console/authcli.go+27 −3internal/console/ladder.go+6 −0internal/console/ladder_test.go+83 −0internal/console/metricsview.go+13 −2internal/console/server.go+40 −1internal/console/server_test.go+134 −1internal/console/templates/app.html+4 −0internal/console/templates/fleet.html+38 −0internal/console/templates/ladder.html+1 −0internal/console/view.go+137 −3internal/edge/edge.go+158 −1internal/edge/tunnel.go+224 −0internal/edge/tunnel_e2e_test.go+218 −0internal/edge/tunnel_test.go+316 −0internal/host/adopt_advice.go+198 −0internal/host/adopt_advice_test.go+170 −0internal/host/agent.go+405 −19internal/host/agent_test.go+388 −0internal/host/bootstrap.go+62 −18internal/host/caps_pass.go+388 −0internal/host/caps_pass_test.go+845 −0internal/host/host_test.go+122 −2internal/host/probes.go+102 −0internal/host/tunnel_client.go+59 −0internal/host/tunnel_client_test.go+100 −0internal/host/units/carlos-adopt.path+20 −0internal/host/units/carlos-config-sync.service+46 −0internal/lease/lease.go+23 −2internal/lease/lease_test.go+95 −0internal/registry/registry.go+236 −17internal/registry/registry_test.go+399 −2internal/release/adopt.go+415 −29internal/release/adopt_test.go+1604 −0internal/release/golden_test.go+72 −0internal/release/release.go+42 −0internal/release/release_test.go+96 −0internal/release/versions.go+89 −0internal/release/versions_test.go+193 −0internal/status/assets/index.html+6 −0internal/status/contract_test.go+47 −9internal/status/dryrun.go+73 −8internal/status/fleet.go+62 −10internal/status/snapshot.go+108 −11internal/status/status_test.go+185 −0internal/tunnelclient/tunnelclient.go+267 −0internal/tunnelclient/tunnelclient_test.go+154 −0main.go+12 −0statuslive_test.go+127 −0
CLAUDE.mdLoading diff…
README.mdLoading diff…
apimode.goLoading diff…
apimode_test.goLoading diff…
appconfig_cli.goLoading diff…
cli.goLoading diff…
cli_test.goLoading diff…
cmd/console/main.goLoading diff…
config_e2e_test.goLoading diff…
docs/superpowers/plans/2026-08-03-app-capabilities.mdLoading diff…
docs/superpowers/plans/2026-08-04-config-console-api.mdLoading diff…
docs/superpowers/plans/2026-08-04-pi-enablement.mdLoading diff…
docs/superpowers/plans/2026-08-04-remote-host-agent.mdLoading diff…
docs/superpowers/specs/2026-08-03-app-capabilities-design.mdLoading diff…
docs/superpowers/specs/2026-08-03-cli-console-api-design.mdLoading diff…
docs/superpowers/specs/2026-08-04-config-console-api-design.mdLoading diff…
docs/superpowers/specs/2026-08-04-remote-host-pi-design.mdLoading diff…
e2e_test.goLoading diff…
go.modLoading diff…
infra/remote-host.mdLoading diff…
internal/appconfig/crypto.goLoading diff…
internal/appconfig/crypto_test.goLoading diff…
internal/appconfig/environments.goLoading diff…
internal/appconfig/generation.goLoading diff…
internal/appconfig/generation_test.goLoading diff…
internal/appconfig/store.goLoading diff…
internal/appconfig/sync.goLoading diff…
internal/appconfig/syncexec.goLoading diff…
internal/appconfig/syncexec_test.goLoading diff…
internal/caps/caps.goLoading diff…
internal/caps/caps_test.goLoading diff…
internal/caps/converge.goLoading diff…
internal/caps/converge_test.goLoading diff…
internal/caps/grants.goLoading diff…
internal/caps/grants_test.goLoading diff…
internal/caps/neutrality_test.goLoading diff…
internal/caps/render.goLoading diff…
internal/caps/render_test.goLoading diff…
internal/caps/testdata/console.service.confLoading diff…
internal/caps/testdata/keymail.service.confLoading diff…
internal/caps/testdata/keymail.socket.confLoading diff…
internal/console/apicli.goLoading diff…
internal/console/apicli_test.goLoading diff…
internal/console/apiconfig.goLoading diff…
internal/console/apiconfig_test.goLoading diff…
internal/console/authcli.goLoading diff…
internal/console/ladder.goLoading diff…
internal/console/ladder_test.goLoading diff…
internal/console/metricsview.goLoading diff…
internal/console/server.goLoading diff…
internal/console/server_test.goLoading diff…
internal/console/templates/app.htmlLoading diff…
internal/console/templates/fleet.htmlLoading diff…
internal/console/templates/ladder.htmlLoading diff…
internal/console/view.goLoading diff…
internal/edge/edge.goLoading diff…
internal/edge/tunnel.goLoading diff…
internal/edge/tunnel_e2e_test.goLoading diff…
internal/edge/tunnel_test.goLoading diff…
internal/host/adopt_advice.goLoading diff…
internal/host/adopt_advice_test.goLoading diff…
internal/host/agent.goLoading diff…
internal/host/agent_test.goLoading diff…
internal/host/bootstrap.goLoading diff…
internal/host/caps_pass.goLoading diff…
internal/host/caps_pass_test.goLoading diff…
internal/host/host_test.goLoading diff…
internal/host/probes.goLoading diff…
internal/host/tunnel_client.goLoading diff…
internal/host/tunnel_client_test.goLoading diff…
internal/host/units/carlos-adopt.pathLoading diff…
internal/host/units/carlos-config-sync.serviceLoading diff…
internal/lease/lease.goLoading diff…
internal/lease/lease_test.goLoading diff…
internal/registry/registry.goLoading diff…
internal/registry/registry_test.goLoading diff…
internal/release/adopt.goLoading diff…
internal/release/adopt_test.goLoading diff…
internal/release/golden_test.goLoading diff…
internal/release/release.goLoading diff…
internal/release/release_test.goLoading diff…
internal/release/versions.goLoading diff…
internal/release/versions_test.goLoading diff…
internal/status/assets/index.htmlLoading diff…
internal/status/contract_test.goLoading diff…
internal/status/dryrun.goLoading diff…
internal/status/fleet.goLoading diff…
internal/status/snapshot.goLoading diff…
internal/status/status_test.goLoading diff…
internal/tunnelclient/tunnelclient.goLoading diff…
internal/tunnelclient/tunnelclient_test.goLoading diff…
main.goLoading diff…
statuslive_test.goLoading diff…