rustbot ยท GitHub

@glslang @claude

Three self-contradictions in address-pr-comments (#7), each a rule in one
section silently overridden by a rule in another.
The judge/advisory split had no effect: section 9's first gate rejected any
`open` row, and an advisory nit the stop policy declined to fix stayed
`open` forever. Ledger rows now carry `weight`, and `noted` is a terminal
status for an advisory ask deliberately left โ€” legal only on an advisory
row, so a judge's finding still cannot leave the gate unaddressed.
"Just the blocking ones" filtered on `pullRequestReview.state`, which is
frozen when the review is submitted. A reviewer who requests changes and
later approves leaves those comments joined to a CHANGES_REQUESTED object
permanently (confirmed on rust-lang/rust-analyzer#23019, where the current
verdict is APPROVED). Section 2 now folds the review history to one current
verdict per author, dropping COMMENTED since GitHub does not treat it as a
verdict; the filter and section 9's gate both read that instead.
The no-gh fork fallback produced a checkout with no upstream, so section 5's
push died on "no upstream branch" after the fixes were already written.
Section 0 now establishes the push target at checkout time and names the
case where there is none โ€” a fork without "allow edits from maintainers",
where the sweep must be replies-only rather than commits nobody can deliver.
Also swept the file for the same pattern: judge weight keyed to the reviewer
rather than their current verdict, "every judge is satisfied" not read as
"must have approved", GitHub's resolved flag separated from ledger status,
and sections 6 and 8 taught the new status.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Read the original on github.com โ†—