refactor(hutch): remove the inbox surface now served by the inbox deployable (phase D: cleanup)#952
refactor(hutch): remove the inbox surface now served by the inbox deployable (phase D: cleanup)#952FagnerMartinsBrack wants to merge 1 commit into
Conversation
|
@claude Review this PR. Use your Read tool to read the local file Context
|
|
Claude finished @FagnerMartinsBrack's task in 5m 2s —— View job Review complete — PR #952 (inbox surface removal, phase D cleanup)
Verdict: clean. No high or medium priority issues. What I verified:
One LOW observation (optional): the The formal review block is emitted to this run's output; the automation posts it as the canonical review comment. |
High Priority Issues (Must Fix)None found Medium Priority IssuesNone found Low Priority Suggestions1.
|
|
@claude Resolve conflicts. Use your Read tool to read the local file Context
|
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
2 similar comments
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
|
@claude Resolve conflicts. Use your Read tool to read the local file Context
|
|
Claude finished @FagnerMartinsBrack's task in 15m 26s —— View job Conflicts resolved — PR #952 rebased onto
|
…loyable Closes the double-delivery overlap the inbox extraction opened: the /inbox pages, inbox domain handlers, the three email-pipeline mains, and their infra chains (queues, lambdas, SNS bridge, EventBridge rules, truncation alert trio) leave hutch; the inbox stack's inbox-prefixed equivalents are the sole consumers from this deploy on. Hutch keeps everything stateful and every cross-cutting concern: the SES receiving stack, the three DynamoDB tables, delete-account's purge reach into them, and signup-time address provisioning — the five inbox deps on the composition roots collapse into one injected provisionInboxAddress, and the provisioning tests re-home to web/auth/ where the behavior lives. The emails/links table grants and env leave the main web lambda; the addresses grant stays for signup. Merge only after the inbox deployable's first deploy is green in both stages, with the old DLQs drained (see the cutover run-book in the PR).
464ff8b to
cfd99d2
Compare
|
@claude Review this PR. Use your Read tool to read the local file Context
|
|
Claude finished @FagnerMartinsBrack's task in 3m 54s —— View job Review complete — PR #952 (inbox surface removal, phase D cleanup) · re-review of rebased tip
|
High Priority Issues (Must Fix)None found Medium Priority IssuesNone found Low Priority Suggestions1.
|

Supersedes #951 (auto-closed when its stacked base merged as #950).
Stacked on #950 — closes the double-delivery overlap window that PR opens. Do not merge until #950 is deployed green in both stages and the operator checklist below is clear. (After #950 merges, retarget this PR's base to
main.)Contents
Removes from hutch:
/inboxpages, inbox domain handlers, the three pipeline mains, and their entire infra chains (queues, lambdas, SNS→SQS bridge, EventBridge rules, truncation-alert trio — 251 lines ofinfra/index.ts). The composition roots collapse five inbox deps into one injectedprovisionInboxAddress; signup-provisioning tests re-home toweb/auth/.Hutch keeps: SES receiving (
InboxMail), the three DynamoDB tables, delete-account's purge reach, signup-time address provisioning (addresses grant +INBOX_ADDRESS_DOMAINstay on the main lambda; emails/links grants+env removed), and all Pulumi config keys./inboxserving frominbox-web-handler, new pipeline lambdas consuming.receive-email-dlq,extract-email-links-dlq,crawl-email-link-preview-dlq(deleting a queue destroys its messages — redrive first if non-empty).extract-email-links-truncated-alertif the 14-day truncation audit trail matters (advisory only).After deploy
Single delivery restored: the SNS topic has one SQS subscription; the platform bus carries only
inbox-*rules for these events. Rollback = revert this PR (recreates hutch's consumers; re-entering the overlap is safe by idempotency; any dropped notification is replayable from the raw-email bucket, which retains every.emlforever).Full
pnpm checkgreen at every commit (41 projects).