// changelog

v1.20.0

remote pr now syncs its review threads instead of re-posting them, and the new --since-last-review flag reviews only the commits added since CommitBrief's last review of the PR.

Released October 19, 2026

Added

  • remote pr --since-last-review. Every full-PR review remote pr submits now ends with a hidden <!-- commitbrief:reviewed=<head sha> --> marker. With the flag, the next run reads CommitBrief’s newest marked review and, when the PR head only moved forward by plain commits, reviews just that range (compare/<prev>...<head> through gh; local git is never written). When the head did not move it says so and posts nothing. A missing marker, a force-push, a merge commit in the range, or any step that cannot establish the range safely (unreadable review history, a commit list too long to inspect, a failed compare or diff request) falls back to a full review with a one-line notice. With --no-post the flag is ignored (no review history is consulted) and an info line says so. Findings are still anchored against the full PR diff; an incremental run resolves a vanished finding’s thread only when that thread is outdated and its file is in the new range, and never approves while one of CommitBrief’s threads is still open. Only full-PR reviews advance the marker: a run narrowed with --file, --dir, --exclude-file or --exclude-dir, or one whose scope came out empty, posts no marker, so the next incremental run continues from the last full review. In an incremental run a finding on a line that exists only on the range’s old side goes to the review body instead of an inline comment. See Incremental review.
  • since-last-review input on the GitHub Action’s comment mode passes the flag through. See GitHub Action.

Changed

  • remote pr now syncs instead of re-posting. Each inline comment carries a hidden marker (<!-- commitbrief:fp=<fingerprint> v=1 -->) so the next run recognises its own threads: a finding that is still present is left alone (or its comment body is edited in place when the text changed), a new finding is posted once, and a finding that disappeared has its thread resolved. A finding that reappears reopens the thread CommitBrief resolved. Threads a human resolved or reopened are never touched, and duplicates of one fingerprint collapse into a single thread (occurrences are listed as Also at:).
  • When CommitBrief cannot resolve a thread (no permission) it leaves a short No longer present as of <sha> / Present again as of <sha> reply instead, once per transition. Comments without a marker, written by someone else, or with an unknown marker version are never modified.
  • Comments posted by earlier versions carry no marker, so the first run on a pull request that was already reviewed posts its findings once more; from then on threads are synced.
  • remote pr prints a one-line sync summary on stderr: Synced: N posted · M updated · K unchanged · R resolved · Q replied · H held. If the review threads cannot be read, the run degrades to plain posting.
  • With --file, --dir, --exclude-file or --exclude-dir, remote pr only syncs threads on the files it actually reviewed; threads on other files are left alone, and a filter that matches no file skips the sync (the verdict is still submitted).