docs: mark card phone/mobile capture shipped (v0.1.0:98)

This commit is contained in:
Keysat
2026-06-20 11:28:26 -05:00
parent e824ff2206
commit 7fe5f57c6e
+11 -11
View File
@@ -99,17 +99,17 @@ existing flow (parse → match → disambiguate → approve → `log-communicati
in the audit log, threaded via the proposal's `_source` control key (`handle_intake(…, source=…)` in the audit log, threaded via the proposal's `_source` control key (`handle_intake(…, source=…)`
`crm_client.build_commit_payload`, which defaults to `"matrix_intake"` when absent). `crm_client.build_commit_payload`, which defaults to `"matrix_intake"` when absent).
- **Fields captured** (`parse._FIELDS`): investor, contact, email, title, **city**, **linkedin_url**, - **Fields captured** (`parse._FIELDS`): investor, contact, email, title, **city**, **linkedin_url**,
note. `city` is a plain extracted field (low-harm if wrong; the human sees it); `linkedin_url` **phone**, **mobile**, note. `city` is a plain extracted field (low-harm if wrong; the human sees
follows the **email-integrity rule** — kept only if it literally appears in the source/instruction, it). `linkedin_url`, `phone`, and `mobile` follow the **email-integrity rule** — kept only if they
never minted (a wrong profile URL points at the wrong person). Both ride to the contact via the literally appear in the source/instruction, never minted (for phone/mobile the check is digit-run
existing `log-communication` upsert (`_upsert_contact_from_fundraising` already honors them; `city` membership, ≥7 digits, in the source). Mapping (from the labeled transcription): an office/main/
also syncs to the grid contact pill, `linkedin_url` lands on the canonical contact record). direct number → `phone`, a cell/mobile → `mobile`, a **fax is skipped**. All ride to the contact
- **Phone is NOT captured yet (pending a server change).** The transcription reads the phone, but the via the existing `log-communication` upsert (`_upsert_contact_from_fundraising`); `city` also syncs
bot's write path (`_upsert_contact_from_fundraising`) doesn't accept a `contact.phone` today, so to the grid contact pill, the rest land on the canonical contact record (contact-level, not pills).
phone is deliberately left off the card to avoid showing a field that won't persist. Enabling it is - **Phone/mobile shipped in v0.1.0:98 (live 2026-06-20).** The server half — `_upsert_contact_from_
a small additive server change (read `contact.phone` → write `contacts.phone`; contact-level, not a fundraising` accepting `contact.phone` + `contact.mobile` — is in the s9pk; the bot's transcription
grid pill field) that ships in an **s9pk** (version bump + install), paired with adding `phone` to (Phone/Mobile/Fax labels), extractor, and card shipped on the Spark in the same deploy, so phone
the bot's extractor/card/payload in the same deploy. Tracked agreed 2026-06-20. never showed on a card before the box could store it.
- **UX:** the bot acks `📇 Reading the card…` before the (slower) vision call; an unreadable image - **UX:** the bot acks `📇 Reading the card…` before the (slower) vision call; an unreadable image
(model replies `NONE`, or transcription < 5 chars) gets a "try a clearer, well-lit photo" reply (model replies `NONE`, or transcription < 5 chars) gets a "try a clearer, well-lit photo" reply
instead of a garbage proposal. instead of a garbage proposal.