carlos / platform Public

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>
Paul Campbell cfd2fde42d78ef6b08707bba8b85746f818293df parent be14207parent 09b084d
93 files changed, +22906 −247
  • CLAUDE.md +7 −1
  • README.md +127 −3
  • apimode.go +254 −11
  • apimode_test.go +592 −10
  • appconfig_cli.go +334 −41
  • cli.go +765 −21
  • cli_test.go +434 −0
  • cmd/console/main.go +28 −1
  • config_e2e_test.go +317 −0
  • docs/superpowers/plans/2026-08-03-app-capabilities.md +902 −0
  • docs/superpowers/plans/2026-08-04-config-console-api.md +382 −0
  • docs/superpowers/plans/2026-08-04-pi-enablement.md +247 −0
  • docs/superpowers/plans/2026-08-04-remote-host-agent.md +1261 −0
  • docs/superpowers/specs/2026-08-03-app-capabilities-design.md +960 −0
  • docs/superpowers/specs/2026-08-03-cli-console-api-design.md +2 −1
  • docs/superpowers/specs/2026-08-04-config-console-api-design.md +266 −0
  • docs/superpowers/specs/2026-08-04-remote-host-pi-design.md +267 −0
  • e2e_test.go +151 −0
  • go.mod +1 −1
  • infra/remote-host.md +95 −0
  • internal/appconfig/crypto.go +31 −0
  • internal/appconfig/crypto_test.go +66 −0
  • internal/appconfig/environments.go +12 −1
  • internal/appconfig/generation.go +128 −0
  • internal/appconfig/generation_test.go +252 −0
  • internal/appconfig/store.go +21 −3
  • internal/appconfig/sync.go +34 −0
  • internal/appconfig/syncexec.go +43 −0
  • internal/appconfig/syncexec_test.go +120 −0
  • internal/caps/caps.go +436 −0
  • internal/caps/caps_test.go +456 −0
  • internal/caps/converge.go +1055 −0
  • internal/caps/converge_test.go +1255 −0
  • internal/caps/grants.go +214 −0
  • internal/caps/grants_test.go +184 −0
  • internal/caps/neutrality_test.go +141 −0
  • internal/caps/render.go +187 −0
  • internal/caps/render_test.go +353 −0
  • internal/caps/testdata/console.service.conf +6 −0
  • internal/caps/testdata/keymail.service.conf +14 −0
  • internal/caps/testdata/keymail.socket.conf +3 −0
  • internal/console/apicli.go +152 −15
  • internal/console/apicli_test.go +366 −0
  • internal/console/apiconfig.go +472 −0
  • internal/console/apiconfig_test.go +904 −0
  • internal/console/authcli.go +27 −3
  • internal/console/ladder.go +6 −0
  • internal/console/ladder_test.go +83 −0
  • internal/console/metricsview.go +13 −2
  • internal/console/server.go +40 −1
  • internal/console/server_test.go +134 −1
  • internal/console/templates/app.html +4 −0
  • internal/console/templates/fleet.html +38 −0
  • internal/console/templates/ladder.html +1 −0
  • internal/console/view.go +137 −3
  • internal/edge/edge.go +158 −1
  • internal/edge/tunnel.go +224 −0
  • internal/edge/tunnel_e2e_test.go +218 −0
  • internal/edge/tunnel_test.go +316 −0
  • internal/host/adopt_advice.go +198 −0
  • internal/host/adopt_advice_test.go +170 −0
  • internal/host/agent.go +405 −19
  • internal/host/agent_test.go +388 −0
  • internal/host/bootstrap.go +62 −18
  • internal/host/caps_pass.go +388 −0
  • internal/host/caps_pass_test.go +845 −0
  • internal/host/host_test.go +122 −2
  • internal/host/probes.go +102 −0
  • internal/host/tunnel_client.go +59 −0
  • internal/host/tunnel_client_test.go +100 −0
  • internal/host/units/carlos-adopt.path +20 −0
  • internal/host/units/carlos-config-sync.service +46 −0
  • internal/lease/lease.go +23 −2
  • internal/lease/lease_test.go +95 −0
  • internal/registry/registry.go +236 −17
  • internal/registry/registry_test.go +399 −2
  • internal/release/adopt.go +415 −29
  • internal/release/adopt_test.go +1604 −0
  • internal/release/golden_test.go +72 −0
  • internal/release/release.go +42 −0
  • internal/release/release_test.go +96 −0
  • internal/release/versions.go +89 −0
  • internal/release/versions_test.go +193 −0
  • internal/status/assets/index.html +6 −0
  • internal/status/contract_test.go +47 −9
  • internal/status/dryrun.go +73 −8
  • internal/status/fleet.go +62 −10
  • internal/status/snapshot.go +108 −11
  • internal/status/status_test.go +185 −0
  • internal/tunnelclient/tunnelclient.go +267 −0
  • internal/tunnelclient/tunnelclient_test.go +154 −0
  • main.go +12 −0
  • statuslive_test.go +127 −0
