e824ff2206
Completes business-card contact capture. The transcription prompt now labels Phone/Mobile/Fax on separate lines, and the extractor maps an office/main number -> phone and a cell -> mobile, never a fax. Both carry the same digit-in-source integrity rule as email/LinkedIn: a number is kept only if its digits literally appear in the source (or, on revise, the instruction) -- never minted. The proposal card shows Phone + Mobile and they're editable (aliases phone/tel/office, mobile/cell). Server: _upsert_contact_from_fundraising now accepts contact.phone + contact.mobile and writes them to the canonical contact record (contact-level, not grid pills), shipped in s9pk v0.1.0:98. No schema change -- the contacts columns already exist. 41/41 backend suite green + the matrix_intake units; card flow end-to-end is live-smoke.
19 lines
946 B
TypeScript
19 lines
946 B
TypeScript
import { VersionInfo } from '@start9labs/start-sdk'
|
|
|
|
// Server half of business-card capture for the Matrix intake bot: the fundraising contact
|
|
// upsert (_upsert_contact_from_fundraising) now accepts phone + mobile on the contact dict
|
|
// (alongside city + linkedin_url, which already worked) and writes them to the canonical
|
|
// contact record. No schema change — the contacts table already has these columns. The bot's
|
|
// matching transcription/extraction/card changes ship on the Spark (git pull + rebuild), not here.
|
|
export const v_0_1_0_98 = VersionInfo.of({
|
|
version: '0.1.0:98',
|
|
releaseNotes: {
|
|
en_US: [
|
|
'Business-card intake (Matrix bot) now captures a contact phone, mobile/cell, city, and',
|
|
'LinkedIn from a scanned card onto the contact record (cell to Mobile, office to Phone,',
|
|
'fax skipped). No user-facing CRM change.',
|
|
].join(' '),
|
|
},
|
|
migrations: { up: async () => {}, down: async () => {} },
|
|
})
|