carlos / platform Public

Merge main into reserve-platform-domains-opt-in

main brought the short platform alias delegation
(CONSOLE_APPS_DOMAIN_ALIAS_ACCOUNTS, e36cdb6a/86d10e28), which rewrote the
same deny check. The resolution:

- domainHostDenied is the one check both doors ask; it refuses the
  console's own hostnames by exact name on every deployment.
- deniedDomains always carries CONSOLE_DENY_DOMAINS and the steering host;
  the apps domain and the subtrees of the console's hostnames join only
  with CONSOLE_RESERVE_PLATFORM_DOMAINS. The alias exemption filters that
  combined list.
- directAppsDomainHost (the delegated-alias limits: no wildcard, catchall
  or first route) is false without reservation, where names under the apps
  domain are ordinary custom domains.
- The delegation tests now describe a reserving deployment; AGENTS.md says
  so, and records the new rule.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
James Adam pushed by james@keymail.dev b07c406c76a2430eb5eac22a9020306ac42e686d parent d700f51parent 5abc9ec
93 files changed, +22009 −395
  • .amadan/ci.d/30-minio-contract +33 −9
  • AGENTS.md +76 −0
  • apimode.go +174 −0
  • cli.go +81 −0
  • cli_test.go +172 −0
  • cmd/console/main.go +8 −0
  • docs/site/cli.md +110 −2
  • docs/superpowers/plans/2026-08-17-sidecar-members.md +2104 −0
  • docs/superpowers/specs/2026-08-17-sidecar-members-design.md +874 −0
  • docs/superpowers/specs/2026-08-29-eleven-carloku-migration-design.md +675 −0
  • e2e_test.go +53 −0
  • infra/no-inbound-box.md +351 −0
  • internal/activator/activator.go +1137 −50
  • internal/activator/activator_test.go +2081 −144
  • internal/activator/backend_exec.go +93 −0
  • internal/activator/backend_unit.go +9 −0
  • internal/activator/backend_unit_test.go +9 −0
  • internal/activator/waketiming_test.go +36 −8
  • internal/agentsock/agentsock.go +349 −0
  • internal/agentsock/agentsock_test.go +587 −0
  • internal/appconfig/syncexec.go +77 −18
  • internal/appconfig/syncexec_test.go +150 −0
  • internal/console/apex.go +227 −0
  • internal/console/apex_test.go +177 −0
  • internal/console/apicli.go +3 −1
  • internal/console/apicli_test.go +1 −1
  • internal/console/apidomains.go +55 −37
  • internal/console/apiinstances.go +47 −3
  • internal/console/apiinstancesenable_test.go +34 −0
  • internal/console/apimail.go +244 −0
  • internal/console/apimail_test.go +173 −0
  • internal/console/apisidecars.go +568 −0
  • internal/console/apisidecars_test.go +1023 −0
  • internal/console/apps_claim_test.go +4 −4
  • internal/console/appsettings.go +29 −2
  • internal/console/authcli.go +30 −0
  • internal/console/domainattach.go +29 −2
  • internal/console/domainattach_test.go +66 −2
  • internal/console/domainpolicy.go +45 −0
  • internal/console/domainpolicy_test.go +280 −0
  • internal/console/instances.go +10 −5
  • internal/console/instances_test.go +30 −0
  • internal/console/listquery.go +4 −2
  • internal/console/mailevents.go +264 −0
  • internal/console/mailevents_test.go +479 −0
  • internal/console/mailpush.go +806 −0
  • internal/console/mailpush_test.go +666 −0
  • internal/console/overview.go +53 −0
  • internal/console/overview_test.go +68 −0
  • internal/console/server.go +37 −14
  • internal/console/sesevents.go +96 −10
  • internal/console/sesevents_test.go +1 −1
  • internal/console/store.go +164 −2
  • internal/console/svcroutes_test.go +30 −2
  • internal/domains/aliases.go +55 −3
  • internal/domains/aliases_paths_test.go +79 −0
  • internal/domains/aliases_test.go +90 −0
  • internal/edge/edge.go +17 −0
  • internal/edge/edge_test.go +65 −0
  • internal/host/agent.go +238 −8
  • internal/host/agent_test.go +268 −0
  • internal/host/edgesfile.go +26 −3
  • internal/host/edgesfile_test.go +44 −0
  • internal/host/fleetbind.go +66 −9
  • internal/host/fleetbind_test.go +126 −4
  • internal/host/host_test.go +37 −0
  • internal/host/restart.go +179 −13
  • internal/host/restart_test.go +310 −3
  • internal/host/restartscope_test.go +2 −2
  • internal/host/schedule_wake_test.go +9 −0
  • internal/host/sidecarwake.go +243 −0
  • internal/host/sidecarwake_test.go +661 −0
  • internal/mail/events.go +257 −6
  • internal/mail/events_test.go +251 −1
  • internal/mail/policy.go +46 −0
  • internal/provision/reconcile.go +126 −0
  • internal/provision/reconcile_test.go +109 −0
  • internal/provision/sidecar.go +400 −0
  • internal/provision/sidecar_reconcile.go +532 −0
  • internal/provision/sidecar_reconcile_test.go +580 −0
  • internal/provision/sidecar_test.go +164 −0
  • internal/registry/registry.go +130 −16
  • internal/registry/registry_test.go +173 −0
  • internal/release/sidecarwake.go +126 −0
  • internal/release/sidecarwake_test.go +163 −0
  • internal/status/snapshot.go +34 −8
  • internal/status/status_test.go +57 −0
  • mail_cli.go +319 −0
  • mail_cli_test.go +117 −0
  • main.go +4 −0
  • sidecars_cli.go +548 −0
  • sidecars_cli_test.go +213 −0
  • sidecars_e2e_test.go +163 −0

