- Shipped
- November 5, 2026 at 9:21 PM UTC
- Author
- Kamo
- Commit
- c67ce33
OutreachCheck.checkPage answers a person's check for a page of leads with the same rules and the same decision code as check(): the leads' rows and open points, stops, the do-not-contact list, the state rules and the settings are read once for the page instead of once per lead. Anything outside the page is still asked live, and automated requests are not batched. LeadLoanFacts no longer lets the planner walk an organization's whole index. Measured read-only on the largest org (800k leads) on 2026-11-05: - "leads WHERE uid = ? AND org_id = ?" picked ix_leads_org_id: 8,045 ms. By uid, org checked in Java: 2.6 ms. - the same-person self-join on lead_contact_points merge-joined all 790,694 open points: 20,807 ms. Now this lead's points, then the org's points with exactly those values through ix_lcp_org_kind_value: 28 ms. - the borrower route's value read now goes by the leads' own index too.
