23d21f306f4b91514877d6a05dfbf0eede79337b
The Deploy section claimed a Spark Control tile was "captured in the inbox" pending build. It isn't: spark-control has shipped this bot's tile since v0.28.0, verified live against the running dashboard. Deploy is one click. Record in Layout that the poll loop walks all mapped repos serially in one async task. That's why rooms can't interleave, and why a long review head-of-line-blocks the next room's poll at 3+ repos. Current state: prune the finished merge-redact narrative to a line, keep the stale-prune orphan as the concrete next step, and record the 2026-07-18 adjudication that cut ROADMAP to one phase.
gitea-review-bot
A thin Matrix bot that reviews and merges your Gitea pull requests, one review room per repo.
Separate from matrix-bridge (which runs interactive Claude Code sessions) — this bot's only job
is PR review.
How it works
- Create a Matrix room named like a repo and invite the bot. It auto-joins and maps the room to
<owner>/<repo>(and~/Projects/<repo>on the Mac), then posts an onboarding message. - It polls that repo's open PRs and posts each as a thread: a headless
claude -preview (with an optional subagent panel) run on the Mac over SSH. - In the thread:
merge(thenyes) orreject. A merge auto-deploys (if enabled) and then redacts the thread, so the room shows only open PRs; if the deploy fails, the thread still clears and a standalone "deploy manually" warning stays in the room.clearredacts an orphaned thread without touching the PR.
Pick which review agents run per room in chat: agents +reviewer +security -adjudicator.
Run (on the Spark)
- Copy
config.example.toml→config.tomland.env.example→.env; fill them in (Matrix creds,GITEA_TOKEN, the[mac]SSH alias + reused matrix-bridge wrapper paths,[gitea]). docker compose up -d --build. Logs:docker compose logs -f.
See AGENTS.md for the full design, placement, and decisions.
Languages
Python
93.5%
Shell
3.7%
Dockerfile
2.8%