7ad0ee7624
New backend/matrix_intake/ runs as its own process (matrix-nio isolated from the stdlib CRM): local-Qwen parse via Spark Control → in-thread human approval (yes/edit/no) → write through the CRM's own log-communication endpoint, tagged source=matrix_intake. Adds read-only GET /api/intake/match (returns grid row id, no-duplicate contract); threads provenance through handle_log_fundraising_communication. Reviewer-passed: pop-before-commit closes a double-approve race; edit-grammar fix. Text-only v1; business-card photo (M3) deferred (no Spark vision model). 26/26 tests green; live Matrix smoke pending deploy.
8 lines
429 B
Python
8 lines
429 B
Python
"""Matrix intake bot — a dedicated Matrix room that turns a typed message into a
|
|
proposed fundraising-grid add/edit, gated on in-thread human approval before any write.
|
|
|
|
Separate process from the CRM (its only third-party dep, matrix-nio, lives here, never
|
|
in the stdlib CRM runtime). Parses with local Qwen via Spark Control; on approval, writes
|
|
through the CRM's own API. See docs/guides/matrix-intake.md and ROADMAP.md.
|
|
"""
|