carlos / platform Public

Merge remote-tracking branch 'origin/main' into email

Paul Campbell pushed by paul@keymail.dev 2045680d8fd08cb4ea7b05c49f11b90723cb87fa parent ab71604parent 8fb52b2
171 files changed, +43291 −1236
  • .amadan/README.md +41 −0
  • .amadan/ci.d/10-gate +20 −0
  • .amadan/ci.d/20-cross@3 +46 −0
  • .github/workflows/ci.yml +9 −0
  • AGENTS.md +195 −0
  • CLAUDE.md +4 −160
  • README.md +34 −0
  • apimode.go +455 −18
  • apimode_test.go +71 −6
  • appconfig_cli.go +90 −50
  • auth_e2e_test.go +16 −1
  • cli.go +31 −14
  • cli_test.go +19 −0
  • color.go +12 −0
  • deploy.go +71 −15
  • deploy_test.go +164 −15
  • deploy_wizard_test.go +4 −4
  • docs/superpowers/plans/2026-08-16-route-scoped-config-delivery.md +2028 −0
  • docs/superpowers/plans/2026-08-18-edge-response-compression.md +1466 −0
  • docs/superpowers/plans/2026-08-18-service-principals.md +2012 −0
  • docs/superpowers/plans/2026-08-20-multi-region-writer-map-and-certs.md +777 −0
  • docs/superpowers/plans/2026-08-20-release-pipelines-v2.md +974 −0
  • docs/superpowers/plans/2026-08-22-multi-region-backhaul.md +818 −0
  • docs/superpowers/plans/2026-08-23-multi-region-steering.md +336 −0
  • docs/superpowers/specs/2026-08-03-cli-console-api-design.md +27 −4
  • docs/superpowers/specs/2026-08-12-app-trust-classes-design.md +233 −0
  • docs/superpowers/specs/2026-08-12-private-instances-design.md +222 −0
  • docs/superpowers/specs/2026-08-15-sqlite-corruption-defence-design.md +77 −1
  • docs/superpowers/specs/2026-08-16-route-scoped-config-delivery-design.md +413 −0
  • docs/superpowers/specs/2026-08-18-edge-response-compression-design.md +184 −0
  • docs/superpowers/specs/2026-08-18-service-principals-design.md +469 −0
  • docs/superpowers/specs/2026-08-19-cli-flag-conventions-design.md +211 −0
  • docs/superpowers/specs/2026-08-20-bucket-writer-audit.md +399 −0
  • docs/superpowers/specs/2026-08-20-multi-region-ingress-design.md +367 −0
  • docs/superpowers/specs/2026-08-20-release-pipelines-v2-design.md +238 −0
  • domains_cli_test.go +2 −2
  • e2e_test.go +50 −12
  • fleets_cli_test.go +1 −1
  • internal/activator/activator.go +8 −2
  • internal/activator/activator_test.go +55 −0
  • internal/appconfig/appconfig.go +33 −13
  • internal/appconfig/environments_test.go +115 −0
  • internal/appconfig/routefingerprint.go +90 −0
  • internal/appconfig/routefingerprint_test.go +115 −0
  • internal/appconfig/store.go +40 −23
  • internal/appconfig/syncexec.go +91 −25
  • internal/appconfig/syncexec_test.go +202 −1
  • internal/applog/record.go +1 −1
  • internal/applog/record_test.go +1 −1
  • internal/console/apicli.go +553 −94
  • internal/console/apicli_test.go +188 −16
  • internal/console/apiconfig.go +63 −34
  • internal/console/apiconfig_test.go +86 −5
  • internal/console/apidomains.go +94 −12
  • internal/console/apidomains_test.go +193 −0
  • internal/console/apiinstances.go +94 −76
  • internal/console/apiinstances_test.go +21 −10
  • internal/console/apiinstancesenable_test.go +11 −6
  • internal/console/apiledger.go +15 −11
  • internal/console/apipipeline.go +340 −0
  • internal/console/apipipeline_test.go +399 −0
  • internal/console/apiretention.go +2 −1
  • internal/console/apiroutes.go +142 −0
  • internal/console/apiroutes_test.go +209 −0
  • internal/console/apiservices.go +600 −0
  • internal/console/apiservices_test.go +815 −0
  • internal/console/apistore.go +11 −7
  • internal/console/apiversion.go +5 −4
  • internal/console/authcli.go +520 −64
  • internal/console/authcli_test.go +239 −0
  • internal/console/authstore.go +135 −67
  • internal/console/authstore_test.go +30 −18
  • internal/console/confirm.go +19 −4
  • internal/console/confirm_test.go +45 −1
  • internal/console/economicspage_test.go +1 −1
  • internal/console/fleets.go +15 −7
  • internal/console/flow.go +61 −15
  • internal/console/ladder.go +113 −2
  • internal/console/ladder_test.go +2 −2
  • internal/console/logsview.go +96 −0
  • internal/console/logsview_test.go +132 −0
  • internal/console/pending.go +335 −0
  • internal/console/pending_test.go +185 −0
  • internal/console/pendingflow_test.go +943 −0
  • internal/console/pendinghandlers.go +640 −0
  • internal/console/pipelinepage.go +331 −0
  • internal/console/pipelinepage_test.go +446 −0
  • internal/console/server.go +374 −53
  • internal/console/server_test.go +96 −3
  • internal/console/store.go +59 −22
  • internal/console/svcfixture_test.go +21 −0
  • internal/console/svcpage.go +502 −0
  • internal/console/svcpage_test.go +615 −0
  • internal/console/svcprincipal.go +434 −0
  • internal/console/svcprincipal_test.go +713 −0
  • internal/console/svcroutes_test.go +773 −0
  • internal/console/svcscope_test.go +470 −0
  • internal/console/templates/account_settings.html +118 −0
  • internal/console/templates/app_logs.html +13 −12
  • internal/console/templates/app_overview.html +8 −0
  • internal/console/templates/app_releases.html +10 −3
  • internal/console/templates/app_settings.html +2 −0
  • internal/console/templates/ladder.html +8 −1
  • internal/console/templates/layout.html +35 −0
  • internal/console/templates/pending.html +22 −0
  • internal/console/templates/pipeline.html +60 −0
  • internal/console/templates/settings.html +12 −4
  • internal/console/view.go +37 −6
  • internal/edge/backhaul_e2e_test.go +870 −0
  • internal/edge/certcache.go +8 −0
  • internal/edge/certsync.go +1387 −0
  • internal/edge/certsync_e2e_test.go +1157 −0
  • internal/edge/certsync_test.go +1671 −0
  • internal/edge/compress.go +351 −0
  • internal/edge/compress_test.go +807 −0
  • internal/edge/edge.go +458 −19
  • internal/edge/homemap.go +602 −0
  • internal/edge/homemap_test.go +1041 −0
  • internal/edge/mesh.go +303 −0
  • internal/edge/mesh_test.go +389 −0
  • internal/edge/purge.go +1 −31
  • internal/edge/purge_listen_unix.go +50 −0
  • internal/edge/purge_listen_windows.go +22 −0
  • internal/edge/storedoor_test.go +101 −0
  • internal/edge/wildcard.go +121 −38
  • internal/edge/wildcard_test.go +9 −2
  • internal/host/agent.go +119 −13
  • internal/host/agent_test.go +150 −26
  • internal/host/edgesfile.go +153 −0
  • internal/host/edgesfile_test.go +270 −0
  • internal/host/flock_unix.go +15 −0
  • internal/host/flock_windows.go +21 −0
  • internal/host/housekeeper.go +472 −0
  • internal/host/housekeeper_test.go +562 −0
  • internal/host/probes.go +8 −17
  • internal/host/restart.go +5 −5
  • internal/host/snapshot_loop.go +51 −36
  • internal/host/snapshot_loop_test.go +112 −27
  • internal/host/statfs_unix.go +21 −0
  • internal/host/statfs_windows.go +15 −0
  • internal/lease/check.go +43 −4
  • internal/lease/check_test.go +33 −2
  • internal/ops/freshness.go +126 −0
  • internal/ops/hibernate_verify.go +45 −12
  • internal/ops/hibernate_verify_test.go +89 −19
  • internal/ops/litestream.go +205 −10
  • internal/ops/ops.go +31 −2
  • internal/ops/ops_test.go +370 −3
  • internal/provision/reconcile.go +183 −3
  • internal/provision/reconcile_test.go +286 −0
  • internal/release/adopt.go +222 −32
  • internal/release/adopt_test.go +476 −0
  • internal/release/bake.go +266 −0
  • internal/release/bake_test.go +333 −0
  • internal/release/pipeline.go +346 −0
  • internal/release/pipeline_test.go +234 −0
  • internal/release/release.go +24 −2
  • internal/status/status_test.go +1 −1
  • internal/svcrole/svcrole.go +135 −0
  • internal/svcrole/svcrole_test.go +115 −0
  • main.go +13 −0
  • pipeline.go +470 −0
  • pipeline_test.go +549 −0
  • routes_cli.go +85 −0
  • routes_cli_test.go +144 −0
  • services.go +407 −0
  • services_cli_test.go +819 −0
  • store.go +1 −1
  • store_test.go +1 −1
  • update.go +30 −0
  • update_test.go +39 −0
