Repository navigation
Conversation
…done A review of a pull request the bot has reviewed before compares the pull request's merge-base diff now with its merge-base diff at the last reviewed head, and reviews only the hunks that differ, plus what the author took back, so a merge of the default branch or a rebase changes nothing by itself. The last reviewed head is fetched if it isn't in the checkout; when it can't be, the review is a full one. Only correctness reviews them, on Sonnet, with the earlier findings and the replies in their threads as data, and checks each unresolved finding. It posts only blockers and should-fixes on lines changed since the last review, never nits, and its summary says "No further findings above nits" when nothing at or above should-fix is left. A run whose reviewers all failed records the head reviewed before it. The first review is unchanged. Two eval cases replay re-reviews of #29 and of #30 with main merged in. Closes #24
There was a problem hiding this comment.
🤖 NCode Review at c06ad83: 12 new findings on the changed lines.
🤖 Review completeVerdict: 💬 Comment — This PR adds re-reviews. When the bot has reviewed a pull request before, it compares the merge-base diff now with the one at the last reviewed head, runs only 8 reviewers run — 8 findings (run details)
Skipped: api-compat, data-model, infrastructure, intent, performance Findings
Trial: findings are posted as review threads and in the check run. $0.80 on Amazon Bedrock, 95s, at b2d89c6. (how to interact) |
… test its wiring and fallbacks A re-review whose earlier review threads can't be read now says so and gives a comment verdict instead of approving. The choice between a re-review and a full review, the recorded head and the re-review trace move from main.ts into runReview, which is tested. Thread reads take the finding from the first comment and the replies from the newest 50. Adds tests for the comparison and thread-read fallbacks, fetchCommit with a non-SHA, the generated-files summary and the size caps; reuses severityRank, errorText and the configured default tier; unexports parseHunks.
|
/review |
There was a problem hiding this comment.
🤖 NCode Review at 6dce13d: 7 new findings on the changed lines.
Not on a changed line:
- 🟡 F7 Nit:
severityRankis defined twicesrc/results.ts:20. results.ts keeps its own copy of theseverityRankmap that review.ts now exports and rereview.ts imports. Fix: ImportseverityRankfrom./review.tsin results.ts and delete the local const.
|
Autopilot: answering #77 (comment) and #77 (review).
|
|
Autopilot: Round 2 answered. No blocker or should-fix is left open; the remaining threads are nits, answered above. Recommend merging once you've resolved them. |
There was a problem hiding this comment.
🤖 NCode Review at b2d89c6: 4 new findings on the changed lines.
3 more were already posted on this pull request.
Not on a changed line:
- 🟡 F6 Nit:
severityRankis defined twicesrc/results.ts:40. results.ts keeps a localseverityRankthat is identical to the one review.ts now exports and rereview.ts imports. Fix: ImportseverityRankfrom review.ts in results.ts and delete the local copy.
# Conflicts: # CHANGELOG.md # evals/cases.json # evals/run.ts # src/review.ts
# Conflicts: # evals/run.ts # src/main.ts # src/review.ts
A re-review now sends what it would post through #41's verification stage, as a first review does. A should-fix verification can't settle becomes a nit and isn't posted, and a re-review whose findings verification refuted or made nits never approves or says it's done.
|
Autopilot: merged Decision, in 5fff0ec: with |
README keeps both main's cost-ceiling paragraph and this branch's re-review sentence in the verification paragraph. The run-ceiling tests' charters get the reReviewPrompt this branch added to Charters.
|
Autopilot: answering #77 (review).
Also merged |
|
Autopilot: Round 3 answered. The review-round limit (3) is reached; no blocker or should-fix is left open. The new F1 repeats round 2's nit, and F3, F4 and F5 are nits, all declined above. F3 ( |
# Conflicts: # CHANGELOG.md # src/main.ts # src/review.ts
…erun on Bedrock runAgent now returns every call of a request as records, two when the credits ran out and it reran on Bedrock. The re-review's correctness call logs and keeps all of them, and a test checks that it gets the run's fallback. parsePosted now also returns the finding's id, which main's new marker test didn't expect.
# Conflicts: # README.md # evals/run.ts # src/review.ts
…d, as main's first review does Main's #71 drops such findings before posting and gives Results a dropped list; the re-review now does the same, lists every changed file under the same heading, and its tests carry the dropped list.
|
Autopilot: merged
|
A review of a pull request the bot has reviewed before is now a re-review. It compares the pull request's merge-base diff now with the same diff at the last reviewed head (from the summary marker), and reviews only the hunks that differ, plus what the author took out. Merging main in or rebasing changes nothing by itself. If the old head can't be fetched (a force-push), the run does a full review instead. A re-review runs only
correctnesson Sonnet. It sees the earlier bot findings and the replies in their threads as JSON data, and it reports a status for each unresolved finding. It posts only blockers and should-fixes on lines changed since the last review, never nits. Its summary says "No further findings above nits" when nothing at or above should-fix is left. The first review is unchanged.All the logic is in the new
src/rereview.ts. Other files only gain small hooks: exported helpers inreview.ts,gather.tsandthreads.ts,fetchCommitinfetch-head.ts, and the wiring inmain.ts. Hermetic tests intest/rereview.test.tsuse local git repos: a merge of main, a rebase plus force-push with the old head still fetchable or pruned, the posting filter, the roster (with a fake agent), the summary and verdict, and the thread reader. Two eval cases replay #29 and #30 round 8, the latter with main merged in. Their checks are worked out apart from the engine. I didn't run the paid eval (node evals/run.ts --only re-review-declined-trigger,re-review-merge-of-main).npm run typecheckandnpm test(101 tests) pass.Decisions:
<taken_back>, so a fix made by deleting a line still gets its finding checked.reviewThreads, the only API that says which threads are resolved. All earlier findings are context. Only unresolved ones get a status. Replies are included only from OWNER, MEMBER or COLLABORATOR, as for the description. If the threads can't be read, the re-review runs without them and logs a warning./reviewof the head already reviewed does a full review, since the command means review it again.Closes #24