werkrevisor 0.39.0: a hint on a file outside the diff holds no merge #97

Merged
ai-reviewer merged 3 commits from claude-code/hint-outside-diff-holds-nothing into main 2026-10-12 17:30:44 +02:00
Collaborator

See docs/prs/2026-10-12-PR#97-hint-outside-diff-holds-nothing.md.

🤖 Generated with Claude Code

See docs/prs/2026-10-12-PR#97-hint-outside-diff-holds-nothing.md. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
claude-code added 1 commit 2026-10-12 17:24:19 +02:00
PR doc: a hint on a file outside the diff holds no merge
werkator build succeeded after 00:39
werkator/werkrevisor-statistics build succeeded after 01:04
3933f43ed8
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-code marked the pull request as ready for review 2026-10-12 17:25:32 +02:00
claude-code added 1 commit 2026-10-12 17:25:34 +02:00
werkrevisor 0.39.0: a hint on a file outside the diff holds no merge
werkator build succeeded after 00:38
ai-review/assessment AI review passed; approved by werkrevisor; merge waits for 2 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit
ai-review/gate build succeeded after 02:21
werkator/werkrevisor-statistics build succeeded after 01:27
3080aa70dc
No line comment could be resolved there; such a hint stands only in the result comment, like a hint on documentation.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
🟢 werkrevisor GREEN for 3080aa7, superseded by the result for 40eebbd

🟢 werkrevisor: GREEN / PASS

Gate: approved by werkrevisor; merge waits for 2 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.

Change kind: mixed.

Reasons

  • hint 4 changed file(s) that neither weaken the checks nor touch security according to Jev
  • hint 1 build change(s) of low risk according to Jev: statistics/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.02)
  • hint 8 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev
  • hint 1 changed file was given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (each larger than [review] max_full_file_chars = 80000): werkrevisor/cli.py
  • hint 2 finding(s) of low severity or rated minor by Jev: werkrevisor/cli.py:786, docs/prs/2026-10-12-PR#97-hint-outside-diff-holds-nothing.md:20

Findings

  1. Misleading Comment at werkrevisor/cli.py:786, severity unknown, counted as medium, hint, as a line comment

  2. Unclear Non-Goals at docs/prs/2026-10-12-PR#97-hint-outside-diff-holds-nothing.md:20, severity unknown, counted as medium, hint, as a line comment

Classifier