.amadan/README.md

Loading diff…

.amadan/ci.d/10-gate

Loading diff…

.amadan/ci.d/20-cross@3

Loading diff…

.github/workflows/ci.yml

Loading diff…

AGENTS.md

Loading diff…

CLAUDE.md

Loading diff…

README.md

Loading diff…

apimode.go

Loading diff…

apimode_test.go

Loading diff…

appconfig_cli.go

Loading diff…

auth_e2e_test.go

Loading diff…

cli.go

Loading diff…

cli_test.go

Loading diff…

color.go

Loading diff…

deploy.go

Loading diff…

deploy_test.go

Loading diff…

deploy_wizard_test.go

Loading diff…

docs/superpowers/plans/2026-08-16-route-scoped-config-delivery.md

Loading diff…

docs/superpowers/plans/2026-08-18-edge-response-compression.md

Loading diff…

docs/superpowers/plans/2026-08-18-service-principals.md

Loading diff…

docs/superpowers/plans/2026-08-20-multi-region-writer-map-and-certs.md

Loading diff…

docs/superpowers/plans/2026-08-20-release-pipelines-v2.md

Loading diff…

docs/superpowers/plans/2026-08-22-multi-region-backhaul.md

Loading diff…

docs/superpowers/plans/2026-08-23-multi-region-steering.md