CI passed — run details

.amadan/ci.d/30-minio-contract

Loading diff…

AGENTS.md

Loading diff…

apimode.go

Loading diff…

cli.go

Loading diff…

cli_test.go

Loading diff…

cmd/console/main.go

Loading diff…

docs/site/cli.md

Loading diff…

docs/superpowers/plans/2026-08-17-sidecar-members.md

Loading diff…

docs/superpowers/specs/2026-08-17-sidecar-members-design.md

Loading diff…

docs/superpowers/specs/2026-08-29-eleven-carloku-migration-design.md

Loading diff…

e2e_test.go

Loading diff…

infra/no-inbound-box.md

Loading diff…

internal/activator/activator.go

Loading diff…

internal/activator/activator_test.go

Loading diff…

internal/activator/backend_exec.go

Loading diff…

internal/activator/backend_unit.go

Loading diff…

internal/activator/backend_unit_test.go

Loading diff…

internal/activator/waketiming_test.go

Loading diff…

internal/agentsock/agentsock.go

Loading diff…

internal/agentsock/agentsock_test.go

Loading diff…

internal/appconfig/syncexec.go

Loading diff…

internal/appconfig/syncexec_test.go

Loading diff…

internal/console/apex.go

Loading diff…

internal/console/apex_test.go

Loading diff…

internal/console/apicli.go

Loading diff…

internal/console/apicli_test.go

Loading diff…

internal/console/apidomains.go

Loading diff…

internal/console/apiinstances.go

Loading diff…

internal/console/apiinstancesenable_test.go

Loading diff…

internal/console/apimail.go

Loading diff…

internal/console/apimail_test.go

Loading diff…

internal/console/apisidecars.go

Loading diff…

internal/console/apisidecars_test.go

Loading diff…

internal/console/apps_claim_test.go

Loading diff…

internal/console/appsettings.go

Loading diff…

internal/console/authcli.go

Loading diff…

internal/console/domainattach.go

Loading diff…

internal/console/domainattach_test.go

Loading diff…

internal/console/domainpolicy.go

Loading diff…

internal/console/domainpolicy_test.go

Loading diff…

internal/console/instances.go

Loading diff…

internal/console/instances_test.go

Loading diff…

internal/console/listquery.go

Loading diff…

internal/console/mailevents.go

Loading diff…

internal/console/mailevents_test.go

Loading diff…

internal/console/mailpush.go

Loading diff…

internal/console/mailpush_test.go

Loading diff…

internal/console/overview.go

Loading diff…

internal/console/overview_test.go

Loading diff…

internal/console/server.go

Loading diff…

internal/console/sesevents.go

Loading diff…

internal/console/sesevents_test.go

Loading diff…

internal/console/store.go

Loading diff…

internal/console/svcroutes_test.go

Loading diff…

internal/domains/aliases.go

Loading diff…

internal/domains/aliases_paths_test.go

Loading diff…

internal/domains/aliases_test.go

Loading diff…

internal/edge/edge.go

Loading diff…

internal/edge/edge_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/fleetbind.go

Loading diff…

internal/host/fleetbind_test.go

Loading diff…

internal/host/host_test.go

Loading diff…

internal/host/restart.go

Loading diff…

internal/host/restart_test.go

Loading diff…

internal/host/restartscope_test.go

Loading diff…

internal/host/schedule_wake_test.go

Loading diff…

internal/host/sidecarwake.go

Loading diff…

internal/host/sidecarwake_test.go

Loading diff…

internal/mail/events.go

Loading diff…

internal/mail/events_test.go

Loading diff…

internal/mail/policy.go

Loading diff…

internal/provision/reconcile.go

Loading diff…

internal/provision/reconcile_test.go

Loading diff…

internal/provision/sidecar.go

Loading diff…

internal/provision/sidecar_reconcile.go

Loading diff…

internal/provision/sidecar_reconcile_test.go

Loading diff…

internal/provision/sidecar_test.go

Loading diff…

internal/registry/registry.go

Loading diff…

internal/registry/registry_test.go

Loading diff…

internal/release/sidecarwake.go

Loading diff…

internal/release/sidecarwake_test.go

Loading diff…

internal/status/snapshot.go

Loading diff…

internal/status/status_test.go

Loading diff…

mail_cli.go

Loading diff…

mail_cli_test.go

Loading diff…

main.go

Loading diff…

sidecars_cli.go

Loading diff…

sidecars_cli_test.go

Loading diff…

sidecars_e2e_test.go

Loading diff…