8 of 8 units passed all questions (1 PR document(s)).
3 answers ignored because of a confidence below [classifier] min_confidence.

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 26431, calls 1, tokens in 25647 / out 17692 (reasoning included in out), duration 135.9 s, cost 0.0289 USD (reported), classifier `jev-1.13.0` calls 8, tokens in 5608, cost 0.0002 USD, finding judge `jev-1.13.0` calls 2, tokens in 2810, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 22854 / out 326, cost 0.0030 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 2556 / out 1358, cost 0.0024 USD (reported), PR document check `jev-1.13.0` calls 8, tokens in 10913, cost 0.0005 USD, build file judge `jev-1.13.0` calls 5, tokens in 3979, cost 0.0002 USD, phases: path_judge 0.5 s, classifier 0.5 s, change_summary 7.0 s, doc_check 0.5 s, context 4.6 s, model_review 122.0 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 53afb9b).
Reviewed head `3080aa70dc6ad23fbbae4103d58dc36c7ae52a84` against base `53afb9b09bc830326797fd27551d6d57e462db54`, werkrevisor 0.38.2.
<!-- werkrevisor:3080aa70dc6ad23fbbae4103d58dc36c7ae52a84 --> <!-- werkrevisor-verdict:GREEN --> <!-- werkrevisor-blocks:84c00ee84d6cad66de35e23c6c7f4e3a,5b4f79f0d1ef48fe7c385dd9e2df2da9,cdb00ef2beda16ae2e304204e6f65653,799291d32a589e06f6343e2bce07d3ab,3a340554029e5e3611a6408940a47924,7d67eda46e54e60522f885d803223c55,27bfc46231b985fceb98e3d49af28fa2,d353acf79b89ac6e67a5c1001b685274,df7f6a25216a1bc87c6465c7516b97ba,ffe9039f0494264bc3e47d8430c6129c,bf32205ce61faab420d3854e5ab7f56b,40faf7ede28c8cb64cbc254cd4f1c779,a053f80cbf683ff814aa5142ad962b05,b6cfcf07b5647421695f2770aab51778,312c60343d63dabcd1aec39cfd74bdaa,dbdb3a52b12ba2e89a6a1a17870150cd,dbdb3a52b12ba2e89a6a1a17870150cd,486f0b4fbd998f7ef43b23ddf6edaa0b,ea409f78dc5b0bfd98d71e6324cfeac0 --> <!-- werkrevisor-folded --> <details><summary>🟢 werkrevisor GREEN for <code>3080aa7</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/97#issuecomment-4846">the result for <code>40eebbd</code></a></summary> ## 🟢 werkrevisor: GREEN / PASS Gate: approved by werkrevisor; merge waits for 2 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit. Change kind: `mixed`. ### Reasons - **hint** 4 changed file(s) that neither weaken the checks nor touch security according to Jev - **hint** 1 build change(s) of low risk according to Jev: statistics/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.02) - **hint** 8 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev - **hint** 1 changed file was given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (each larger than [review] max_full_file_chars = 80000): werkrevisor/cli.py - **hint** 2 finding(s) of low severity or rated minor by Jev: werkrevisor/cli.py:786, docs/prs/2026-10-12-PR#97-hint-outside-diff-holds-nothing.md:20 ### Findings 1. **Misleading Comment** at `werkrevisor/cli.py:786`, severity unknown, counted as medium, hint, as a line comment 2. **Unclear Non-Goals** at `docs/prs/2026-10-12-PR#97-hint-outside-diff-holds-nothing.md:20`, severity unknown, counted as medium, hint, as a line comment ### Classifier 8 of 8 units passed all questions (1 PR document(s)). 3 answers ignored because of a confidence below [classifier] min_confidence. <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 26431, calls 1, tokens in 25647 / out 17692 (reasoning included in out), duration 135.9 s, cost 0.0289 USD (reported), classifier `jev-1.13.0` calls 8, tokens in 5608, cost 0.0002 USD, finding judge `jev-1.13.0` calls 2, tokens in 2810, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 22854 / out 326, cost 0.0030 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 2556 / out 1358, cost 0.0024 USD (reported), PR document check `jev-1.13.0` calls 8, tokens in 10913, cost 0.0005 USD, build file judge `jev-1.13.0` calls 5, tokens in 3979, cost 0.0002 USD, phases: path_judge 0.5 s, classifier 0.5 s, change_summary 7.0 s, doc_check 0.5 s, context 4.6 s, model_review 122.0 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 53afb9b).<br> Reviewed head `3080aa70dc6ad23fbbae4103d58dc36c7ae52a84` against base `53afb9b09bc830326797fd27551d6d57e462db54`, werkrevisor 0.38.2. </sub> </details>
ai-reviewer approved these changes 2026-10-12 17:27:52 +02:00
Dismissed
ai-reviewer left a comment
Collaborator

werkrevisor: GREEN / PASS for 3080aa70dc6ad23fbbae4103d58dc36c7ae52a84.
The result comment of werkrevisor holds the details.

werkrevisor: GREEN / PASS for `3080aa70dc6ad23fbbae4103d58dc36c7ae52a84`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:3080aa70dc6ad23fbbae4103d58dc36c7ae52a84 -->
@@ -0,0 +17,4 @@
- No change for a hint that Gitea refused as a line comment, or for writing rule violations beyond the 10 line comments;
both are on changed lines and still hold the merge.
- No change for YELLOW, ORANGE and RED: the verdict of a finding stays as it is.
Collaborator

Unclear Non-Goals, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.66, severity 1.2 of 3

The Non-Goals bullet "No change for YELLOW, ORANGE and RED: the verdict of a finding stays as it is" is vague. "The verdict of a finding stays as it is" does not explain what is preserved for YELLOW/ORANGE/RED findings; a reader has to infer that they still hold the merge. A clearer statement (e.g., "YELLOW/ORANGE/RED findings still hold the merge whether the file is in the diff or not") would make the preserved behaviour explicit.

**Unclear Non-Goals**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.66, severity 1.2 of 3 The Non-Goals bullet "No change for YELLOW, ORANGE and RED: the verdict of a finding stays as it is" is vague. "The verdict of a finding stays as it is" does not explain what is preserved for YELLOW/ORANGE/RED findings; a reader has to infer that they still hold the merge. A clearer statement (e.g., "YELLOW/ORANGE/RED findings still hold the merge whether the file is in the diff or not") would make the preserved behaviour explicit.
Author
Collaborator

Fixed in 40eebbd.

Fixed in `40eebbd`.
claude-code marked this conversation as resolved
@@ -784,2 +784,3 @@
for i, (f, v) in enumerate(zip(result.findings, verdicts)):
if f.file not in result.changed_paths or f.start_line <= 0:
if f.file not in result.changed_paths:
# No line comment could be resolved there; the hint would hold the merge until a restart.
Collaborator

Misleading Comment, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.67, severity 1.3 of 3

