carlos / platform Public

Merge remote-tracking branch 'origin/main' into multi-region-steering

# Conflicts:
#	internal/console/server.go
Paul Campbell pushed by paul@keymail.dev 7441ff026419815a427fbb32239fae4a6f877006 parent ebd930aparent ab58c52
115 files changed, +31204 −501
  • AGENTS.md +195 −0
  • CLAUDE.md +4 −185
  • apimode.go +271 −18
  • apimode_test.go +71 −6
  • auth_e2e_test.go +16 −1
  • cli.go +18 −11
  • cmd/console/mailbackends_test.go +128 −0
  • cmd/console/main.go +190 −1
  • 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-woodstar-cutover-runbook.md +37 −6
  • docs/superpowers/plans/2026-08-19-tenant-email.md +5505 −0
  • docs/superpowers/plans/2026-08-20-release-pipelines-v2.md +974 −0
  • docs/superpowers/specs/2026-08-03-cli-console-api-design.md +27 −4
  • docs/superpowers/specs/2026-08-19-cli-flag-conventions-design.md +211 −0
  • docs/superpowers/specs/2026-08-19-tenant-email-design.md +759 −0
  • docs/superpowers/specs/2026-08-20-release-pipelines-v2-design.md +238 −0
  • domains_cli_test.go +2 −2
  • fleets_cli_test.go +1 −1
  • go.mod +9 −8
  • go.sum +18 −16
  • internal/appconfig/syncexec.go +2 −2
  • internal/appconfig/syncexec_test.go +1 −1
  • internal/applog/record.go +1 −1
  • internal/applog/record_test.go +1 −1
  • internal/console/apicli.go +235 −31
  • internal/console/apicli_test.go +188 −16
  • internal/console/apimail.go +1148 −0
  • internal/console/apimail_test.go +1085 −0
  • internal/console/apipipeline.go +340 −0
  • internal/console/apipipeline_test.go +399 −0
  • internal/console/apiservices.go +1 −1
  • internal/console/apiservices_test.go +1 −1
  • internal/console/apistore.go +1 −1
  • internal/console/appsettings.go +130 −0
  • internal/console/appsettings_test.go +364 −0
  • internal/console/authcli.go +96 −15
  • internal/console/authcli_test.go +49 −0
  • internal/console/confirm.go +19 −4
  • internal/console/confirm_test.go +45 −1
  • internal/console/deletion_test.go +104 −0
  • internal/console/economicspage_test.go +1 −1
  • internal/console/flow.go +61 −15
  • internal/console/ladder.go +113 −2
  • internal/console/ladder_test.go +2 −2
  • internal/console/mailcounts.go +275 −0
  • internal/console/mailcounts_test.go +458 −0
  • internal/console/ownership.go +62 −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/sesevents.go +694 −0
  • internal/console/sesevents_test.go +677 −0
  • internal/console/store.go +22 −1
  • internal/console/svcprincipal.go +14 −3
  • internal/console/svcroutes_test.go +37 −4
  • internal/console/templates/app_overview.html +8 −0
  • internal/console/templates/app_releases.html +10 −3
  • internal/console/templates/app_settings.html +66 −0
  • internal/console/templates/ladder.html +8 −1
  • internal/console/templates/pending.html +22 −0
  • internal/console/templates/pipeline.html +60 −0
  • internal/console/view.go +37 −6
  • internal/dnsrec/dnsrec.go +90 −0
  • internal/dnsrec/dnsrec_test.go +75 −0
  • internal/dnsrec/route53.go +165 −0
  • internal/dnsrec/route53_test.go +35 −0
  • internal/mail/aws.go +470 −0
  • internal/mail/aws_test.go +351 −0
  • internal/mail/dnsrecords.go +93 −0
  • internal/mail/dnsrecords_test.go +107 −0
  • internal/mail/domain.go +178 −0
  • internal/mail/domain_test.go +107 −0
  • internal/mail/domainclaim.go +209 −0
  • internal/mail/events.go +128 −0
  • internal/mail/events_test.go +163 −0
  • internal/mail/mail.go +162 −0
  • internal/mail/mail_test.go +105 −0
  • internal/mail/memprovisioner.go +300 −0
  • internal/mail/memprovisioner_test.go +133 −0
  • internal/mail/policy.go +134 −0
  • internal/mail/policy_test.go +201 −0
  • internal/mail/provisioner.go +77 −0
  • internal/mail/smtppass.go +43 −0
  • internal/mail/smtppass_test.go +55 −0
  • internal/mail/walk.go +1165 −0
  • internal/mail/walk_domain_test.go +372 −0
  • internal/mail/walk_domainclaim_test.go +624 −0
  • internal/mail/walk_enable_test.go +423 −0
  • internal/mail/walk_grant_test.go +86 −0
  • internal/mail/walk_lifecycle_test.go +539 −0
  • internal/mail/walk_verify_test.go +129 −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
  • mail_cli.go +1331 −0
  • mail_cli_test.go +1110 −0
  • main.go +7 −0
  • pipeline.go +470 −0
  • pipeline_test.go +549 −0
  • services_cli_test.go +2 −2
  • store.go +1 −1
  • store_test.go +1 −1
