Record intake-bot containerization; log parse fix, card handoff, and repo-extraction follow-ons

Bot now runs as a docker-compose service on the Spark (verified live, listening). Docs (matrix-intake guide ops, ROADMAP, AGENTS Current state) updated. Also logs the live-smoke parse bug (teammate read as investor -> team-roster fix), the spark-control dashboard-card handoff, and the long-term dedicated-repo extraction.
This commit is contained in:
Keysat
2026-06-17 20:13:35 -05:00
parent b470ea2659
commit cae2dbc8b9
3 changed files with 23 additions and 10 deletions
+15 -8
View File
@@ -134,14 +134,21 @@ rows ≥ `min_score` (0.62), ranked, capped at 5:
## Deployment & ops
- **Runs on the Spark** (SSH alias `modelo32`, host `spark-32d0`): repo at
`/home/modelo/ten31-database`, deps in a venv (`.venv`; only `matrix-nio`). Launched detached:
`nohup ./.venv/bin/python backend/matrix_intake/bot.py >/tmp/intake-bot.log 2>&1 &`, pid in
`/tmp/intake-bot.pid`; startup logs `listening as … in room …`.
- **Restart after a `git pull` of bot code:** `kill $(cat /tmp/intake-bot.pid)`, relaunch as
above, re-write the pid. A restart **drops in-memory pending proposals** (re-send to recover).
- **NOT a managed service yet** — won't survive a Spark reboot; restart-on-boot (systemd) is an
open TODO.
- **Runs on the Spark as a docker container** (`matrix-intake`), since 2026-06-17 — SSH alias
`modelo32`, host `spark-32d0`, repo clone at `/home/modelo/ten31-database`. Defined by
`docker-compose.yml` at the repo root + `backend/matrix_intake/Dockerfile`. The image bundles
`backend/matrix_intake/` **and** `backend/ingest/` (spark.py reaches into the latter's stdlib
Spark client via sys.path); `.env` is mounted read-only at `/app/.env`. `network_mode: host`
so it reaches Matrix, the CRM, and Spark Control. Startup logs `listening as … in room …`.
- **Survives a Spark reboot** via `restart: unless-stopped` — the durability fix that retired the
old bare `nohup` launch. (The previous nohup method + `/tmp/intake-bot.pid` are gone.)
- **Deploy / update after a `git pull`:** `cd /home/modelo/ten31-database && git pull && docker
compose up -d --build`. **Logs:** `docker logs -f matrix-intake`. **Restart:**
`docker restart matrix-intake`. **Stop:** `docker compose down`. A restart still **drops
in-memory pending proposals** (re-send to recover).
- **Not yet a spark-control dashboard card.** The container is managed via `docker`/SSH today; a
managed card (Update/Restart/Stop/Logs tile, like `matrix-bridge`) is a separate spark-control
task — see `docs/handoffs/add-intake-bot-to-spark-control.md`.
- **Server-side endpoints ship in the s9pk, not the bot.** `GET /api/intake/match` and the
`source` provenance on `log-communication` live in `backend/server.py`, so they reach the box
only via an **s9pk build + install** — a bot restart won't deliver them. (Missed in v83: the