carlos / platform Public

Merge branch 'worktree-tenant-email-senders' into main

claude agent, operated by paul@keymail.dev ce24be04118f33a92bbf53ab60f3a456abdcf000 parent 91cf688parent fe6b963
36 files changed, +17732 −210
  • README.md +33 −0
  • cmd/console/main.go +22 −1
  • docs/superpowers/plans/2026-09-15-tenant-email-2-senders.md +3379 −0
  • docs/superpowers/plans/2026-09-15-tenant-email-3-external-identities.md +4262 −0
  • docs/superpowers/plans/2026-09-15-tenant-email-4-instance-config.md +2742 −0
  • docs/superpowers/plans/2026-09-15-tenant-email-5-instance-senders.md +3363 −0
  • docs/superpowers/plans/2026-09-15-tenant-email-ses-spike.md +117 −0
  • docs/superpowers/specs/2026-09-15-tenant-email-senders-design.md +797 −0
  • internal/console/apimail.go +108 −18
  • internal/console/apimail_test.go +221 −0
  • internal/console/appsettings.go +3 −2
  • internal/console/mailcounts.go +94 −59
  • internal/console/mailcounts_test.go +393 −22
  • internal/console/mailevents.go +27 −3
  • internal/console/mailevents_test.go +151 −10
  • internal/console/ownership.go +7 −6
  • internal/console/sesevents.go +93 −21
  • internal/console/sesevents_test.go +51 −2
  • internal/console/store.go +68 −0
  • internal/mail/aws.go +50 −12
  • internal/mail/aws_test.go +8 −0
  • internal/mail/domain.go +17 −4
  • internal/mail/mail.go +174 −16
  • internal/mail/mail_test.go +195 −1
  • internal/mail/memprovisioner.go +43 −6
  • internal/mail/memprovisioner_test.go +28 −0
  • internal/mail/provisioner.go +12 −0
  • internal/mail/sender.go +412 −0
  • internal/mail/sender_test.go +294 −0
  • internal/mail/sweep.go +84 −0
  • internal/mail/sweep_test.go +63 −0
  • internal/mail/walk.go +138 −27
  • internal/mail/walk_domain_test.go +53 −0
  • internal/mail/walk_lifecycle_test.go +147 −0
  • mail_cli.go +42 −0
  • mail_cli_test.go +41 −0

CI passed — run details

README.md

Loading diff…

cmd/console/main.go

Loading diff…

docs/superpowers/plans/2026-09-15-tenant-email-2-senders.md

Loading diff…

docs/superpowers/plans/2026-09-15-tenant-email-3-external-identities.md

Loading diff…

docs/superpowers/plans/2026-09-15-tenant-email-4-instance-config.md

Loading diff…

docs/superpowers/plans/2026-09-15-tenant-email-5-instance-senders.md

Loading diff…

docs/superpowers/plans/2026-09-15-tenant-email-ses-spike.md

Loading diff…

docs/superpowers/specs/2026-09-15-tenant-email-senders-design.md

Loading diff…

internal/console/apimail.go

Loading diff…

internal/console/apimail_test.go

Loading diff…

internal/console/appsettings.go

Loading diff…

internal/console/mailcounts.go

Loading diff…

internal/console/mailcounts_test.go

Loading diff…

internal/console/mailevents.go

Loading diff…

internal/console/mailevents_test.go

Loading diff…

internal/console/ownership.go

Loading diff…

internal/console/sesevents.go

Loading diff…

internal/console/sesevents_test.go

Loading diff…

internal/console/store.go

Loading diff…

internal/mail/aws.go

Loading diff…

internal/mail/aws_test.go

Loading diff…

internal/mail/domain.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/provisioner.go

Loading diff…

internal/mail/sender.go

Loading diff…

internal/mail/sender_test.go

Loading diff…

internal/mail/sweep.go

Loading diff…

internal/mail/sweep_test.go

Loading diff…

internal/mail/walk.go

Loading diff…

internal/mail/walk_domain_test.go

Loading diff…

internal/mail/walk_lifecycle_test.go

Loading diff…

mail_cli.go

Loading diff…

mail_cli_test.go

Loading diff…