The comment "No line comment could be resolved there; the hint would hold the merge until a restart." is positioned before the GREEN check that adds the index to free_hints, so it describes only the non-GREEN branch. For GREEN findings on a file outside the diff, the hint is added to free_hints and does NOT hold the merge, contrary to the comment. A reader who skims the comment may not notice the immediate exception and assume all hints outside the diff still hold. A clearer wording (e.g., mentioning the GREEN exemption) would prevent this confusion.

**Misleading Comment**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.67, severity 1.3 of 3 The comment "No line comment could be resolved there; the hint would hold the merge until a restart." is positioned before the GREEN check that adds the index to `free_hints`, so it describes only the non-GREEN branch. For GREEN findings on a file outside the diff, the hint is added to `free_hints` and does NOT hold the merge, contrary to the comment. A reader who skims the comment may not notice the immediate exception and assume all hints outside the diff still hold. A clearer wording (e.g., mentioning the GREEN exemption) would prevent this confusion.
Author
Collaborator

Fixed in 40eebbd.

Fixed in `40eebbd`.
claude-code marked this conversation as resolved
claude-code added 1 commit 2026-10-12 17:28:30 +02:00
Fix review hints: comment on free hints, Non-Goal on other verdicts
werkator build succeeded after 00:23
ai-review/assessment AI review passed; approved by werkrevisor; merge scheduled for when the checks succeed
werkator/werkrevisor-statistics build succeeded after 01:15
ai-review/gate build succeeded after 02:09
40eebbdea7
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-code dismissed ai-reviewer's review 2026-10-12 17:28:30 +02:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

Collaborator

🟢 werkrevisor: GREEN / PASS

Change kind: mixed.

Reasons

  • hint approval of werkrevisor for 3080aa7 not carried over: 2 approved block(s) are missing
  • hint 4 changed file(s) that neither weaken the checks nor touch security according to Jev
  • hint 1 build change(s) of low risk according to Jev: statistics/build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01)
  • hint 8 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev
  • hint 1 changed file was given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (each larger than [review] max_full_file_chars = 80000): werkrevisor/cli.py

Classifier

8 of 8 units passed all questions (1 PR document(s)).
3 answers ignored because of a confidence below [classifier] min_confidence.

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 26076, calls 1, tokens in 25299 / out 14049 (reasoning included in out), duration 118.0 s, cost 0.0244 USD (reported), classifier `jev-1.13.0` calls 8, tokens in 5614, cost 0.0002 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 22856 / out 300, cost 0.0030 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 2557 / out 1198, cost 0.0022 USD (reported), PR document check `jev-1.13.0` calls 8, tokens in 10591, cost 0.0004 USD, build file judge `jev-1.13.0` calls 5, tokens in 3980, cost 0.0002 USD, phases: path_judge 0.5 s, classifier 0.5 s, change_summary 7.5 s, doc_check 0.5 s, context 6.1 s, model_review 101.1 s, config: defaults + host + repository (.werkrevisor.toml at main 53afb9b).
Reviewed head `40eebbdea75b06238f00f6fe6ff811c428a9b9ec` against base `53afb9b09bc830326797fd27551d6d57e462db54`, werkrevisor 0.38.2.
<!-- werkrevisor:40eebbdea75b06238f00f6fe6ff811c428a9b9ec --> <!-- werkrevisor-verdict:GREEN --> <!-- werkrevisor-blocks:84c00ee84d6cad66de35e23c6c7f4e3a,5b4f79f0d1ef48fe7c385dd9e2df2da9,ca0e5219755b5e1fb2aefffaa722df56,799291d32a589e06f6343e2bce07d3ab,3a340554029e5e3611a6408940a47924,7d67eda46e54e60522f885d803223c55,27bfc46231b985fceb98e3d49af28fa2,d353acf79b89ac6e67a5c1001b685274,df7f6a25216a1bc87c6465c7516b97ba,ffe9039f0494264bc3e47d8430c6129c,bf32205ce61faab420d3854e5ab7f56b,40faf7ede28c8cb64cbc254cd4f1c779,a053f80cbf683ff814aa5142ad962b05,b6cfcf07b5647421695f2770aab51778,d460ad0c0c4a4159a79d48c811864520,dbdb3a52b12ba2e89a6a1a17870150cd,dbdb3a52b12ba2e89a6a1a17870150cd,486f0b4fbd998f7ef43b23ddf6edaa0b,ea409f78dc5b0bfd98d71e6324cfeac0 --> ## 🟢 werkrevisor: GREEN / PASS Change kind: `mixed`. ### Reasons - **hint** approval of werkrevisor for `3080aa7` not carried over: 2 approved block(s) are missing - **hint** 4 changed file(s) that neither weaken the checks nor touch security according to Jev - **hint** 1 build change(s) of low risk according to Jev: statistics/build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01) - **hint** 8 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev - **hint** 1 changed file was given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (each larger than [review] max_full_file_chars = 80000): werkrevisor/cli.py ### Classifier 8 of 8 units passed all questions (1 PR document(s)). 3 answers ignored because of a confidence below [classifier] min_confidence. <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 26076, calls 1, tokens in 25299 / out 14049 (reasoning included in out), duration 118.0 s, cost 0.0244 USD (reported), classifier `jev-1.13.0` calls 8, tokens in 5614, cost 0.0002 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 22856 / out 300, cost 0.0030 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 2557 / out 1198, cost 0.0022 USD (reported), PR document check `jev-1.13.0` calls 8, tokens in 10591, cost 0.0004 USD, build file judge `jev-1.13.0` calls 5, tokens in 3980, cost 0.0002 USD, phases: path_judge 0.5 s, classifier 0.5 s, change_summary 7.5 s, doc_check 0.5 s, context 6.1 s, model_review 101.1 s, config: defaults + host + repository (.werkrevisor.toml at main 53afb9b).<br> Reviewed head `40eebbdea75b06238f00f6fe6ff811c428a9b9ec` against base `53afb9b09bc830326797fd27551d6d57e462db54`, werkrevisor 0.38.2. </sub>
ai-reviewer left a comment
Collaborator

