Walk the default branch first, and keep ssh noise out of the room

Rooms mapped before the push watch existed carry no default_branch, so
the "report a commit as being on master, not on some stale branch that
also contains it" ordering never applied to them. Look it up once and
keep it.

known_hosts lives in the image, so it resets on every rebuild and the
first ssh connection printed "Permanently added ... to the list of known
hosts" straight into the room, prepended to the first assessment. Set
LogLevel ERROR in the generated ssh config; real errors still come back.

Corrects two claims in Current state that the API contradicts: the repo
has had three PRs, not zero, and their review threads for #2 and #3 are
orphaned in the room right now.
This commit is contained in:
Keysat
2026-08-21 10:49:55 -05:00
parent 7ac1267dd0
commit e5a187b507
3 changed files with 21 additions and 6 deletions
+13 -6
View File
@@ -36,7 +36,10 @@ flat JSON in a writable `state/` mount.
- **Run (container, on the Spark):** from `~/gitea-review-bot`, `docker compose up -d --build`
(host networking, `restart: unless-stopped`; read-only mounts of `.env`/`config.toml`/SSH key,
read-write `state/`). Logs: `docker compose logs -f`.
read-write `state/`). Logs: `docker compose logs -f`. `known_hosts` lives inside the image, so it
resets on every rebuild — the ssh config sets `LogLevel ERROR` so the first connection's
"Permanently added … to the list of known hosts" warning doesn't get prepended to a review or
assessment (it did, visibly, on 2026-08-21).
- **Deploy:** the Spark's `~/gitea-review-bot` is a Gitea clone tracking `master`; deploy =
`git fetch && git reset --hard origin/master && docker compose up -d --build`, **or one click on
this bot's tile in Spark Control's Bots tab** (shipped since spark-control v0.28.0, confirmed live:
@@ -207,12 +210,16 @@ reproduces it.
auto-publish → redacted). **PR #5 "Update index.html" is still open**, reviewed 2026-06-30, its thread
live in the room and waiting on a `merge`/`reject`. Push watch is **off** here.
- **ten31-brand** — onboarded 2026-08-18 to watch the interactive deck
(`design/deck/interactive/index.html`). It has had **zero PRs ever**, and collaborator `jonathan`
**is not blocked from `master`** — an earlier note here said he was, but the Gitea API says 18 of the
last 50 commits on `master` are his (`Jonathan Kirkwood <jonathan@ten31.vc>`, most recently
2026-08-21), pushed directly. That gap is what the push watch closes. His three `jonathan/*` branches
are all already merged into `master`. Every commit he has ever made touches exactly one file,
(`design/deck/interactive/index.html`). Collaborator `jonathan` uses **both** routes, so both are
now covered: three PRs (#1–#3, all his, all merged 08-19/08-20, all reviewed by the bot) **and**
direct pushes to `master` — 18 of the last 50 commits there are his
(`Jonathan Kirkwood <jonathan@ten31.vc>`, most recently 2026-08-21). Two earlier notes here were
wrong and are corrected: he is *not* blocked from pushing to `master`, and the repo has *not* had
zero PRs. Every commit he has made touches exactly one file,
`design/deck/interactive/index.html`, which is why `expected_paths` is that subtree.
The review threads for #2 and #3 are **orphaned in the room right now** — merged outside the bot,
so the stale prune dropped their roots without redacting. That is Next step 2 below, no longer
hypothetical.
**Next steps, in priority order:**
1. **Deploy the push watch and watch one real notice land** (see the pending redeploy above).