Loading diff…

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

Loading diff…

docs/superpowers/specs/2026-08-12-app-trust-classes-design.md

Loading diff…

docs/superpowers/specs/2026-08-12-private-instances-design.md

Loading diff…

docs/superpowers/specs/2026-08-15-sqlite-corruption-defence-design.md

Loading diff…

docs/superpowers/specs/2026-08-16-route-scoped-config-delivery-design.md

Loading diff…

docs/superpowers/specs/2026-08-18-edge-response-compression-design.md

Loading diff…

docs/superpowers/specs/2026-08-18-service-principals-design.md

Loading diff…

docs/superpowers/specs/2026-08-19-cli-flag-conventions-design.md

Loading diff…

docs/superpowers/specs/2026-08-20-bucket-writer-audit.md

Loading diff…

docs/superpowers/specs/2026-08-20-multi-region-ingress-design.md

Loading diff…

docs/superpowers/specs/2026-08-20-release-pipelines-v2-design.md

Loading diff…

domains_cli_test.go

Loading diff…

e2e_test.go

Loading diff…

fleets_cli_test.go

Loading diff…

internal/activator/activator.go

Loading diff…

internal/activator/activator_test.go

Loading diff…

internal/appconfig/appconfig.go

Loading diff…

internal/appconfig/environments_test.go

Loading diff…

internal/appconfig/routefingerprint.go

Loading diff…

internal/appconfig/routefingerprint_test.go

Loading diff…

internal/appconfig/store.go

Loading diff…

internal/appconfig/syncexec.go

Loading diff…

internal/appconfig/syncexec_test.go

Loading diff…

internal/applog/record.go

Loading diff…

internal/applog/record_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/apidomains.go

Loading diff…

internal/console/apidomains_test.go

Loading diff…

internal/console/apiinstances.go

Loading diff…

internal/console/apiinstances_test.go

Loading diff…

internal/console/apiinstancesenable_test.go

Loading diff…

internal/console/apiledger.go

Loading diff…

internal/console/apipipeline.go

Loading diff…

internal/console/apipipeline_test.go

Loading diff…

internal/console/apiretention.go

Loading diff…

internal/console/apiroutes.go

Loading diff…

internal/console/apiroutes_test.go

Loading diff…

internal/console/apiservices.go

Loading diff…

internal/console/apiservices_test.go

Loading diff…

internal/console/apistore.go

Loading diff…

internal/console/apiversion.go

Loading diff…

internal/console/authcli.go

Loading diff…

internal/console/authcli_test.go

Loading diff…

internal/console/authstore.go

Loading diff…

internal/console/authstore_test.go

Loading diff…

internal/console/confirm.go

Loading diff…

internal/console/confirm_test.go

Loading diff…