werkrevisor: GREEN / PASS for 40eebbdea75b06238f00f6fe6ff811c428a9b9ec.
The result comment of werkrevisor holds the details.

werkrevisor: GREEN / PASS for `40eebbdea75b06238f00f6fe6ff811c428a9b9ec`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:40eebbdea75b06238f00f6fe6ff811c428a9b9ec -->
ai-reviewer scheduled this pull request to auto merge when all checks succeed 2026-10-12 17:30:34 +02:00
ai-reviewer merged commit f85023c0a6 into main 2026-10-12 17:30:44 +02:00
ai-reviewer deleted branch claude-code/hint-outside-diff-holds-nothing 2026-10-12 17:30:45 +02:00
ai-reviewer left a comment
Collaborator

Codex review of 3080aa70dc6ad23fbbae4103d58dc36c7ae52a84

Codex review of `3080aa70dc6ad23fbbae4103d58dc36c7ae52a84` <!-- werkrevisor-codex -->
@@ -783,3 +783,3 @@
comments = []
for i, (f, v) in enumerate(zip(result.findings, verdicts)):
if f.file not in result.changed_paths or f.start_line <= 0:
if f.file not in result.changed_paths:
Collaborator

[high] Deleted files incorrectly qualify as outside the diff (Codex review)

_review populates changed_paths with only non-deleted files (line 131). Consequently, this branch also exempts GREEN findings about files deleted by the PR, although those files are part of the diff. A reproduction with a removed app.py classified its hint as free and scheduled automerge. Distinguish files absent from the PR from changed files that cannot receive a new-side line comment.

Fix it, or reply why it does not hold, and resolve this comment.

**[high] Deleted files incorrectly qualify as outside the diff** (Codex review) `_review` populates `changed_paths` with only non-deleted files (line 131). Consequently, this branch also exempts GREEN findings about files deleted by the PR, although those files are part of the diff. A reproduction with a removed `app.py` classified its hint as free and scheduled automerge. Distinguish files absent from the PR from changed files that cannot receive a new-side line comment. Fix it, or reply why it does not hold, and resolve this comment. <!-- werkrevisor-codex -->
Collaborator

Codex review: critical

This change weakens the CI merge gate by allowing automerge with previously blocking hints. It therefore requires human review.

Findings

  1. [high] Deleted files incorrectly qualify as outside the diff at werkrevisor/cli.py:785, as a line comment

This review only advises; it holds no merge.

Model `gpt-6-astra`, effort high, tokens in 333986 (cached 282624) / out 1969, 572.2 s, 14 commands; reviewed head `3080aa70dc6ad23fbbae4103d58dc36c7ae52a84`.
<!-- werkrevisor-codex:3080aa70dc6ad23fbbae4103d58dc36c7ae52a84 --> <!-- werkrevisor-codex-critical:true --> <!-- werkrevisor-codex-unattached:0 --> <!-- werkrevisor-codex --> ## Codex review: critical This change weakens the CI merge gate by allowing automerge with previously blocking hints. It therefore requires human review. ### Findings 1. **[high] Deleted files incorrectly qualify as outside the diff** at `werkrevisor/cli.py:785`, as a line comment This review only advises; it holds no merge. <sub> Model `gpt-6-astra`, effort high, tokens in 333986 (cached 282624) / out 1969, 572.2 s, 14 commands; reviewed head `3080aa70dc6ad23fbbae4103d58dc36c7ae52a84`. </sub>
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mi/werkrevisor#97