92ab59de4e029008fb770858b95cc19b3d5a2e2b
_upsert_contact_from_fundraising now reads contact.phone and writes contacts.phone on both the insert and update paths, so a phone captured from a business card persists on the canonical contact record. Phone stays contact-level (not a grid pill field), matching how the team edits it. Validated by test_grid_add_investor.py. This is the SERVER half of business-card phone capture, staged for the next s9pk (version bump + build + install). The bot's phone extraction/card/payload lands in the same deploy, so phone never shows on a card before the box can store it. NOT yet built or installed to the box.
Description
No description provided
Languages
Python
46.7%
HTML
44.2%
TypeScript
5.5%
JavaScript
2.7%
Shell
0.5%
Other
0.4%