v0.3.1
A patch release of disclosure and correctness fixes found dogfooding v0.3.0: truncation is now disclosed on every surface (the formal review body, the check run, and the on-demand commands), the PR summary reports GitHub's authoritative totals, /summary regenerates a deleted summary comment, sequence diagrams render again, CI hold copy no longer mislabels checks as required, and the label reconciler sees every page of a PR's labels.
Fixed
-
A truncated review with findings discloses the partial review in the body and check run: on a truncated diff, a review that produced findings carried the truncation banner only in the PR summary comment — which is posted best-effort and only on first reviews — so if that post failed or was skipped, nothing on the PR said the review was partial. The formal review body now appends the partial-review notice whenever the diff was truncated (including when every finding anchored inline, where previously no body was posted at all), and the check-run findings caption discloses the omitted-file count alongside the counts (#338)
-
/summaryregenerates a deleted summary comment: the command gated on persistence state ("a review ever completed for this PR") rather than the live PR, so once the summary comment was deleted it could never be regenerated — and/summarylogged that a summary "already exists" when none was present. It now checks the PR for the bot's own summary comment and, when it is missing, re-posts it (even on a PR that already carries a formal review, where the first-review gate alone would suppress it); it still no-ops when the summary is present. The log line and README wording no longer claim a summary exists when it doesn't (#297) -
PR summary "Changes Overview" no longer undercounts files/lines: the overview reported the file and line totals summed over the bot's reviewable file list — the ignore-glob-filtered subset — so a PR with any ignore-globbed file (e.g. a lockfile) showed fewer files and lines than GitHub's own totals, and the changed-files walkthrough's "…and N more file(s)" rollup was short by the same amount. The overview and the rollup now report GitHub's authoritative
changed_files/additions/deletionsfor the PR (fetched from the pulls endpoint), while the walkthrough table still lists only the reviewable files. Truncation gating and disclosure are unchanged, and if the PR totals can't be fetched the summary falls back to the previous diff-derived counts (#298) -
Mermaid
sequenceDiagramin the PR summary now renders on GitHub: the opt-in control-flow diagram (#181) could emit a sequence diagram that declared participants with flowchart bracket-label syntax (participant O["ReviewOrchestrator"]) and quoted its message text — a side effect of the "quote every node label, whatever the shape" guidance that had been added for flowcharts (#299). Bracket labels are a parse error in a sequence diagram, so GitHub silently dropped the whole diagram. The diagram prompt now scopes the double-quote rule to flowchart node labels and gives sequence diagrams their own syntax (participant X as Label, plain message text after the colon); as a defensive backstop the summary now drops — rather than posts — a sequence diagram whose participant/actor lines still carry a bracket label (#311) -
/describe,/changelog, and/add-docsdisclose a truncated diff: the three on-demand commands run against the same size-capped diff as the review path, but silently dropped the omitted-file count — on a large PR they posted a description, changelog entry, or doc suggestions derived from a partial diff and presented them as complete. Each command's comment now ends with a partial-coverage disclosure naming the omitted-file count whenever files were dropped, reusing the review path's wording; nothing is appended when the diff was read in full (#296) -
CI hold copy no longer calls checks "required" when the required set is unknown: when branch-protection required contexts cannot be resolved, the bot fails closed and gates on every non-passing check — but the check-run summary and PR summary still described those checks as required, which branch protection never named. The copy now uses neutral "CI check(s)" wording in that mode and keeps the accurate "required" wording when a concrete required list was resolved; the gating behavior itself is unchanged (#302)
-
Label reconciliation sees every page of a PR's current labels: the per-PR label budget was computed from the first page of the PR's labels only (GitHub paginates at 100), so a PR carrying more than a page of labels could have its budget undercounted and labels re-applied past the
max-labelsbound over successive re-reviews. The current-label fetch now walks every page, and a mid-walk fetch failure keeps the pages already read rather than discarding them (#304)