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>
.amadan/ci.d/30-minio-contract+33 −9AGENTS.md+76 −0apimode.go+174 −0cli.go+81 −0cli_test.go+172 −0cmd/console/main.go+8 −0docs/site/cli.md+110 −2docs/superpowers/plans/2026-08-17-sidecar-members.md+2104 −0docs/superpowers/specs/2026-08-17-sidecar-members-design.md+874 −0docs/superpowers/specs/2026-08-29-eleven-carloku-migration-design.md+675 −0e2e_test.go+53 −0infra/no-inbound-box.md+351 −0internal/activator/activator.go+1137 −50internal/activator/activator_test.go+2081 −144internal/activator/backend_exec.go+93 −0internal/activator/backend_unit.go+9 −0internal/activator/backend_unit_test.go+9 −0internal/activator/waketiming_test.go+36 −8internal/agentsock/agentsock.go+349 −0internal/agentsock/agentsock_test.go+587 −0internal/appconfig/syncexec.go+77 −18internal/appconfig/syncexec_test.go+150 −0internal/console/apex.go+227 −0internal/console/apex_test.go+177 −0internal/console/apicli.go+3 −1internal/console/apicli_test.go+1 −1internal/console/apidomains.go+55 −37internal/console/apiinstances.go+47 −3internal/console/apiinstancesenable_test.go+34 −0internal/console/apimail.go+244 −0internal/console/apimail_test.go+173 −0internal/console/apisidecars.go+568 −0internal/console/apisidecars_test.go+1023 −0internal/console/apps_claim_test.go+4 −4internal/console/appsettings.go+29 −2internal/console/authcli.go+30 −0internal/console/domainattach.go+29 −2internal/console/domainattach_test.go+66 −2internal/console/domainpolicy.go+45 −0internal/console/domainpolicy_test.go+280 −0internal/console/instances.go+10 −5internal/console/instances_test.go+30 −0internal/console/listquery.go+4 −2internal/console/mailevents.go+264 −0internal/console/mailevents_test.go+479 −0internal/console/mailpush.go+806 −0internal/console/mailpush_test.go+666 −0internal/console/overview.go+53 −0internal/console/overview_test.go+68 −0internal/console/server.go+37 −14internal/console/sesevents.go+96 −10internal/console/sesevents_test.go+1 −1internal/console/store.go+164 −2internal/console/svcroutes_test.go+30 −2internal/domains/aliases.go+55 −3internal/domains/aliases_paths_test.go+79 −0internal/domains/aliases_test.go+90 −0internal/edge/edge.go+17 −0internal/edge/edge_test.go+65 −0internal/host/agent.go+238 −8internal/host/agent_test.go+268 −0internal/host/edgesfile.go+26 −3internal/host/edgesfile_test.go+44 −0internal/host/fleetbind.go+66 −9internal/host/fleetbind_test.go+126 −4internal/host/host_test.go+37 −0internal/host/restart.go+179 −13internal/host/restart_test.go+310 −3internal/host/restartscope_test.go+2 −2internal/host/schedule_wake_test.go+9 −0internal/host/sidecarwake.go+243 −0internal/host/sidecarwake_test.go+661 −0internal/mail/events.go+257 −6internal/mail/events_test.go+251 −1internal/mail/policy.go+46 −0internal/provision/reconcile.go+126 −0internal/provision/reconcile_test.go+109 −0internal/provision/sidecar.go+400 −0internal/provision/sidecar_reconcile.go+532 −0internal/provision/sidecar_reconcile_test.go+580 −0internal/provision/sidecar_test.go+164 −0internal/registry/registry.go+130 −16internal/registry/registry_test.go+173 −0internal/release/sidecarwake.go+126 −0internal/release/sidecarwake_test.go+163 −0internal/status/snapshot.go+34 −8internal/status/status_test.go+57 −0mail_cli.go+319 −0mail_cli_test.go+117 −0main.go+4 −0sidecars_cli.go+548 −0sidecars_cli_test.go+213 −0sidecars_e2e_test.go+163 −0
CI passed — run details
.amadan/ci.d/30-minio-contractLoading diff…
AGENTS.mdLoading diff…
apimode.goLoading diff…
cli.goLoading diff…
cli_test.goLoading diff…
cmd/console/main.goLoading diff…
docs/site/cli.mdLoading diff…
docs/superpowers/plans/2026-08-17-sidecar-members.mdLoading diff…
docs/superpowers/specs/2026-08-17-sidecar-members-design.mdLoading diff…
docs/superpowers/specs/2026-08-29-eleven-carloku-migration-design.mdLoading diff…
e2e_test.goLoading diff…
infra/no-inbound-box.mdLoading diff…
internal/activator/activator.goLoading diff…
internal/activator/activator_test.goLoading diff…
internal/activator/backend_exec.goLoading diff…
internal/activator/backend_unit.goLoading diff…
internal/activator/backend_unit_test.goLoading diff…
internal/activator/waketiming_test.goLoading diff…
internal/agentsock/agentsock.goLoading diff…
internal/agentsock/agentsock_test.goLoading diff…
internal/appconfig/syncexec.goLoading diff…
internal/appconfig/syncexec_test.goLoading diff…
internal/console/apex.goLoading diff…
internal/console/apex_test.goLoading diff…
internal/console/apicli.goLoading diff…
internal/console/apicli_test.goLoading diff…
internal/console/apidomains.goLoading diff…
internal/console/apiinstances.goLoading diff…
internal/console/apiinstancesenable_test.goLoading diff…
internal/console/apimail.goLoading diff…
internal/console/apimail_test.goLoading diff…
internal/console/apisidecars.goLoading diff…
internal/console/apisidecars_test.goLoading diff…
internal/console/apps_claim_test.goLoading diff…
internal/console/appsettings.goLoading diff…
internal/console/authcli.goLoading diff…
internal/console/domainattach.goLoading diff…
internal/console/domainattach_test.goLoading diff…
internal/console/domainpolicy.goLoading diff…
internal/console/domainpolicy_test.goLoading diff…
internal/console/instances.goLoading diff…
internal/console/instances_test.goLoading diff…
internal/console/listquery.goLoading diff…
internal/console/mailevents.goLoading diff…
internal/console/mailevents_test.goLoading diff…
internal/console/mailpush.goLoading diff…
internal/console/mailpush_test.goLoading diff…
internal/console/overview.goLoading diff…
internal/console/overview_test.goLoading diff…
internal/console/server.goLoading diff…
internal/console/sesevents.goLoading diff…
internal/console/sesevents_test.goLoading diff…
internal/console/store.goLoading diff…
internal/console/svcroutes_test.goLoading diff…
internal/domains/aliases.goLoading diff…
internal/domains/aliases_paths_test.goLoading diff…
internal/domains/aliases_test.goLoading diff…
internal/edge/edge.goLoading diff…
internal/edge/edge_test.goLoading diff…
internal/host/agent.goLoading diff…
internal/host/agent_test.goLoading diff…
internal/host/edgesfile.goLoading diff…
internal/host/edgesfile_test.goLoading diff…
internal/host/fleetbind.goLoading diff…
internal/host/fleetbind_test.goLoading diff…
internal/host/host_test.goLoading diff…
internal/host/restart.goLoading diff…
internal/host/restart_test.goLoading diff…
internal/host/restartscope_test.goLoading diff…
internal/host/schedule_wake_test.goLoading diff…
internal/host/sidecarwake.goLoading diff…
internal/host/sidecarwake_test.goLoading diff…
internal/mail/events.goLoading diff…
internal/mail/events_test.goLoading diff…
internal/mail/policy.goLoading diff…
internal/provision/reconcile.goLoading diff…
internal/provision/reconcile_test.goLoading diff…
internal/provision/sidecar.goLoading diff…
internal/provision/sidecar_reconcile.goLoading diff…
internal/provision/sidecar_reconcile_test.goLoading diff…
internal/provision/sidecar_test.goLoading diff…
internal/registry/registry.goLoading diff…
internal/registry/registry_test.goLoading diff…
internal/release/sidecarwake.goLoading diff…
internal/release/sidecarwake_test.goLoading diff…
internal/status/snapshot.goLoading diff…
internal/status/status_test.goLoading diff…
mail_cli.goLoading diff…
mail_cli_test.goLoading diff…
main.goLoading diff…
sidecars_cli.goLoading diff…
sidecars_cli_test.goLoading diff…
sidecars_e2e_test.goLoading diff…