CLAUDE.md

Loading diff…

README.md

Loading diff…

apimode.go

Loading diff…

apimode_test.go

Loading diff…

appconfig_cli.go

Loading diff…

cli.go

Loading diff…

cli_test.go

Loading diff…

cmd/console/main.go

Loading diff…

config_e2e_test.go

Loading diff…

docs/superpowers/plans/2026-08-03-app-capabilities.md

Loading diff…

docs/superpowers/plans/2026-08-04-config-console-api.md

Loading diff…

docs/superpowers/plans/2026-08-04-pi-enablement.md

Loading diff…

docs/superpowers/plans/2026-08-04-remote-host-agent.md

Loading diff…

docs/superpowers/specs/2026-08-03-app-capabilities-design.md

Loading diff…

docs/superpowers/specs/2026-08-03-cli-console-api-design.md

Loading diff…

docs/superpowers/specs/2026-08-04-config-console-api-design.md

Loading diff…

docs/superpowers/specs/2026-08-04-remote-host-pi-design.md

Loading diff…

e2e_test.go

Loading diff…

go.mod

Loading diff…

infra/remote-host.md

Loading diff…

internal/appconfig/crypto.go

Loading diff…

internal/appconfig/crypto_test.go

Loading diff…

internal/appconfig/environments.go

Loading diff…

internal/appconfig/generation.go

Loading diff…

internal/appconfig/generation_test.go

Loading diff…

internal/appconfig/store.go

Loading diff…

internal/appconfig/sync.go

Loading diff…

internal/appconfig/syncexec.go

Loading diff…

internal/appconfig/syncexec_test.go

Loading diff…

internal/caps/caps.go

Loading diff…

internal/caps/caps_test.go

Loading diff…

internal/caps/converge.go

Loading diff…

internal/caps/converge_test.go

Loading diff…

internal/caps/grants.go

Loading diff…

internal/caps/grants_test.go

Loading diff…

internal/caps/neutrality_test.go

Loading diff…

internal/caps/render.go

Loading diff…

internal/caps/render_test.go

Loading diff…

internal/caps/testdata/console.service.conf

Loading diff…

internal/caps/testdata/keymail.service.conf

Loading diff…

internal/caps/testdata/keymail.socket.conf

Loading diff…

internal/console/apicli.go

Loading diff…

internal/console/apicli_test.go

Loading diff…

internal/console/apiconfig.go

Loading diff…

internal/console/apiconfig_test.go

Loading diff…

internal/console/authcli.go

Loading diff…

internal/console/ladder.go

Loading diff…

internal/console/ladder_test.go

Loading diff…

internal/console/metricsview.go

Loading diff…

internal/console/server.go

Loading diff…

internal/console/server_test.go

Loading diff…

internal/console/templates/app.html

Loading diff…

internal/console/templates/fleet.html

Loading diff…

internal/console/templates/ladder.html

Loading diff…

internal/console/view.go

Loading diff…

internal/edge/edge.go

Loading diff…

internal/edge/tunnel.go

Loading diff…

internal/edge/tunnel_e2e_test.go

Loading diff…

internal/edge/tunnel_test.go

Loading diff…

internal/host/adopt_advice.go

Loading diff…

internal/host/adopt_advice_test.go

Loading diff…

internal/host/agent.go

Loading diff…

internal/host/agent_test.go

Loading diff…

internal/host/bootstrap.go

Loading diff…

internal/host/caps_pass.go

Loading diff…

internal/host/caps_pass_test.go

Loading diff…

internal/host/host_test.go

Loading diff…

internal/host/probes.go

Loading diff…

internal/host/tunnel_client.go

Loading diff…

internal/host/tunnel_client_test.go

Loading diff…

internal/host/units/carlos-adopt.path

Loading diff…

internal/host/units/carlos-config-sync.service

Loading diff…

internal/lease/lease.go

Loading diff…

internal/lease/lease_test.go

Loading diff…

internal/registry/registry.go

Loading diff…

internal/registry/registry_test.go

Loading diff…

internal/release/adopt.go

Loading diff…

internal/release/adopt_test.go

Loading diff…

internal/release/golden_test.go

Loading diff…

internal/release/release.go

Loading diff…

internal/release/release_test.go

Loading diff…

internal/release/versions.go

Loading diff…

internal/release/versions_test.go

Loading diff…

internal/status/assets/index.html

Loading diff…

internal/status/contract_test.go

Loading diff…

internal/status/dryrun.go

Loading diff…

internal/status/fleet.go

Loading diff…

internal/status/snapshot.go

Loading diff…

internal/status/status_test.go

Loading diff…

internal/tunnelclient/tunnelclient.go

Loading diff…

internal/tunnelclient/tunnelclient_test.go

Loading diff…

main.go

Loading diff…

statuslive_test.go

Loading diff…