AGENTS.md

Loading diff…

CLAUDE.md

Loading diff…

apimode.go

Loading diff…

apimode_test.go

Loading diff…

auth_e2e_test.go

Loading diff…

cli.go

Loading diff…

cmd/console/mailbackends_test.go

Loading diff…

cmd/console/main.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-woodstar-cutover-runbook.md

Loading diff…

docs/superpowers/plans/2026-08-19-tenant-email.md

Loading diff…

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

Loading diff…

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

Loading diff…

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

Loading diff…

docs/superpowers/specs/2026-08-19-tenant-email-design.md

Loading diff…

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

Loading diff…

domains_cli_test.go

Loading diff…

fleets_cli_test.go

Loading diff…

go.mod

Loading diff…

go.sum

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

Loading diff…

internal/console/apimail_test.go

Loading diff…

internal/console/apipipeline.go

Loading diff…

internal/console/apipipeline_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/appsettings.go

Loading diff…

internal/console/appsettings_test.go

Loading diff…

internal/console/authcli.go

Loading diff…

internal/console/authcli_test.go

Loading diff…

internal/console/confirm.go

Loading diff…

internal/console/confirm_test.go

Loading diff…

internal/console/deletion_test.go

Loading diff…

internal/console/economicspage_test.go

Loading diff…

internal/console/flow.go

Loading diff…

internal/console/ladder.go

Loading diff…

internal/console/ladder_test.go

Loading diff…

internal/console/mailcounts.go

Loading diff…

internal/console/mailcounts_test.go

Loading diff…

internal/console/ownership.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/sesevents.go

Loading diff…

internal/console/sesevents_test.go

Loading diff…

internal/console/store.go

Loading diff…

internal/console/svcprincipal.go

Loading diff…

internal/console/svcroutes_test.go

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/pending.html

Loading diff…

internal/console/templates/pipeline.html

Loading diff…

internal/console/view.go

Loading diff…

internal/dnsrec/dnsrec.go

Loading diff…

internal/dnsrec/dnsrec_test.go

Loading diff…

internal/dnsrec/route53.go

Loading diff…

internal/dnsrec/route53_test.go

Loading diff…

internal/mail/aws.go

Loading diff…

internal/mail/aws_test.go

Loading diff…

internal/mail/dnsrecords.go

Loading diff…

internal/mail/dnsrecords_test.go

Loading diff…

internal/mail/domain.go

Loading diff…

internal/mail/domain_test.go

Loading diff…

internal/mail/domainclaim.go

Loading diff…

internal/mail/events.go

Loading diff…

internal/mail/events_test.go

Loading diff…

internal/mail/mail.go

Loading diff…

internal/mail/mail_test.go

Loading diff…

internal/mail/memprovisioner.go

Loading diff…

internal/mail/memprovisioner_test.go

Loading diff…

internal/mail/policy.go

Loading diff…

internal/mail/policy_test.go

Loading diff…

internal/mail/provisioner.go

Loading diff…

internal/mail/smtppass.go

Loading diff…

internal/mail/smtppass_test.go

Loading diff…

internal/mail/walk.go

Loading diff…

internal/mail/walk_domain_test.go

Loading diff…

internal/mail/walk_domainclaim_test.go

Loading diff…

internal/mail/walk_enable_test.go

Loading diff…

internal/mail/walk_grant_test.go

Loading diff…

internal/mail/walk_lifecycle_test.go

Loading diff…

internal/mail/walk_verify_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…

mail_cli.go

Loading diff…

mail_cli_test.go

Loading diff…

main.go

Loading diff…

pipeline.go

Loading diff…

pipeline_test.go

Loading diff…

services_cli_test.go

Loading diff…

store.go

Loading diff…

store_test.go

Loading diff…