lilith-platform.live/codebase/@features/api
Natalie b0cd051ac6 feat(prospector): add hard address-book Contacts identity gate to runner (LP parity gap #1 vs stopgap)
Closes the biggest gap called out in 20260628_prospector-autohandler-parity.md: content-only friend inference missed real system Contacts (e.g. one-word messages from saved numbers).

- RunnerDeps now has isAddressBookContact(handle).
- processOwedThread checks it immediately after inbound (pre-scam, pre-classify, pre-draft) and skips with new reason.
- Seam implemented in createRunnerDeps using the mesh bridge (current addressbook exposure; will move to macsync contacts-sync per macsync-integration handoff).
- Conservative on error (false).
- Test updated with override + explicit test case for the skip.
- Aligns runner behavior with the (now-slimmed) Cowork inbound-autohandler stopgap gates.

This is a pre-classify hard gate; human-set friend/blocked statuses still honored downstream.

Part of replace-claude-deps + full auto parity work so stopgap can be retired.
2026-06-28 11:12:09 -04:00
..
config
scripts docs(tours): clarify black is gone; canonical is now DO Managed PG (phase-c). Update handoff notes + backfill script usage for lilith-store-backend + :25060 + terraform extraction. No code change. 2026-06-28 08:42:26 -04:00
src feat(prospector): add hard address-book Contacts identity gate to runner (LP parity gap #1 vs stopgap) 2026-06-28 11:12:09 -04:00
tests/processors
.dependency-cruiser.cjs
.env.development feat(quinn.admin): serve main-branch dev preview on black without SSO 2026-06-21 23:38:06 -05:00
bunfig.toml
package.json test(api): auto-skip DB-dependent tests off the fast LAN path 2026-06-19 18:20:11 -05:00
tsconfig.json fix(api): null-safe tour-stop hotels, declare sharp, exclude mcp-prospector 2026-06-19 06:46:08 -05:00