The Codex runner collects the ready PRs of all configured repositories and reviews them by the time of their werkrevisor result, oldest first.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
claude-code
marked the pull request as ready for review 2026-10-17 14:31:38 +02:00
Gate: approved by werkrevisor; merge conflict with main: the author rebases the branch onto main and pushes.
Change kind: mixed.
Reasons
hint 3 changed file(s) that neither weaken the checks, touch security nor show a risk category of the repository config 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 7 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3, and its 9 change(s) belong to the PR document, according to Jev
Classifier
7 of 7 units passed all questions (1 PR document(s)).
2 answers ignored because of a confidence below [classifier] min_confidence.
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 23151, calls 1, tokens in 22290 / out 16185 (reasoning included in out), duration 107.2 s, cost 0.0261 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 5731, cost 0.0002 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4138 / out 2578, cost 0.0043 USD (reported), PR document check `jev-1.13.0` calls 16, tokens in 27186, cost 0.0011 USD, build file judge `jev-1.13.0` calls 4, tokens in 5439, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, change_summary 22.4 s, doc_check 1.2 s, context 0.2 s, model_review 82.2 s, config: defaults + host + repository (.werkrevisor.toml at main 841bc82).
Reviewed head `83e913a727dbfce3d62aec96005706e8f70f4cae` against base `841bc82867d7cb165175f6002430cf973fbb160f`, werkrevisor 0.46.0.
<!-- werkrevisor:83e913a727dbfce3d62aec96005706e8f70f4cae -->
<!-- werkrevisor-verdict:GREEN -->
<!-- werkrevisor-blocks:1694927d6f56d041c180a9c2755a7af1,9ba4a2a324ae918adb4630f930797839,dcee0b198c2eb12e9ed595d5f6063fbb,6b3dafc5da968ae880954c1aba5d5f6f,ceff83097266a767333b168cee424299,507cb0ad5aa2b18e30f8b410e67923a0,27bb94eeff08fd51309cf2690fd33135,736e36807c0a3f7e502614bc246c05a8,c660560269d2988074bb09d45cf09efd,fccf0b339b61e397d82ae9632b6f2b95,be51c6fcf28c62888f7d033e09f144e6,555a7e2124674ac18c5701a0d8a631ae,cd371e437bf6068354c355a2a5b0752b,1a8f2357c178b7bcd91312b2c3c4f089,dbd91788a2727e1154690e68678d3b22,a8c2eee2ff21aaad2b79b792ec004ea1,5450d2779a93277f963437761fcbf7e8,3341e2cb3bea87db83bf5a50dcfea8d5,57299ee80f2782d7af5b4d764223b360,f0eaa599b80812166c23bbeb7c4aa243,3c47a723fbeb3ceb7a7df1c29b2c3c16,d744a7f2182e4caf169f70022e8d1abc,9762c29c3b519adbcb7ea0aeacd14fce,2bc7b47d99717cfe300afaff2c28285a,93e01313b3403ecff7ec4b07027a24de,2bf8ce60d8f18b16c5d8eb0751ae9acd,ed882c732c6b1c9a6f22aac0b8af2614,d744a7f2182e4caf169f70022e8d1abc,0e309e3c7f094103668b89144edd4c45,3570f1b08b01139ba9641bc30e5239a6,7b96d92f6e6b7af5e9f7732093e9b5c7 -->
<!-- werkrevisor-folded -->
<details><summary>🟢 werkrevisor GREEN for <code>83e913a</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/119#issuecomment-6262">the result for <code>f55b104</code></a></summary>
## 🟢 werkrevisor: GREEN / PASS
Gate: approved by werkrevisor; merge conflict with main: the author rebases the branch onto main and pushes.
Change kind: `mixed`.
### Reasons
- **hint** 3 changed file(s) that neither weaken the checks, touch security nor show a risk category of the repository config 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** 7 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3, and its 9 change(s) belong to the PR document, according to Jev
### Classifier
7 of 7 units passed all questions (1 PR document(s)).
2 answers ignored because of a confidence below [classifier] min_confidence.
<sub>
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 23151, calls 1, tokens in 22290 / out 16185 (reasoning included in out), duration 107.2 s, cost 0.0261 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 5731, cost 0.0002 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4138 / out 2578, cost 0.0043 USD (reported), PR document check `jev-1.13.0` calls 16, tokens in 27186, cost 0.0011 USD, build file judge `jev-1.13.0` calls 4, tokens in 5439, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, change_summary 22.4 s, doc_check 1.2 s, context 0.2 s, model_review 82.2 s, config: defaults + host + repository (.werkrevisor.toml at main 841bc82).<br>
Reviewed head `83e913a727dbfce3d62aec96005706e8f70f4cae` against base `841bc82867d7cb165175f6002430cf973fbb160f`, werkrevisor 0.46.0.
</sub>
</details>
werkrevisor: GREEN / PASS for 83e913a727dbfce3d62aec96005706e8f70f4cae.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `83e913a727dbfce3d62aec96005706e8f70f4cae`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:83e913a727dbfce3d62aec96005706e8f70f4cae -->
[medium] A later collection failure discards earlier ready PRs (Codex review)
run_repository returns its candidates only after processing every PR. If fetching comments or updating a gate for a later PR raises an exception, all previously collected candidates from that repository are discarded. An in-memory reproduction with a ready first PR and an HTTP 500 on the second reviews the first PR on the merge base but reviews nothing on this head. A recurring failure therefore blocks healthy PRs even when review quota remains.
Fix it, or reply why it does not hold, and resolve this comment.
**[medium] A later collection failure discards earlier ready PRs** (Codex review)
run_repository returns its candidates only after processing every PR. If fetching comments or updating a gate for a later PR raises an exception, all previously collected candidates from that repository are discarded. An in-memory reproduction with a ready first PR and an HTTP 500 on the second reviews the first PR on the merge base but reviews nothing on this head. A recurring failure therefore blocks healthy PRs even when review quota remains.
Fix it, or reply why it does not hold, and resolve this comment.
<!-- werkrevisor-codex -->
Fixed in f55b104: run_repository collects each PR in its own try; a failing PR is logged and the other PRs of the repository stay candidates. test_a_failing_pr_hides_not_the_other_ready_prs_of_its_repository fails without the fix and passes with it.
Fixed in `f55b104`: `run_repository` collects each PR in its own `try`; a failing PR is logged and the other PRs of the repository stay candidates.
`test_a_failing_pr_hides_not_the_other_ready_prs_of_its_repository` fails without the fix and passes with it.
The change affects review scheduling and refactors existing status updates without weakening approval requirements or changing authentication, permissions, or data protection.
Findings
[medium] A later collection failure discards earlier ready PRs at werkrevisor/codexrunner.py:225, as a line comment
The merge waits for the status ai-review/codex: every line comment resolved, and the approval of a human for a critical PR or for a finding that is only here.
Model `gpt-6-astra`, effort high, tokens in 222518 (cached 174848) / out 2372, 72.1 s, 10 commands; reviewed head `83e913a727dbfce3d62aec96005706e8f70f4cae`.
<!-- werkrevisor-codex:83e913a727dbfce3d62aec96005706e8f70f4cae -->
<!-- werkrevisor-codex-critical:false -->
<!-- werkrevisor-codex-unattached:0 -->
<!-- werkrevisor-codex -->
<!-- werkrevisor-folded -->
<details><summary>⚠️ werkrevisor ERROR for <code>?</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/119#issuecomment-6262">the result for <code>f55b104</code></a></summary>
## Codex review: not critical
The change affects review scheduling and refactors existing status updates without weakening approval requirements or changing authentication, permissions, or data protection.
### Findings
1. **[medium] A later collection failure discards earlier ready PRs** at `werkrevisor/codexrunner.py:225`, as a line comment
The merge waits for the status `ai-review/codex`: every line comment resolved, and the approval of a human for a critical PR or for a finding that is only here.
<sub>
Model `gpt-6-astra`, effort high, tokens in 222518 (cached 174848) / out 2372, 72.1 s, 10 commands; reviewed head `83e913a727dbfce3d62aec96005706e8f70f4cae`.
</sub>
</details>
Gate: approved by werkrevisor; merge waits for 1 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind: mixed.
Reasons
hint approval of werkrevisor for 83e913a not carried over: 7 approved block(s) are missing
hint 3 changed file(s) that neither weaken the checks, touch security nor show a risk category of the repository config 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.01)
hint 7 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3, and its 10 change(s) belong to the PR document, according to Jev
hint 1 finding(s) of low severity or rated minor by Jev: docs/prs/2026-10-17-PR#119-codex-oldest-first.md:70
Findings
Unclear Documentation Sentence at docs/prs/2026-10-17-PR#119-codex-oldest-first.md:70, severity unknown, counted as medium, hint, as a line comment
Classifier
7 of 7 units passed all questions (1 PR document(s)).
2 answers ignored because of a confidence below [classifier] min_confidence.
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 24006, calls 1, tokens in 23114 / out 27955 (reasoning included in out), duration 126.9 s, cost 0.0404 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 5777, cost 0.0002 USD, finding judge `jev-1.13.0` calls 1, tokens in 1552, cost 0.0001 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4497 / out 1698, cost 0.0034 USD (reported), PR document check `jev-1.13.0` calls 17, tokens in 30638, cost 0.0013 USD, build file judge `jev-1.13.0` calls 4, tokens in 5807, cost 0.0002 USD, phases: path_judge 0.2 s, classifier 0.4 s, change_summary 9.5 s, doc_check 1.2 s, context 0.2 s, model_review 114.6 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 841bc82).
Reviewed head `f55b1043aebc632dd9d58236b6f86e0247ba9ff9` against base `841bc82867d7cb165175f6002430cf973fbb160f`, werkrevisor 0.46.0.
<!-- werkrevisor:f55b1043aebc632dd9d58236b6f86e0247ba9ff9 -->
<!-- werkrevisor-verdict:GREEN -->
<!-- werkrevisor-blocks:1694927d6f56d041c180a9c2755a7af1,d6ee40a2a50010c07d5d7f27abaa82cf,dcee0b198c2eb12e9ed595d5f6063fbb,80e859da6ecead70dac22c6f561197ed,ceff83097266a767333b168cee424299,507cb0ad5aa2b18e30f8b410e67923a0,27bb94eeff08fd51309cf2690fd33135,736e36807c0a3f7e502614bc246c05a8,c660560269d2988074bb09d45cf09efd,fccf0b339b61e397d82ae9632b6f2b95,be51c6fcf28c62888f7d033e09f144e6,555a7e2124674ac18c5701a0d8a631ae,cd371e437bf6068354c355a2a5b0752b,370b9059f5cf6760f13eec343f754f13,fe4336b0d2d1b6b9c28a7573b1146b7c,a8c2eee2ff21aaad2b79b792ec004ea1,5450d2779a93277f963437761fcbf7e8,3341e2cb3bea87db83bf5a50dcfea8d5,57299ee80f2782d7af5b4d764223b360,f0eaa599b80812166c23bbeb7c4aa243,3c47a723fbeb3ceb7a7df1c29b2c3c16,d744a7f2182e4caf169f70022e8d1abc,9762c29c3b519adbcb7ea0aeacd14fce,2bc7b47d99717cfe300afaff2c28285a,93e01313b3403ecff7ec4b07027a24de,2bf8ce60d8f18b16c5d8eb0751ae9acd,ed882c732c6b1c9a6f22aac0b8af2614,d744a7f2182e4caf169f70022e8d1abc,9a275426cfd650d01b9aacfda4364412,aed2a6afd6ce9ad729fe0cb27777ef99,672d5d0f3b0c524d11a456719b698811 -->
<!-- werkrevisor-folded -->
<details><summary>🟢 werkrevisor GREEN for <code>f55b104</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/119#issuecomment-6272">the result for <code>e20f6bc</code></a></summary>
## 🟢 werkrevisor: GREEN / PASS
Gate: approved by werkrevisor; merge waits for 1 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind: `mixed`.
### Reasons
- **hint** approval of werkrevisor for `83e913a` not carried over: 7 approved block(s) are missing
- **hint** 3 changed file(s) that neither weaken the checks, touch security nor show a risk category of the repository config 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.01)
- **hint** 7 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3, and its 10 change(s) belong to the PR document, according to Jev
- **hint** 1 finding(s) of low severity or rated minor by Jev: docs/prs/2026-10-17-PR#119-codex-oldest-first.md:70
### Findings
1. **Unclear Documentation Sentence** at `docs/prs/2026-10-17-PR#119-codex-oldest-first.md:70`, severity unknown, counted as medium, hint, as a line comment
### Classifier
7 of 7 units passed all questions (1 PR document(s)).
2 answers ignored because of a confidence below [classifier] min_confidence.
<sub>
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 24006, calls 1, tokens in 23114 / out 27955 (reasoning included in out), duration 126.9 s, cost 0.0404 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 5777, cost 0.0002 USD, finding judge `jev-1.13.0` calls 1, tokens in 1552, cost 0.0001 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4497 / out 1698, cost 0.0034 USD (reported), PR document check `jev-1.13.0` calls 17, tokens in 30638, cost 0.0013 USD, build file judge `jev-1.13.0` calls 4, tokens in 5807, cost 0.0002 USD, phases: path_judge 0.2 s, classifier 0.4 s, change_summary 9.5 s, doc_check 1.2 s, context 0.2 s, model_review 114.6 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 841bc82).<br>
Reviewed head `f55b1043aebc632dd9d58236b6f86e0247ba9ff9` against base `841bc82867d7cb165175f6002430cf973fbb160f`, werkrevisor 0.46.0.
</sub>
</details>
werkrevisor: GREEN / PASS for f55b1043aebc632dd9d58236b6f86e0247ba9ff9.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `f55b1043aebc632dd9d58236b6f86e0247ba9ff9`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:f55b1043aebc632dd9d58236b6f86e0247ba9ff9 -->
Unclear Documentation Sentence, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.78, severity 1.2 of 3
The sentence "The Codex review of the first head found that one failing PR discarded the ready PRs collected before it." in the Solution section is confusing. It mixes past and present tense and the subject is ambiguous, so a reader cannot tell whether it describes the new behavior, the old behavior, or a discovered bug. It appears to contrast the previous implementation with the new one, but the wording does not make that clear.
**Unclear Documentation Sentence**, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.78, severity 1.2 of 3
The sentence "The Codex review of the first head found that one failing PR discarded the ready PRs collected before it." in the Solution section is confusing. It mixes past and present tense and the subject is ambiguous, so a reader cannot tell whether it describes the new behavior, the old behavior, or a discovered bug. It appears to contrast the previous implementation with the new one, but the wording does not make that clear.
Gate: approved by werkrevisor; merge waits for 1 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind: mixed.
Reasons
hint approval of werkrevisor for f55b104 not carried over: 1 approved block(s) are missing
hint 3 changed file(s) that neither weaken the checks, touch security nor show a risk category of the repository config 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 7 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3, and its 5 change(s) belong to the PR document, according to Jev
hint 2 finding(s) of low severity or rated minor by Jev: docs/prs/2026-10-17-PR#119-codex-oldest-first.md:71, docs/prs/2026-10-17-PR#119-codex-oldest-first.md:36-37
Findings
Undocumented commit reference at docs/prs/2026-10-17-PR#119-codex-oldest-first.md:71, severity unknown, counted as medium, hint, as a line comment
Awkward scenario wording at docs/prs/2026-10-17-PR#119-codex-oldest-first.md:36-37, severity unknown, counted as medium
hint; Jev: real 0.48, severity 1.0 of 3
Scenario#119.01's Given clause reads "the one of the second repository with the older werkrevisor result", which is grammatically awkward and forces a second read. A phrasing like "the PR in the second repository, which has the older werkrevisor result" would read more naturally.
Classifier
7 of 7 units passed all questions (1 PR document(s)).
2 answers ignored because of a confidence below [classifier] min_confidence.
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 24021, calls 1, tokens in 23129 / out 42228 (reasoning included in out), duration 210.9 s, cost 0.0576 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 5793, cost 0.0002 USD, finding judge `jev-1.13.0` calls 2, tokens in 3099, cost 0.0001 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4497 / out 1219, cost 0.0017 USD (reported), PR document check `jev-1.13.0` calls 12, tokens in 18238, cost 0.0008 USD, build file judge `jev-1.13.0` calls 4, tokens in 5807, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, change_summary 4.8 s, doc_check 0.9 s, context 0.2 s, model_review 203.3 s, finding_judge 0.4 s, config: defaults + host + repository (.werkrevisor.toml at main 841bc82).
Reviewed head `e20f6bc8d3a18000eaed731c4d354d4872b12c52` against base `841bc82867d7cb165175f6002430cf973fbb160f`, werkrevisor 0.46.0.
<!-- werkrevisor:e20f6bc8d3a18000eaed731c4d354d4872b12c52 -->
<!-- werkrevisor-verdict:GREEN -->
<!-- werkrevisor-blocks:1694927d6f56d041c180a9c2755a7af1,658fd8be710d4d191d27395136bdd63b,dcee0b198c2eb12e9ed595d5f6063fbb,80e859da6ecead70dac22c6f561197ed,ceff83097266a767333b168cee424299,507cb0ad5aa2b18e30f8b410e67923a0,27bb94eeff08fd51309cf2690fd33135,736e36807c0a3f7e502614bc246c05a8,c660560269d2988074bb09d45cf09efd,fccf0b339b61e397d82ae9632b6f2b95,be51c6fcf28c62888f7d033e09f144e6,555a7e2124674ac18c5701a0d8a631ae,cd371e437bf6068354c355a2a5b0752b,370b9059f5cf6760f13eec343f754f13,fe4336b0d2d1b6b9c28a7573b1146b7c,a8c2eee2ff21aaad2b79b792ec004ea1,5450d2779a93277f963437761fcbf7e8,3341e2cb3bea87db83bf5a50dcfea8d5,57299ee80f2782d7af5b4d764223b360,f0eaa599b80812166c23bbeb7c4aa243,3c47a723fbeb3ceb7a7df1c29b2c3c16,d744a7f2182e4caf169f70022e8d1abc,9762c29c3b519adbcb7ea0aeacd14fce,2bc7b47d99717cfe300afaff2c28285a,93e01313b3403ecff7ec4b07027a24de,2bf8ce60d8f18b16c5d8eb0751ae9acd,ed882c732c6b1c9a6f22aac0b8af2614,d744a7f2182e4caf169f70022e8d1abc,9a275426cfd650d01b9aacfda4364412,aed2a6afd6ce9ad729fe0cb27777ef99,672d5d0f3b0c524d11a456719b698811 -->
<!-- werkrevisor-folded -->
<details><summary>🟢 werkrevisor GREEN for <code>e20f6bc</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/119#issuecomment-6281">the result for <code>d9c1842</code></a></summary>
## 🟢 werkrevisor: GREEN / PASS
Gate: approved by werkrevisor; merge waits for 1 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind: `mixed`.
### Reasons
- **hint** approval of werkrevisor for `f55b104` not carried over: 1 approved block(s) are missing
- **hint** 3 changed file(s) that neither weaken the checks, touch security nor show a risk category of the repository config 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** 7 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3, and its 5 change(s) belong to the PR document, according to Jev
- **hint** 2 finding(s) of low severity or rated minor by Jev: docs/prs/2026-10-17-PR#119-codex-oldest-first.md:71, docs/prs/2026-10-17-PR#119-codex-oldest-first.md:36-37
### Findings
1. **Undocumented commit reference** at `docs/prs/2026-10-17-PR#119-codex-oldest-first.md:71`, severity unknown, counted as medium, hint, as a line comment
2. **Awkward scenario wording** at `docs/prs/2026-10-17-PR#119-codex-oldest-first.md:36-37`, severity unknown, counted as medium
hint; Jev: real 0.48, severity 1.0 of 3
Scenario#119.01's Given clause reads "the one of the second repository with the older werkrevisor result", which is grammatically awkward and forces a second read. A phrasing like "the PR in the second repository, which has the older werkrevisor result" would read more naturally.
### Classifier
7 of 7 units passed all questions (1 PR document(s)).
2 answers ignored because of a confidence below [classifier] min_confidence.
<sub>
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 24021, calls 1, tokens in 23129 / out 42228 (reasoning included in out), duration 210.9 s, cost 0.0576 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 5793, cost 0.0002 USD, finding judge `jev-1.13.0` calls 2, tokens in 3099, cost 0.0001 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4497 / out 1219, cost 0.0017 USD (reported), PR document check `jev-1.13.0` calls 12, tokens in 18238, cost 0.0008 USD, build file judge `jev-1.13.0` calls 4, tokens in 5807, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, change_summary 4.8 s, doc_check 0.9 s, context 0.2 s, model_review 203.3 s, finding_judge 0.4 s, config: defaults + host + repository (.werkrevisor.toml at main 841bc82).<br>
Reviewed head `e20f6bc8d3a18000eaed731c4d354d4872b12c52` against base `841bc82867d7cb165175f6002430cf973fbb160f`, werkrevisor 0.46.0.
</sub>
</details>
werkrevisor: GREEN / PASS for e20f6bc8d3a18000eaed731c4d354d4872b12c52.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `e20f6bc8d3a18000eaed731c4d354d4872b12c52`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:e20f6bc8d3a18000eaed731c4d354d4872b12c52 -->
Undocumented commit reference, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.75, severity 1.4 of 3
The Solution section cites "the Codex review of 83e913a found this" without identifying the commit or where it lives. A reader who did not author the change cannot trace this claim to verify the rationale for the per-PR exception handling.
**Undocumented commit reference**, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.75, severity 1.4 of 3
The Solution section cites "the Codex review of `83e913a` found this" without identifying the commit or where it lives. A reader who did not author the change cannot trace this claim to verify the rationale for the per-PR exception handling.
Fixed in d9c1842: the sentence names the first head of this PR and the line comment that reported the defect.
Fixed in `d9c1842`: the sentence names the first head of this PR and the line comment that reported the defect.
claude-code marked this conversation as resolved
claude-code
changed title from werkrevisor 0.47.0: the Codex runner reviews the longest-waiting PR first to werkrevisor 0.48.0: the Codex runner reviews the longest-waiting PR first2026-10-17 14:58:22 +02:00
It collects the ready PRs of all repositories and serves them by the time
of their werkrevisor result; max_reviews_per_run applies to that order.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Rebased onto main after PR#120; the version is now 0.48.0, above 0.47.1 of PR#120.
Review of `e20f6bc`:
- Commit reference: fixed in `d9c1842`.
- Scenario wording: fixed in `d9c1842`.
Rebased onto `main` after PR#120; the version is now 0.48.0, above 0.47.1 of PR#120.
hint approval of werkrevisor for e20f6bc not carried over: 3 approved block(s) are missing
hint 3 changed file(s) that neither weaken the checks, touch security nor show a risk category of the repository config 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.01)
hint 7 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3, and its 7 change(s) belong to the PR document, according to Jev
Classifier
7 of 7 units passed all questions (1 PR document(s)).
2 answers ignored because of a confidence below [classifier] min_confidence.
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 24053, calls 1, tokens in 23161 / out 20414 (reasoning included in out), duration 135.1 s, cost 0.0314 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 5824, cost 0.0002 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4482 / out 1569, cost 0.0032 USD (reported), PR document check `jev-1.13.0` calls 14, tokens in 23496, cost 0.0010 USD, build file judge `jev-1.13.0` calls 4, tokens in 5807, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, change_summary 10.1 s, doc_check 1.0 s, context 0.6 s, model_review 121.0 s, config: defaults + host + repository (.werkrevisor.toml at main 698762f).
Reviewed head `d9c1842bbfcc8613856eb09cf1c7309e214dee98` against base `698762f90070f5fb54ee21b686c6207700262233`, werkrevisor 0.47.1.
<!-- werkrevisor:d9c1842bbfcc8613856eb09cf1c7309e214dee98 -->
<!-- werkrevisor-verdict:GREEN -->
<!-- werkrevisor-blocks:1694927d6f56d041c180a9c2755a7af1,140c4241e19f6bf4a52305cff8db575c,dcee0b198c2eb12e9ed595d5f6063fbb,791c7b968aa8f6673cee59fe4ad603f7,ceff83097266a767333b168cee424299,507cb0ad5aa2b18e30f8b410e67923a0,27bb94eeff08fd51309cf2690fd33135,736e36807c0a3f7e502614bc246c05a8,c660560269d2988074bb09d45cf09efd,fccf0b339b61e397d82ae9632b6f2b95,be51c6fcf28c62888f7d033e09f144e6,555a7e2124674ac18c5701a0d8a631ae,cd371e437bf6068354c355a2a5b0752b,370b9059f5cf6760f13eec343f754f13,ac89e6f9154850b4a2fcdf9099119ed2,a8c2eee2ff21aaad2b79b792ec004ea1,5450d2779a93277f963437761fcbf7e8,3341e2cb3bea87db83bf5a50dcfea8d5,57299ee80f2782d7af5b4d764223b360,f0eaa599b80812166c23bbeb7c4aa243,3c47a723fbeb3ceb7a7df1c29b2c3c16,d744a7f2182e4caf169f70022e8d1abc,9762c29c3b519adbcb7ea0aeacd14fce,2bc7b47d99717cfe300afaff2c28285a,93e01313b3403ecff7ec4b07027a24de,2bf8ce60d8f18b16c5d8eb0751ae9acd,ed882c732c6b1c9a6f22aac0b8af2614,d744a7f2182e4caf169f70022e8d1abc,9a275426cfd650d01b9aacfda4364412,aed2a6afd6ce9ad729fe0cb27777ef99,672d5d0f3b0c524d11a456719b698811 -->
## 🟢 werkrevisor: GREEN / PASS
Change kind: `mixed`.
### Reasons
- **hint** approval of werkrevisor for `e20f6bc` not carried over: 3 approved block(s) are missing
- **hint** 3 changed file(s) that neither weaken the checks, touch security nor show a risk category of the repository config 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.01)
- **hint** 7 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3, and its 7 change(s) belong to the PR document, according to Jev
### Classifier
7 of 7 units passed all questions (1 PR document(s)).
2 answers ignored because of a confidence below [classifier] min_confidence.
<sub>
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 24053, calls 1, tokens in 23161 / out 20414 (reasoning included in out), duration 135.1 s, cost 0.0314 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 5824, cost 0.0002 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4482 / out 1569, cost 0.0032 USD (reported), PR document check `jev-1.13.0` calls 14, tokens in 23496, cost 0.0010 USD, build file judge `jev-1.13.0` calls 4, tokens in 5807, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, change_summary 10.1 s, doc_check 1.0 s, context 0.6 s, model_review 121.0 s, config: defaults + host + repository (.werkrevisor.toml at main 698762f).<br>
Reviewed head `d9c1842bbfcc8613856eb09cf1c7309e214dee98` against base `698762f90070f5fb54ee21b686c6207700262233`, werkrevisor 0.47.1.
</sub>
werkrevisor: GREEN / PASS for d9c1842bbfcc8613856eb09cf1c7309e214dee98.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `d9c1842bbfcc8613856eb09cf1c7309e214dee98`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:d9c1842bbfcc8613856eb09cf1c7309e214dee98 -->
ai-reviewer
scheduled this pull request to auto merge when all checks succeed 2026-10-17 15:00:57 +02:00
The change reorders pending reviews and isolates failures while preserving review eligibility, human approval requirements, and merge-gate checks. It does not weaken checks or change authentication, authorization, secrets, or existing data.
No findings.
The merge waits for the status ai-review/codex: every line comment resolved, and the approval of a human for a critical PR or for a finding that is only here.
Model `gpt-6-astra`, effort high, tokens in 246706 (cached 196864) / out 1413, 57.3 s, 6 commands; reviewed head `d9c1842bbfcc8613856eb09cf1c7309e214dee98`.
<!-- werkrevisor-codex:d9c1842bbfcc8613856eb09cf1c7309e214dee98 -->
<!-- werkrevisor-codex-critical:false -->
<!-- werkrevisor-codex-unattached:0 -->
<!-- werkrevisor-codex -->
## Codex review: not critical
The change reorders pending reviews and isolates failures while preserving review eligibility, human approval requirements, and merge-gate checks. It does not weaken checks or change authentication, authorization, secrets, or existing data.
No findings.
The merge waits for the status `ai-review/codex`: every line comment resolved, and the approval of a human for a critical PR or for a finding that is only here.
<sub>
Model `gpt-6-astra`, effort high, tokens in 246706 (cached 196864) / out 1413, 57.3 s, 6 commands; reviewed head `d9c1842bbfcc8613856eb09cf1c7309e214dee98`.
</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
The Codex runner collects the ready PRs of all configured repositories and reviews them by the time of their werkrevisor result, oldest first.
🤖 Generated with Claude Code
🟢 werkrevisor GREEN for
83e913a, superseded by the result forf55b104🟢 werkrevisor: GREEN / PASS
Gate: approved by werkrevisor; merge conflict with main: the author rebases the branch onto main and pushes.
Change kind:
mixed.Reasons
Classifier
7 of 7 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 23151, calls 1, tokens in 22290 / out 16185 (reasoning included in out), duration 107.2 s, cost 0.0261 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 5731, cost 0.0002 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4138 / out 2578, cost 0.0043 USD (reported), PR document check `jev-1.13.0` calls 16, tokens in 27186, cost 0.0011 USD, build file judge `jev-1.13.0` calls 4, tokens in 5439, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, change_summary 22.4 s, doc_check 1.2 s, context 0.2 s, model_review 82.2 s, config: defaults + host + repository (.werkrevisor.toml at main2 answers ignored because of a confidence below [classifier] min_confidence.
841bc82).Reviewed head `83e913a727dbfce3d62aec96005706e8f70f4cae` against base `841bc82867d7cb165175f6002430cf973fbb160f`, werkrevisor 0.46.0.
werkrevisor: GREEN / PASS for
83e913a727dbfce3d62aec96005706e8f70f4cae.The result comment of werkrevisor holds the details.
Codex review of
83e913a727dbfce3d62aec96005706e8f70f4cae@@ -194,2 +223,3 @@gitea = self.client(server.base_url, owner, repo, token)try:self.run_repository(server, gitea, owner, repo, token)candidates += self.run_repository(server, gitea, owner, repo, token)[medium] A later collection failure discards earlier ready PRs (Codex review)
run_repository returns its candidates only after processing every PR. If fetching comments or updating a gate for a later PR raises an exception, all previously collected candidates from that repository are discarded. An in-memory reproduction with a ready first PR and an HTTP 500 on the second reviews the first PR on the merge base but reviews nothing on this head. A recurring failure therefore blocks healthy PRs even when review quota remains.
Fix it, or reply why it does not hold, and resolve this comment.
Fixed in
f55b104:run_repositorycollects each PR in its owntry; a failing PR is logged and the other PRs of the repository stay candidates.test_a_failing_pr_hides_not_the_other_ready_prs_of_its_repositoryfails without the fix and passes with it.⚠️ werkrevisor ERROR for
?, superseded by the result forf55b104Codex review: not critical
The change affects review scheduling and refactors existing status updates without weakening approval requirements or changing authentication, permissions, or data protection.
Findings
werkrevisor/codexrunner.py:225, as a line commentThe merge waits for the status
Model `gpt-6-astra`, effort high, tokens in 222518 (cached 174848) / out 2372, 72.1 s, 10 commands; reviewed head `83e913a727dbfce3d62aec96005706e8f70f4cae`.ai-review/codex: every line comment resolved, and the approval of a human for a critical PR or for a finding that is only here.83e913a727tof55b1043aeNew commits pushed, approval review dismissed automatically according to repository settings
🟢 werkrevisor GREEN for
f55b104, superseded by the result fore20f6bc🟢 werkrevisor: GREEN / PASS
Gate: approved by werkrevisor; merge waits for 1 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind:
mixed.Reasons
83e913anot carried over: 7 approved block(s) are missingFindings
docs/prs/2026-10-17-PR#119-codex-oldest-first.md:70, severity unknown, counted as medium, hint, as a line commentClassifier
7 of 7 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 24006, calls 1, tokens in 23114 / out 27955 (reasoning included in out), duration 126.9 s, cost 0.0404 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 5777, cost 0.0002 USD, finding judge `jev-1.13.0` calls 1, tokens in 1552, cost 0.0001 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4497 / out 1698, cost 0.0034 USD (reported), PR document check `jev-1.13.0` calls 17, tokens in 30638, cost 0.0013 USD, build file judge `jev-1.13.0` calls 4, tokens in 5807, cost 0.0002 USD, phases: path_judge 0.2 s, classifier 0.4 s, change_summary 9.5 s, doc_check 1.2 s, context 0.2 s, model_review 114.6 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main2 answers ignored because of a confidence below [classifier] min_confidence.
841bc82).Reviewed head `f55b1043aebc632dd9d58236b6f86e0247ba9ff9` against base `841bc82867d7cb165175f6002430cf973fbb160f`, werkrevisor 0.46.0.
werkrevisor: GREEN / PASS for
f55b1043aebc632dd9d58236b6f86e0247ba9ff9.The result comment of werkrevisor holds the details.
@@ -0,0 +67,4 @@- A PR with a Codex comment for its head gets its gate status at once, while the runner collects; it uses no quota, as before.- A failure in one review is logged, and the next PR in the order is still served.- A failure with one PR while the runner collects is logged; the other PRs of its repository stay candidates.The Codex review of the first head found that one failing PR discarded the ready PRs collected before it.Unclear Documentation Sentence, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.78, severity 1.2 of 3
The sentence "The Codex review of the first head found that one failing PR discarded the ready PRs collected before it." in the Solution section is confusing. It mixes past and present tense and the subject is ambiguous, so a reader cannot tell whether it describes the new behavior, the old behavior, or a discovered bug. It appears to contrast the previous implementation with the new one, but the wording does not make that clear.
Fixed in
e20f6bc: the sentence now says that the defect existed before this fix and which review found it.New commits pushed, approval review dismissed automatically according to repository settings
🟢 werkrevisor GREEN for
e20f6bc, superseded by the result ford9c1842🟢 werkrevisor: GREEN / PASS
Gate: approved by werkrevisor; merge waits for 1 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind:
mixed.Reasons
f55b104not carried over: 1 approved block(s) are missingFindings
Undocumented commit reference at
docs/prs/2026-10-17-PR#119-codex-oldest-first.md:71, severity unknown, counted as medium, hint, as a line commentAwkward scenario wording at
docs/prs/2026-10-17-PR#119-codex-oldest-first.md:36-37, severity unknown, counted as mediumhint; Jev: real 0.48, severity 1.0 of 3
Scenario#119.01's Given clause reads "the one of the second repository with the older werkrevisor result", which is grammatically awkward and forces a second read. A phrasing like "the PR in the second repository, which has the older werkrevisor result" would read more naturally.
Classifier
7 of 7 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 24021, calls 1, tokens in 23129 / out 42228 (reasoning included in out), duration 210.9 s, cost 0.0576 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 5793, cost 0.0002 USD, finding judge `jev-1.13.0` calls 2, tokens in 3099, cost 0.0001 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4497 / out 1219, cost 0.0017 USD (reported), PR document check `jev-1.13.0` calls 12, tokens in 18238, cost 0.0008 USD, build file judge `jev-1.13.0` calls 4, tokens in 5807, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, change_summary 4.8 s, doc_check 0.9 s, context 0.2 s, model_review 203.3 s, finding_judge 0.4 s, config: defaults + host + repository (.werkrevisor.toml at main2 answers ignored because of a confidence below [classifier] min_confidence.
841bc82).Reviewed head `e20f6bc8d3a18000eaed731c4d354d4872b12c52` against base `841bc82867d7cb165175f6002430cf973fbb160f`, werkrevisor 0.46.0.
werkrevisor: GREEN / PASS for
e20f6bc8d3a18000eaed731c4d354d4872b12c52.The result comment of werkrevisor holds the details.
@@ -0,0 +68,4 @@- A failure in one review is logged, and the next PR in the order is still served.- A failure with one PR while the runner collects is logged; the other PRs of its repository stay candidates.Before this fix, one failing PR discarded the ready PRs that the runner had collected before it;the Codex review of `83e913a` found this.Undocumented commit reference, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.75, severity 1.4 of 3
The Solution section cites "the Codex review of
83e913afound this" without identifying the commit or where it lives. A reader who did not author the change cannot trace this claim to verify the rationale for the per-PR exception handling.Fixed in
d9c1842: the sentence names the first head of this PR and the line comment that reported the defect.werkrevisor 0.47.0: the Codex runner reviews the longest-waiting PR firstto werkrevisor 0.48.0: the Codex runner reviews the longest-waiting PR firste20f6bc8d3tod9c1842bbfNew commits pushed, approval review dismissed automatically according to repository settings
Review of
e20f6bc:d9c1842.d9c1842.Rebased onto
mainafter PR#120; the version is now 0.48.0, above 0.47.1 of PR#120.🟢 werkrevisor: GREEN / PASS
Change kind:
mixed.Reasons
e20f6bcnot carried over: 3 approved block(s) are missingClassifier
7 of 7 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 24053, calls 1, tokens in 23161 / out 20414 (reasoning included in out), duration 135.1 s, cost 0.0314 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 5824, cost 0.0002 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4482 / out 1569, cost 0.0032 USD (reported), PR document check `jev-1.13.0` calls 14, tokens in 23496, cost 0.0010 USD, build file judge `jev-1.13.0` calls 4, tokens in 5807, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, change_summary 10.1 s, doc_check 1.0 s, context 0.6 s, model_review 121.0 s, config: defaults + host + repository (.werkrevisor.toml at main2 answers ignored because of a confidence below [classifier] min_confidence.
698762f).Reviewed head `d9c1842bbfcc8613856eb09cf1c7309e214dee98` against base `698762f90070f5fb54ee21b686c6207700262233`, werkrevisor 0.47.1.
werkrevisor: GREEN / PASS for
d9c1842bbfcc8613856eb09cf1c7309e214dee98.The result comment of werkrevisor holds the details.
Codex review: not critical
The change reorders pending reviews and isolates failures while preserving review eligibility, human approval requirements, and merge-gate checks. It does not weaken checks or change authentication, authorization, secrets, or existing data.
No findings.
The merge waits for the status
Model `gpt-6-astra`, effort high, tokens in 246706 (cached 196864) / out 1413, 57.3 s, 6 commands; reviewed head `d9c1842bbfcc8613856eb09cf1c7309e214dee98`.ai-review/codex: every line comment resolved, and the approval of a human for a critical PR or for a finding that is only here.