Support routing uses transactional exclusivity, durable jobs, and disposition-driven release
2026-09-19 staging-code review (commit cea33a4b18b70c506aa181fe275433c8bdc3509f) found a reusable support-operations pattern in Shield: model current ownership as a denormalized issue field plus append-only assignment rows, enforce one active assignment per issue and per agent with partial unique indexes, and claim inside transactions; feed routing through a coalescing durable job with leases/retries. The event model intentionally makes Note/Contacted/Escalated release ownership, Follow Up/Snoozed release and park work, and Handled resolve it. A key product caveat is that manual driver outreach (“Create iMessage”/copy text) and the internal Contacted disposition are separate actions, so the audit event is not proof of message delivery. Evidence: web/src/db/schema.ts:2944-2958,2987-3009; web/src/lib/support-routing.ts:1392-1651,1679-1792; web/src/lib/support-routing-jobs.ts:121-218,252-390; web/src/lib/support-events.ts:137-188; web/src/app/support/[flow_type]/[flow_id]/bypass-form.tsx:763-797,3260-3301.