nisse-review: later reviews, replies, rounds, stop and review (M7.5)

Back on a PR it reviewed: a new head gets a later review of the commits
since (each one's diff, through the API) and of its earlier points; what
was said since gets replies, answered where it was said or skipped with a
reason. It signs off once and stays quiet while still happy. Past
tuning.review.max_rounds it sums up for the operator and goes quiet,
until a push or someone other than the PR's author joins in. An
operator's `stop` quiets it; `review` asks for a fresh review.

Reviews carry numbered markers and replies their point's key, so
recovery posts nothing twice.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J5Utyfzw7gF7UhjRDEtjTk
This commit is contained in:
dongarandClaude Opus 5.5 committed 2026-10-17 07:06:06 +00:00
1 parent 7e73b8fb37
commit 37bbac7e72
14 files changed
+1268 -157

No files matched your search

+11 -4
View File
@@ -902,7 +902,11 @@ else) towards better changes.
what changed, judged by reading them; and the CI result as Gitea reports it.
- **It discusses on the PR,** in inline threads and top-level comments, and
answers replies to its points: it concedes a good argument and holds a point it
still believes, with reasons.
still believes, with reasons. Each thing said to it since its last look is
answered where it was said, or skipped with a reason (a bot's notice, say):
the model decides, as `nisse-dev` does (D5).
- **Nothing to raise** is said once, as a short sign-off review. While it stays
happy, a later look that finds nothing new posts nothing.
### R2. Rounds
@@ -910,7 +914,8 @@ Two agents can argue forever, so a PR's exchanges are capped.
- **A round** is one review or set of replies the reviewer posts. After a capped
number of rounds (a tuning value) it posts a summary of what is still open, for
the operator, and stops answering on that PR.
the operator, and stops answering on that PR. Pushes have no cap of their own:
each brings new code (operator).
- **The count resets** when someone other than the reviewer and the PR's agent
author comments (in practice, the operator has joined the discussion), and when
the PR gets a new push: new code is worth a fresh look.
@@ -955,8 +960,10 @@ Two agents can argue forever, so a PR's exchanges are capped.
`ask_expert` for a frontier model's view (L9).
- **No Matrix room** for now: the PR is its conversation. If every agent gets a
room, it gets one too. Until then the operator stops it on a PR by commenting
`stop` there (a review is asked for again with `review`), and stops it entirely
by stopping its container.
`stop` there (a review is asked for again with `review`: a fresh one of the
whole PR, with the round count reset), and stops it entirely by stopping its
container. A command is an operator's whole top-level comment, acknowledged
with a reaction rather than a comment the PR's author would have to answer.
- **Its own identity** (L12): a Gitea account (`nisse-review`) with read access to
the repositories it reviews, its own token and LiteLLM key, and its own
container on the agent host (X1), reaching only Gitea and LiteLLM.