Add capture mode: /capture + per-room capture threads → cross-project inbox

A capture-thread message (or /capture <text> in any room) logs to standards/
INBOX.md via capture-note.sh — deterministic, no claude call — and confirms
in-thread; /triage stays the gate into each repo (D13). Thread roots seeded by
seed-capture-threads.py.
This commit is contained in:
Keysat
2026-06-16 14:59:38 -05:00
parent 4204b82c6b
commit 2bae2f3571
5 changed files with 310 additions and 21 deletions
+10 -3
View File
@@ -16,19 +16,26 @@ user = "@matrix-bridge-bot:<your-domain>" # a dedicated bot Matrix account (not
ssh_alias = "mac-bridge"
launcher = "/Users/macpro/Projects/<your-repo>/scripts/gui-launch.sh"
ask_launcher = "/Users/macpro/Projects/<your-repo>/scripts/ask-claude.sh" # headless `?`-prefix ask mode
capture_launcher = "/Users/macpro/Projects/<your-repo>/scripts/capture-note.sh" # `/capture` + capture-thread → standards/INBOX.md
# Container only: docker-entrypoint.sh generates ~/.ssh/config for `ssh_alias` from these.
# (On a host with `ssh_alias` already in ~/.ssh/config these are ignored.)
hostname = "10.0.0.0" # the Mac's address reachable from the Spark (e.g. WireGuard IP)
user = "<mac-username>"
# One [[room]] block per project.
# room_id — the internal Matrix room ID (starts with '!'), NOT the human alias (#name:domain)
# repo_dir — an absolute path on the Mac (note: ~/Projects uses a capital P)
# label — human-readable name, for logs and error messages
# room_id — the internal Matrix room ID (starts with '!'), NOT the alias (#name:domain)
# repo_dir — an absolute path on the Mac (note: ~/Projects uses a capital P)
# label — human-readable name, for logs and error messages
# capture_thread — (optional) root event ID ('$...') of this room's capture thread; a message
# in that thread is logged to standards/INBOX.md (tagged by `label`) instead of
# launching Claude. Seed these with: python3 scripts/seed-capture-threads.py
# capture_project — (optional) inbox tag for captures from this room; defaults to `label`.
# `/capture <text>` works in any room with no config; the thread just lets you skip the prefix.
[[room]]
room_id = "!exampleRoomId:your-domain"
repo_dir = "/Users/macpro/Projects/<your-repo>"
label = "<project-name>"
capture_thread = "$exampleThreadRootEventId"
[[room]]
room_id = "!anotherRoomId:your-domain"