Keysat 907b83388b Adjudicate 2026-07-29: drop the wedged-loop heartbeat, add a hang-bounding fold-in
Heartbeat dropped: a Docker healthcheck badge restarts nothing under this
container's setup, spark-control's tile would need its own change to read it,
and serial per-room polling (a review may run 10 min) makes any staleness
threshold either too loose to be timely or noisy mid-review. No wedge has ever
been observed. Reopens on an observed wedge plus confirmation the tile already
renders Docker health.

Replaced by a fold-in, since the realistic failure is a hang rather than a
crash: bound the two unbounded awaits in src/bot.py and stop the process if the
poll task ever dies, letting restart: unless-stopped and the existing
spark-control tile cover it.

AGENTS.md Current state reconciled to match. Phase 3's onboard-3-repos verify
item stands (inside the 14-day skip window).
2026-07-29 20:09:42 -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%