internal/console/economicspage_test.go

Loading diff…

internal/console/fleets.go

Loading diff…

internal/console/flow.go

Loading diff…

internal/console/ladder.go

Loading diff…

internal/console/ladder_test.go

Loading diff…

internal/console/logsview.go

Loading diff…

internal/console/logsview_test.go

Loading diff…

internal/console/pending.go

Loading diff…

internal/console/pending_test.go

Loading diff…

internal/console/pendingflow_test.go

Loading diff…

internal/console/pendinghandlers.go

Loading diff…

internal/console/pipelinepage.go

Loading diff…

internal/console/pipelinepage_test.go

Loading diff…

internal/console/server.go

Loading diff…

internal/console/server_test.go

Loading diff…

internal/console/store.go

Loading diff…

internal/console/svcfixture_test.go

Loading diff…

internal/console/svcpage.go

Loading diff…

internal/console/svcpage_test.go

Loading diff…

internal/console/svcprincipal.go

Loading diff…

internal/console/svcprincipal_test.go

Loading diff…

internal/console/svcroutes_test.go

Loading diff…

internal/console/svcscope_test.go

Loading diff…

internal/console/templates/account_settings.html

Loading diff…

internal/console/templates/app_logs.html

Loading diff…

internal/console/templates/app_overview.html

Loading diff…

internal/console/templates/app_releases.html

Loading diff…

internal/console/templates/app_settings.html

Loading diff…

internal/console/templates/ladder.html

Loading diff…

internal/console/templates/layout.html

Loading diff…

internal/console/templates/pending.html

Loading diff…

internal/console/templates/pipeline.html

Loading diff…

internal/console/templates/settings.html

Loading diff…

internal/console/view.go

Loading diff…

internal/edge/backhaul_e2e_test.go

Loading diff…

internal/edge/certcache.go

Loading diff…

internal/edge/certsync.go

Loading diff…

internal/edge/certsync_e2e_test.go

Loading diff…

internal/edge/certsync_test.go

Loading diff…

internal/edge/compress.go

Loading diff…

internal/edge/compress_test.go

Loading diff…

internal/edge/edge.go

Loading diff…

internal/edge/homemap.go

Loading diff…

internal/edge/homemap_test.go

Loading diff…

internal/edge/mesh.go

Loading diff…

internal/edge/mesh_test.go

Loading diff…

internal/edge/purge.go

Loading diff…

internal/edge/purge_listen_unix.go

Loading diff…

internal/edge/purge_listen_windows.go

Loading diff…

internal/edge/storedoor_test.go

Loading diff…

internal/edge/wildcard.go

Loading diff…

internal/edge/wildcard_test.go

Loading diff…

internal/host/agent.go

Loading diff…

internal/host/agent_test.go

Loading diff…

internal/host/edgesfile.go

Loading diff…

internal/host/edgesfile_test.go

Loading diff…

internal/host/flock_unix.go

Loading diff…

internal/host/flock_windows.go

Loading diff…

internal/host/housekeeper.go

Loading diff…

internal/host/housekeeper_test.go

Loading diff…

internal/host/probes.go

Loading diff…

internal/host/restart.go

Loading diff…

internal/host/snapshot_loop.go

Loading diff…

internal/host/snapshot_loop_test.go

Loading diff…

internal/host/statfs_unix.go

Loading diff…

internal/host/statfs_windows.go

Loading diff…

internal/lease/check.go

Loading diff…

internal/lease/check_test.go

Loading diff…

internal/ops/freshness.go

Loading diff…

internal/ops/hibernate_verify.go

Loading diff…

internal/ops/hibernate_verify_test.go

Loading diff…

internal/ops/litestream.go

Loading diff…

internal/ops/ops.go

Loading diff…

internal/ops/ops_test.go

Loading diff…

internal/provision/reconcile.go

Loading diff…

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

Loading diff…

internal/release/pipeline_test.go

Loading diff…

internal/release/release.go

Loading diff…

internal/status/status_test.go

Loading diff…

internal/svcrole/svcrole.go

Loading diff…

internal/svcrole/svcrole_test.go

Loading diff…

main.go

Loading diff…

pipeline.go

Loading diff…

pipeline_test.go

Loading diff…

routes_cli.go

Loading diff…

routes_cli_test.go

Loading diff…

services.go

Loading diff…

services_cli_test.go

Loading diff…

store.go

Loading diff…

store_test.go

Loading diff…

update.go

Loading diff…

update_test.go

Loading diff…