Keysat 23d21f306f docs: correct Spark Control tile status, record serial poll loop, refresh Current state
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.
2026-07-18 10:21:19 -05:00

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

  1. 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.
  2. It polls that repo's open PRs and posts each as a thread: a headless claude -p review (with an optional subagent panel) run on the Mac over SSH.
  3. In the thread: merge (then yes) or reject. 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. clear redacts an orphaned thread without touching the PR.

Pick which review agents run per room in chat: agents +reviewer +security -adjudicator.

Run (on the Spark)

  1. Copy config.example.tomlconfig.toml and .env.example.env; fill them in (Matrix creds, GITEA_TOKEN, the [mac] SSH alias + reused matrix-bridge wrapper paths, [gitea]).
  2. docker compose up -d --build. Logs: docker compose logs -f.

See AGENTS.md for the full design, placement, and decisions.

S
Description
No description provided
Readme
90 KiB
Languages
Python 93.5%
Shell 3.7%
Dockerfile 2.8%