Repository navigation
fix: complete canonical attribution handoff contracts - #36
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 804eee4d5d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| return buildEventPayload(payload, canonicalName, { | ||
| ...data, | ||
| ...(formId !== undefined ? { form_id: formId } : {}), | ||
| ...(leadId !== undefined ? { lead_id: leadId } : {}), |
There was a problem hiding this comment.
Normalize lead IDs before copying them to the wire
When a host supplies an unprefixed but otherwise valid identifier such as leadId: "42", this mapping emits top-level lead_id: "42", while buildMarketingTrailEnvelope() applies prefixed(..., "lead_") and emits marketing_trail.lead_id: "lead_42". Consumers joining the canonical field with the attached envelope therefore see two different lead identities. Normalize the trusted alias before building both surfaces, or preserve it unchanged in the envelope; the equivalent new mappings in the Astro server and tenant adapter have the same issue.
Useful? React with 👍 / 👎.
Summary
occurred_at.Acceptance criteria
The PR is acceptable when consent, first-touch preservation, approved-domain token integrity, canonical server mappings, invoice-authoritative Pix validation, duplicate suppression, and PII boundaries remain covered by the committed tests and all local workspace gates pass.
Validation
pnpm buildpnpm typecheckpnpm testpnpm probe(12/12 fixtures and WordPress reference probe)git diff --checkRefs #34.