Repository navigation
feat(workflows): record recipient, domain, opens and clicks per email - #127745
Conversation
🤖 CI report✅ Trunk lane — non-backend laneThis PR is assigned to the non-backend lane. It does not run backend Python tests and may merge in parallel with PRs in other lanes. ✅ Duplication (Python) — cleanNew Python code duplication introduced by this branch. Fails at 70+ tokens in app code, or 150+ tokens when both copies live in test files. Advisory while the gate proves itself: extract a shared helper instead of copying. ✅ Duplication (TypeScript) — cleanNew TypeScript code duplication introduced by this branch. Fails at 70+ tokens in app code, or 150+ tokens when both copies live in test files. Advisory while the gate proves itself: extract a shared helper instead of copying.
|
| File | Comment lines | Added lines |
|---|---|---|
nodejs/src/cdp/services/messaging/helpers/ses.ts |
2 | 6 |
nodejs/src/cdp/services/messaging/email-status.service.ts |
1 | 15 |
This check does not block merging. It updates on every push and clears when the share drops.
9b3a79b to
ca830d2
Compare
3e99940 to
772af16
Compare
|
Risk: No findings This PR adds recipient, workflow and sending-domain fields to transactional email status rows, and maps SES Open/Click records to new Sentinel reviewed |
772af16 to
f7c6dab
Compare
A new stamphog review started for this PR — the fresh verdict replaces this approval.
f7c6dab to
5f8c178
Compare
A new stamphog review started for this PR — the fresh verdict replaces this approval.
There was a problem hiding this comment.
Not approved yet — waiting on the conditions below.
Re-add the stamphog label to request another review once you have addressed this.
stamphog declined to review this pull request because the prerequisites gate failed: the branch has merge conflicts. The deny-list, size, and tier gates all passed, so the conflicts are the only thing blocking it. The author can resolve the conflicts against the base branch and push again, which re-runs the gates. If the PR still can't be auto-reviewed after that, they can ask a human reviewer to take it.
Gate mechanics and policy version
| Gate | Result | |
|---|---|---|
| prerequisites | ✗ | merge conflicts present |
| deny-list | ✓ | no deny categories matched |
| size | ✓ | 36L, 4F substantive, 78L/8F incl. docs/generated/snapshots — within ceiling |
| tier | ✓ | T1-agent / T1c-medium (78L, 8F, single-area, feat) |
| stamphog 2.7.0 | .stamphog/policy.yml @ unknown · reviewed head 5f8c178 |
5f8c178 to
2a2ceeb
Compare
2a2ceeb to
93c0a3f
Compare
A new stamphog review started for this PR — the fresh verdict replaces this approval.
|
😎 Stack merged successfully - details. |
The PR was retargeted to a different base branch, so the approved diff is no longer what was reviewed. Stamphog re-reviews automatically.
93c0a3f to
2815642
Compare
A new stamphog review started for this PR — the fresh verdict replaces this approval.
There was a problem hiding this comment.
Approved.
The change enters email telemetry write paths and data models, with owning-team authorship providing the required assurance. No substantive review concerns remain; the checkout contains the delivery-status filter, and the bot discussion is not a current-head review.
- Author wrote 0% of the modified lines and has 43 merged PRs in these paths (familiarity MODERATE).
Gate mechanics and policy version
| Gate | Result | |
|---|---|---|
| prerequisites | ✓ | all clear |
| deny-list | ✓ | no deny categories matched |
| size | ✓ | 36L, 4F substantive, 78L/8F incl. docs/generated/snapshots — within ceiling |
| tier | ✓ | T1-agent / T1c-medium (78L, 8F, single-area, feat) |
| stamphog 2.7.0 | .stamphog/policy.yml @ 868ce99 · reviewed head 868ce99 |
|
/trunk merge |
Problem
Changes
openedorclickedrow for each open and click of a transactional email, behind the same signed-code check.Warning
Merge after the #127744 migration finishes. Without its filter, an open would replace the delivery status in
email_status.How did you test this code?
attachments_missingand the sending domain. All 310 email service tests pass.email_status_events(rows below).failed / provider_error.ClickHouse rows
success@simulator.amazonses.combounce@simulator.amazonses.comhardcomplaint@simulator.amazonses.comThe two opens within 6 seconds of delivery are likely a mail scanner.
CI report notes
Test rationale:
ses.test.tsgets open, click and untagged-email cases. The status tests inemail.service.test.tsandcdp-api.serial.test.tsnow assert the new fields.Release status
Docs update
🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Agent: Claude Code, Claude Opus 5.5
Skills:
/writing-tests,/writing-pr-descriptions,/writing-plainlyMore context for AI agents
resolveEmailStatusUpdateinnodejs/src/cdp/services/messaging/helpers/ses.ts🤖 Generated with Claude Code
https://claude.ai/code/session_01BMRf2uGenMximWGgxyo3gr