carlos / platform Public

merge: main — monitoring meets the console-API CLI and environments

Conflicts were all both-sides-additive: RouteView carries Account (ours)
and Environment (main's); the console Server carries the alert watcher +
metrics cache (ours) and the ship semaphore (main's); the agent arms
metricsLoop and configSyncLoop; host_test keeps the status-privacy
tripwire beside main's canary-TTL pipeline tests. fallback_test.go goes
with the legacy read-fallback it tested (deleted on main) — its Delete
stub moves to the store doubles main added meanwhile (erroringStore,
trapStore), which now implement the Store interface our branch widened.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Paul Campbell b2a13e3b39f481a613338bf7d485c070db42c74a parent bc406a2parent 7eb397e
91 files changed, +28751 −922
  • README.md +46 −11
  • accounts.go +55 −18
  • apimode.go +438 −0
  • apimode_test.go +1243 −0
  • appconfig_cli.go +235 −31
  • auth.go +66 −0
  • auth_e2e_test.go +298 −0
  • cli.go +642 −129
  • cmd/console/main.go +9 −0
  • docs/superpowers/plans/2026-08-02-exec-config-delivery.md +945 −0
  • docs/superpowers/plans/2026-08-02-rastrillo-icon-vendoring.md +227 −0
  • docs/superpowers/plans/2026-08-02-rastrillo-ui-component-library.md +2410 −0
  • docs/superpowers/plans/2026-08-03-cli-console-api.md +315 −0
  • docs/superpowers/plans/2026-08-03-rastrillo-blog-example.md +3331 −0
  • docs/superpowers/specs/2026-08-01-carlos-framework-design.md +20 −0
  • docs/superpowers/specs/2026-08-02-app-config-secrets-design.md +3 −0
  • docs/superpowers/specs/2026-08-02-exec-config-delivery-design.md +200 −0
  • docs/superpowers/specs/2026-08-02-multi-account-design.md +124 −1
  • docs/superpowers/specs/2026-08-02-rastrillo-ui-addendum-design.md +207 −0
  • docs/superpowers/specs/2026-08-02-rastrillo-ui-component-library-design.md +416 −0
  • docs/superpowers/specs/2026-08-03-cli-console-api-design.md +182 −0
  • docs/superpowers/specs/2026-08-03-rastrillo-blog-example-design.md +936 −0
  • docs/superpowers/specs/2026-08-03-scoped-signing-keys-design.md +165 −0
  • docs/superpowers/specs/2026-08-03-unit-tenant-purge-channel.md +901 −0
  • e2e_test.go +859 −20
  • internal/activator/activator.go +32 −7
  • internal/activator/activator_test.go +339 −2
  • internal/activator/backend_exec.go +68 −3
  • internal/appconfig/appconfig.go +39 −0
  • internal/appconfig/environments.go +195 −0
  • internal/appconfig/environments_test.go +333 −0
  • internal/appconfig/store.go +135 −32
  • internal/appconfig/store_test.go +138 −1
  • internal/appconfig/sync.go +217 −35
  • internal/appconfig/sync_test.go +588 −2
  • internal/appconfig/syncexec.go +579 −0
  • internal/appconfig/syncexec_test.go +1332 −0
  • internal/console/apicli.go +679 −0
  • internal/console/apicli_test.go +1134 −0
  • internal/console/authcli.go +25 −1
  • internal/console/icons.go +22 −1
  • internal/console/ladder.go +115 −33
  • internal/console/ladder_test.go +313 −16
  • internal/console/server.go +28 −5
  • internal/console/templates/ladder.html +2 −0
  • internal/console/templates/layout.html +8 −0
  • internal/console/view.go +29 −9
  • internal/domains/reconcile.go +59 −29
  • internal/domains/reconcile_test.go +113 −4
  • internal/edge/cache.go +213 −84
  • internal/edge/cache_test.go +346 −32
  • internal/edge/edge.go +119 −23
  • internal/edge/edge_test.go +114 −4
  • internal/edge/purge.go +75 −5
  • internal/edge/purge_header.go +657 −0
  • internal/edge/purge_header_test.go +1957 −0
  • internal/edge/purge_test.go +78 −2
  • internal/edge/static.go +1 −3
  • internal/edge/static_test.go +76 −0
  • internal/host/adopt_advice.go +43 −0
  • internal/host/adopt_advice_test.go +25 −0
  • internal/host/agent.go +148 −6
  • internal/host/host_test.go +207 −0
  • internal/registry/registry.go +149 −6
  • internal/registry/registry_test.go +226 −1
  • internal/release/adopt.go +120 −9
  • internal/release/adopt_test.go +252 −0
  • internal/release/canary_ttl.go +85 −0
  • internal/release/canary_ttl_test.go +116 −0
  • internal/release/fallback.go +0 −99
  • internal/release/fallback_test.go +0 −191
  • internal/release/golden_test.go +143 −0
  • internal/release/grant.go +308 −0
  • internal/release/grant_test.go +419 −0
  • internal/release/laddercheck_test.go +68 −1
  • internal/release/qualified.go +184 −0
  • internal/release/qualified_test.go +551 −0
  • internal/release/release.go +178 −47
  • internal/release/release_test.go +1 −1
  • internal/release/scopedpromote_test.go +229 −0
  • internal/release/scopedverify_test.go +404 −0
  • internal/release/signer.go +85 −0
  • internal/status/assets/index.html +18 −0
  • internal/status/contract_test.go +7 −3
  • internal/status/dryrun.go +9 −7
  • internal/status/fleet.go +36 −0
  • internal/status/snapshot.go +16 −0
  • internal/status/status_test.go +107 −0
  • internal/vet/vet.go +1 −3
  • main.go +15 −5
  • scopedkeys_e2e_test.go +170 −0
README.md

Loading diff…

accounts.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…

cli.go

Loading diff…

cmd/console/main.go

Loading diff…

docs/superpowers/plans/2026-08-02-exec-config-delivery.md

Loading diff…

docs/superpowers/plans/2026-08-02-rastrillo-icon-vendoring.md

Loading diff…

docs/superpowers/plans/2026-08-02-rastrillo-ui-component-library.md

Loading diff…

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

Loading diff…

docs/superpowers/plans/2026-08-03-rastrillo-blog-example.md

Loading diff…

docs/superpowers/specs/2026-08-01-carlos-framework-design.md

Loading diff…

docs/superpowers/specs/2026-08-02-app-config-secrets-design.md

Loading diff…

docs/superpowers/specs/2026-08-02-exec-config-delivery-design.md

Loading diff…

docs/superpowers/specs/2026-08-02-multi-account-design.md

Loading diff…

docs/superpowers/specs/2026-08-02-rastrillo-ui-addendum-design.md

Loading diff…

docs/superpowers/specs/2026-08-02-rastrillo-ui-component-library-design.md

Loading diff…

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

Loading diff…

docs/superpowers/specs/2026-08-03-rastrillo-blog-example-design.md

Loading diff…

docs/superpowers/specs/2026-08-03-scoped-signing-keys-design.md

Loading diff…

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

Loading diff…

e2e_test.go

Loading diff…

internal/activator/activator.go

Loading diff…

internal/activator/activator_test.go

Loading diff…

internal/activator/backend_exec.go

Loading diff…

internal/appconfig/appconfig.go

Loading diff…

internal/appconfig/environments.go

Loading diff…

internal/appconfig/environments_test.go

Loading diff…

internal/appconfig/store.go

Loading diff…

internal/appconfig/store_test.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/authcli.go

Loading diff…

internal/console/icons.go

Loading diff…

internal/console/ladder.go

Loading diff…

internal/console/ladder_test.go

Loading diff…

internal/console/server.go

Loading diff…

internal/console/templates/ladder.html

Loading diff…

internal/console/templates/layout.html

Loading diff…

internal/console/view.go

Loading diff…

internal/domains/reconcile.go

Loading diff…

internal/domains/reconcile_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.go

Loading diff…

internal/edge/purge_header.go

Loading diff…

internal/edge/purge_header_test.go

Loading diff…

internal/edge/purge_test.go

Loading diff…

internal/edge/static.go

Loading diff…

internal/edge/static_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/host_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/canary_ttl.go

Loading diff…

internal/release/canary_ttl_test.go

Loading diff…

internal/release/fallback.go

Loading diff…

internal/release/fallback_test.go

Loading diff…

internal/release/golden_test.go

Loading diff…

internal/release/grant.go

Loading diff…

internal/release/grant_test.go

Loading diff…

internal/release/laddercheck_test.go

Loading diff…

internal/release/qualified.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/scopedverify_test.go

Loading diff…

internal/release/signer.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/vet/vet.go

Loading diff…

main.go

Loading diff…

scopedkeys_e2e_test.go

Loading diff…