carlos / platform Public

Merge remote-tracking branch 'origin/main' into app-capabilities

# Conflicts:
#	apimode.go
#	apimode_test.go
#	cli.go
#	internal/host/agent.go
#	internal/registry/registry.go
#	internal/registry/registry_test.go
#	internal/release/adopt.go
#	internal/release/adopt_test.go
#	internal/release/release_test.go
Paul Campbell 597fca0b6f8b312a6aa3833638ca9832795a1956 parent e7deec8parent 36ff020
136 files changed, +26159 −590
  • CLAUDE.md +7 −1
  • README.md +15 −3
  • accounts.go +133 −47
  • accounts_resolve_test.go +115 −0
  • apimode.go +327 −11
  • apimode_test.go +1089 −38
  • appconfig_cli.go +334 −41
  • auth.go +132 −22
  • auth_e2e_test.go +110 −14
  • auth_test.go +9 −10
  • cli.go +594 −46
  • cmd/console/main.go +28 −1
  • config.go +161 −0
  • config_e2e_test.go +317 −0
  • config_test.go +327 −0
  • docs/superpowers/plans/2026-08-03-open-ledgers-primitive.md +1739 −0
  • docs/superpowers/plans/2026-08-04-account-slugs.md +916 −0
  • docs/superpowers/plans/2026-08-04-config-console-api.md +382 −0
  • docs/superpowers/plans/2026-08-04-console-bake-controls.md +1761 −0
  • docs/superpowers/plans/2026-08-04-console-default-resolution.md +939 −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-cli-console-api-design.md +2 −1
  • docs/superpowers/specs/2026-08-03-open-ledgers-design.md +618 −0
  • docs/superpowers/specs/2026-08-03-unit-tenant-purge-channel.md +39 −10
  • docs/superpowers/specs/2026-08-04-account-slugs-design.md +187 −0
  • docs/superpowers/specs/2026-08-04-config-console-api-design.md +266 −0
  • docs/superpowers/specs/2026-08-04-console-bake-controls-design.md +277 −0
  • docs/superpowers/specs/2026-08-04-console-default-resolution-design.md +162 −0
  • docs/superpowers/specs/2026-08-04-remote-host-pi-design.md +267 −0
  • e2e_test.go +311 −39
  • go.mod +1 −1
  • infra/modules/region-host/main.tf +9 −0
  • infra/remote-host.md +95 −0
  • internal/activator/backend_exec.go +5 −0
  • internal/appconfig/agentvars.go +51 −0
  • internal/appconfig/agentvars_test.go +18 −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 +63 −1
  • internal/appconfig/sync_test.go +95 −24
  • internal/appconfig/syncexec.go +53 −0
  • internal/appconfig/syncexec_test.go +120 −0
  • internal/console/apicli.go +36 −30
  • internal/console/apicli_test.go +83 −11
  • internal/console/apiconfig.go +472 −0
  • internal/console/apiconfig_test.go +904 −0
  • internal/console/apiledger.go +381 −0
  • internal/console/apiledger_test.go +728 −0
  • internal/console/authcli.go +41 −5
  • internal/console/authcli_test.go +8 −2
  • internal/console/authowner_test.go +1 −1
  • internal/console/bakecontrols_test.go +354 −0
  • internal/console/ladder.go +5 −0
  • internal/console/ladder_test.go +206 −0
  • internal/console/metricsview.go +13 −2
  • internal/console/resolve.go +47 −0
  • internal/console/resolve_test.go +92 −0
  • internal/console/server.go +277 −23
  • internal/console/server_account_test.go +208 −8
  • internal/console/server_test.go +172 −9
  • internal/console/store.go +4 −0
  • internal/console/templates/app.html +5 −1
  • internal/console/templates/apps.html +1 −1
  • internal/console/templates/fleet.html +38 −0
  • internal/console/templates/ladder.html +65 −1
  • internal/console/templates/layout.html +2 −2
  • internal/console/templates/newaccount.html +8 −6
  • internal/console/templates/picker.html +22 −0
  • internal/console/view.go +175 −0
  • internal/console/view_test.go +8 −1
  • internal/domains/slugname.go +16 −0
  • internal/domains/slugname_test.go +23 −0
  • internal/domains/sqid.go +36 −0
  • internal/domains/sqid_test.go +56 −0
  • internal/edge/cache.go +26 −12
  • internal/edge/cache_test.go +29 −0
  • internal/edge/edge.go +184 −2
  • internal/edge/edge_test.go +52 −0
  • internal/edge/purge_header.go +11 −11
  • internal/edge/status.go +260 −5
  • internal/edge/status_test.go +678 −0
  • internal/edge/tunnel.go +224 −0
  • internal/edge/tunnel_e2e_test.go +218 −0
  • internal/edge/tunnel_test.go +316 −0
  • internal/host/agent.go +356 −25
  • internal/host/agent_test.go +388 −0
  • internal/host/bootstrap.go +62 −18
  • internal/host/caps_pass_test.go +21 −21
  • 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/ledger/append.go +109 −0
  • internal/ledger/append_test.go +169 −0
  • internal/ledger/blob.go +28 −0
  • internal/ledger/blob_test.go +37 −0
  • internal/ledger/ledger.go +84 −0
  • internal/ledger/ledger_test.go +37 −0
  • internal/ledger/manifest.go +98 −0
  • internal/ledger/manifest_test.go +168 −0
  • internal/ledger/verify.go +99 −0
  • internal/ledger/verify_test.go +136 −0
  • internal/registry/registry.go +77 −17
  • internal/registry/registry_test.go +120 −0
  • internal/release/adopt.go +139 −6
  • internal/release/adopt_test.go +387 −0
  • internal/release/bake.go +274 −8
  • internal/release/bake_test.go +363 −0
  • internal/release/production.go +177 −0
  • internal/release/production_test.go +240 −0
  • internal/release/qualified_test.go +3 −2
  • internal/release/release.go +69 −2
  • internal/release/release_test.go +143 −0
  • internal/release/scopedpromote_test.go +5 −0
  • internal/release/store.go +71 −0
  • internal/release/store_test.go +87 −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 +8 −0
  • scopedkeys_e2e_test.go +31 −2
  • statuslive_test.go +127 −0
