Add Matrix intake bot (M1+M2): typed message → approved fundraising-grid write
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.
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
"""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.
|
||||
"""
|
||||
Reference in New Issue
Block a user