- Shipped
- September 23, 2026 at 1:26 PM UTC
- Author
- Kamo
- Commit
- d72a19c
The mailbox list headed a lead's message with the part of their address before the @ ("jlrivera1984") when their mail client sent no display name, although the org holds them as a lead ("Jordan Rivera"). The resolver knew colleagues and saved contacts only. CorrespondentResolver gains a fourth tier, LEAD (after CONTACT), with the lead's name, company and leadId (a string: uids pass MAX_SAFE_INTEGER). LeadCorrespondents answers only what the leads grid would show the reader: VIEW_LEADS required, an unassigned lead needs VIEW_UNASSIGNED_LEADS (fails closed on free-for-all products), no phones (contact info is floored by rights this card does not check), and every lead named is written to phi_access_log as a LIST read in a PHI org, via AudiencePhiAudit. leads had no index on the address: the lookup walked all ~790k of the reporter's org's leads in 9.8 s. ix_leads_org_email_lower on (org_id HASH, lower(trim(email))) is in db/leads-email-lookup-index.sql and was APPLIED BY HAND as the owner before this deploy; the generic plan now takes 3.4 ms.