CLAUDE.md

Loading diff…

README.md

Loading diff…

accounts.go

Loading diff…

accounts_resolve_test.go

Loading diff…

apimode.go

Loading diff…

apimode_test.go

Loading diff…

appconfig_cli.go

Loading diff…

auth.go

Loading diff…

auth_e2e_test.go

Loading diff…

auth_test.go

Loading diff…

cli.go

Loading diff…

cmd/console/main.go

Loading diff…

config.go

Loading diff…

config_e2e_test.go

Loading diff…

config_test.go

Loading diff…

docs/superpowers/plans/2026-08-03-open-ledgers-primitive.md

Loading diff…

docs/superpowers/plans/2026-08-04-account-slugs.md

Loading diff…

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

Loading diff…

docs/superpowers/plans/2026-08-04-console-bake-controls.md

Loading diff…

docs/superpowers/plans/2026-08-04-console-default-resolution.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-cli-console-api-design.md

Loading diff…

docs/superpowers/specs/2026-08-03-open-ledgers-design.md

Loading diff…

docs/superpowers/specs/2026-08-03-unit-tenant-purge-channel.md

Loading diff…

docs/superpowers/specs/2026-08-04-account-slugs-design.md

Loading diff…

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

Loading diff…

docs/superpowers/specs/2026-08-04-console-bake-controls-design.md

Loading diff…

docs/superpowers/specs/2026-08-04-console-default-resolution-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/modules/region-host/main.tf

Loading diff…

infra/remote-host.md

Loading diff…

internal/activator/backend_exec.go

Loading diff…

internal/appconfig/agentvars.go

Loading diff…

internal/appconfig/agentvars_test.go

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/sync_test.go

Loading diff…

internal/appconfig/syncexec.go

Loading diff…

internal/appconfig/syncexec_test.go

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/apiledger.go

Loading diff…

internal/console/apiledger_test.go

Loading diff…

internal/console/authcli.go

Loading diff…

internal/console/authcli_test.go

Loading diff…

internal/console/authowner_test.go

Loading diff…

internal/console/bakecontrols_test.go

Loading diff…

internal/console/ladder.go

Loading diff…

internal/console/ladder_test.go

Loading diff…

internal/console/metricsview.go

Loading diff…

internal/console/resolve.go

Loading diff…

internal/console/resolve_test.go

Loading diff…

internal/console/server.go

Loading diff…

internal/console/server_account_test.go

Loading diff…

internal/console/server_test.go

Loading diff…

internal/console/store.go

Loading diff…

internal/console/templates/app.html

Loading diff…

internal/console/templates/apps.html

Loading diff…

internal/console/templates/fleet.html

Loading diff…

internal/console/templates/ladder.html

Loading diff…

internal/console/templates/layout.html

Loading diff…

internal/console/templates/newaccount.html

Loading diff…

internal/console/templates/picker.html

Loading diff…

internal/console/view.go

Loading diff…

internal/console/view_test.go

Loading diff…

internal/domains/slugname.go

Loading diff…

internal/domains/slugname_test.go

Loading diff…

internal/domains/sqid.go

Loading diff…

internal/domains/sqid_test.go

Loading diff…

internal/edge/cache.go

Loading diff…

internal/edge/cache_test.go

Loading diff…

internal/edge/edge.go

Loading diff…

internal/edge/edge_test.go

Loading diff…

internal/edge/purge_header.go

Loading diff…

internal/edge/status.go

Loading diff…

internal/edge/status_test.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/agent.go

Loading diff…

internal/host/agent_test.go

Loading diff…

internal/host/bootstrap.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/ledger/append.go

Loading diff…

internal/ledger/append_test.go

Loading diff…

internal/ledger/blob.go

Loading diff…

internal/ledger/blob_test.go

Loading diff…

internal/ledger/ledger.go

Loading diff…

internal/ledger/ledger_test.go

Loading diff…

internal/ledger/manifest.go

Loading diff…

internal/ledger/manifest_test.go

Loading diff…

internal/ledger/verify.go

Loading diff…

internal/ledger/verify_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/bake.go

Loading diff…

internal/release/bake_test.go

Loading diff…

internal/release/production.go

Loading diff…

internal/release/production_test.go

Loading diff…

internal/release/qualified_test.go

Loading diff…

internal/release/release.go

Loading diff…

internal/release/release_test.go

Loading diff…

internal/release/scopedpromote_test.go

Loading diff…

internal/release/store.go

Loading diff…

internal/release/store_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…

scopedkeys_e2e_test.go

Loading diff…

statuslive_test.go

Loading diff…