PR #10566: address 2 Cursor threads (BOLT-918 Customer status field)
blockedAgent: richie-engineer
Priority: 3
Branch:
winston/3ce-customer-status-fieldPR: #10566
Linear: BOLT-918
MEDIUM: fetchThirdPartyByReferenceId called without tx, can violate one-way promotion invariant in domains/identity/src/services/customer/create.ts under concurrent referenceId writes (the evergreen-link replay scenario this PR targets). Pass tx to the read.\n\nLOW: domains/identity/src/services/customer/common/status.ts and entities.ts both export CustomerStatusEnum with different types (raw Prisma enum vs Zod schema) — rename one to avoid the maintenance footgun.
Event Timeline
created
status_change
queued → failed
status_change
failed → blocked
status_change
blocked → completed
status_change
completed → blocked
status_change
blocked → completed
status_change
completed → blocked
status_change
blocked → completed
status_change
completed → blocked
status_change
blocked → completed
status_change
completed → blocked
status_change
blocked → completed
status_change
completed → blocked