Skip to content

fix(review): require every current-head file on REQUEST_CHANGES - #994

Draft
seonghobae wants to merge 8 commits into
mainfrom
fix/review-request-changes-name-every-file
Draft

fix(review): require every current-head file on REQUEST_CHANGES#994
seonghobae wants to merge 8 commits into
mainfrom
fix/review-request-changes-name-every-file

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Summary

OpenCode APPROVE already fails closed when any current-head file is unnamed. REQUEST_CHANGES could still cite one blocker and ignore the rest of the diff, which is thinner than a CodeRabbit per-file walk.

This increment extends unnamed_changed_files so a finding path counts as naming that file. REQUEST_CHANGES fails closed when any trusted current-head path is neither named in reason/summary nor present as a finding path (IEEE 1028).

Verification

  • Two-file fixture: finding on example.py only is rejected; finding plus a named no-blocker on strix.yml is accepted; findings covering both paths are accepted.
  • coverage run -m pytest tests && coverage report --show-missing twice at 100% (979 passed, scripts/ci 100% statement/branch), then interrogate 100%.

@cwl-noema-review

A one-path citation was enough to pass the changed-file gate, so
approvals could skip the rest of the diff. Reject APPROVE when any
path from the trusted changed-file artifact is unnamed, including
after bounded-evidence repair.
Record that every current-head changed item must receive a review
disposition. Naming one path cannot authorize APPROVE when the trusted
artifact lists more files. Force the trusted-uv installer tests onto
the linux x86_64 runner path and add the control-plane architecture
diagram.
Naming example.py.bak contains example.py as a prefix substring, so a
raw membership check treated the shorter file as reviewed. Count a
current-head path only when it appears as a whole token; a sentence
period after .yml is not a continuation.
A REQUEST_CHANGES review that names one blocker and ignores the rest
of the diff is not a file-by-file walk. Finding paths and named
no-blocker dispositions count; omitted files fail closed (IEEE 1028).
@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 07567e08-40fc-4ebf-bd36-fd7f36144983

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae

Copy link
Copy Markdown
Contributor Author

@cwl-noema-review

@seonghobae
seonghobae enabled auto-merge (squash) August 13, 2026 11:41
REQUEST_CHANGES already named a file via finding.path. A suggested
diff whose a/ and b/ headers are the same current-head path is also a
disposition. A mismatched pair names neither side.
@seonghobae

Copy link
Copy Markdown
Contributor Author

@cwl-noema-review exact current head 990b7185 — REQUEST_CHANGES must still name every current-head file. Head moved; previous review is not evidence for this SHA.

LLM suggested diffs often omit the diff --git line. Matching
--- a/X and +++ b/X headers still dispose current-head X.
A mismatched pair names neither path.
@seonghobae

Copy link
Copy Markdown
Contributor Author

@cwl-noema-review exact current head 06a14ece — REQUEST_CHANGES must name every current-head file, including paths recovered from matching --- a/ / +++ b/ headers when diff --git is omitted. Head moved after 990b7185. Independent Noema APPROVE on this SHA is required. Do not wait on two-approval. Reviewers remain edit: deny. NVIDIA_NIM_API_KEY only.

Materialize a base Python lock only when every package line is an exact
SHA-256 pin or a two-token relative -r/--requirement include of a
candidate lock path. A lone --require-hashes directive, ./dotted paths,
and -r other-hashes.txt no longer enter the trusted build context.
@seonghobae

Copy link
Copy Markdown
Contributor Author

@cwl-noema-review exact current head 4211d266 — REQUEST_CHANGES names every current-head file; coverage accepts only bounded relative requirement includes. Head moved after 06a14ece. Independent Noema APPROVE on this SHA is required. Do not wait on two-approval. Reviewers remain edit: deny. NVIDIA_NIM_API_KEY only.

@seonghobae
seonghobae marked this pull request as draft August 14, 2026 09:18
auto-merge was automatically disabled August 14, 2026 09:18

Pull request was converted to draft

Copy link
Copy Markdown
Contributor Author

Designated as the canonical cumulative per-file disposition branch and returned to Draft.

This tree includes #958’s rule that APPROVE must name every trusted current-head path and extends it correctly so REQUEST_CHANGES may satisfy a file through either reason/summary disposition or a finding on that exact path. #958 is therefore a predecessor slice, not a separate merge unit.

Before Ready, rebuild from protected main and remove the unrelated trusted-uv materializer source/tests. Retain only the normalizer and focused APPROVE/REQUEST_CHANGES multi-file regressions, the per-file disposition doctoring record, directly attributable governance/changelog evidence. Then update the body to describe both verdict classes and reacquire exact-head quality/security/supply-chain and independent-review evidence.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant