A failed or timed-out run is outdated once its branch is deleted or a newer run of its name ended with a verdict. The History shows it grey with an outdated tag that gives the reason, and the home strip draws it grey.
See [the PR-doc](docs/prs/2026-10-12-PR%23156-outdated-failures.md).
A failed or timed-out run is outdated once its branch is deleted or a newer run of its name ended with a verdict. The History shows it grey with an `outdated` tag that gives the reason, and the home strip draws it grey.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
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
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 writing rules violated in the changed docs: .claude/skills/architecture/SKILL.md:47: line longer than 400 characters (512)
hint 19 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
hint 1 build change(s) of low risk according to Jev: build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01)
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): src/main/resources/static/werkator.js
hint 1 changed file was given to the AI only as diff, not in full, so it could not check it against the rest of its file (each larger than [review] max_full_file_chars = 80000, and no excerpt fits the limits either): src/main/resources/templates/releases.html (advisory: Jev judged every changed file)
hint 4 changed files were given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (all full files together would exceed [review] max_full_files_chars = 160000): src/main/kotlin/de/hoennig/werkator/server/UiViews.kt, src/main/resources/static/werkator.css, src/main/resources/templates/home.html and 1 more
hint 5 changed files were given to the AI only as diff, not in full, so it could not check them against the rest of their file (all full files together would exceed [review] max_full_files_chars = 160000, and no excerpt fits the limits either): src/test/kotlin/de/hoennig/werkator/build/OutdatedRunsUnitTest.kt, src/test/kotlin/de/hoennig/werkator/server/BuildsApiControllerRestTest.kt, src/test/kotlin/de/hoennig/werkator/server/RepoOverviewsUnitTest.kt and 2 more (advisory: Jev judged every changed file)
hint 2 finding(s) of low severity or rated minor by Jev: docs/werkator.werkbaum:174-175, docs/prs/2026-10-12-PR#156-outdated-failures.md:114
Findings
[low] Grammar issue in Werkbaum task title at docs/werkator.werkbaum:174-175
hint
The new Werkbaum entry "A failure a newer run or a deleted branch overtook is shown as outdated" is missing the relative pronoun that introduces the relative clause. As written, "a failure" is followed by another noun phrase starting with "a" and an intransitive past-tense verb, so the relationship between the failure and what overtook it is left unexpressed. A clearer phrasing would be "A failure that a newer run or a deleted branch overtook" or "A failure overtaken by a newer run or a deleted branch". This is a wording nit; the meaning is recoverable from context.
[low] Awkward phrasing in scenario title at docs/prs/2026-10-12-PR#156-outdated-failures.md:114, hint, as a line comment
Classifier
11 of 11 units passed all questions (1 PR document(s)).
1 answer ignored because of a confidence below [classifier] min_confidence.
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 71074, calls 1, tokens in 68399 / out 29105 (reasoning included in out), duration 276.7 s, cost 0.0554 USD (reported), classifier `jev-1.13.0` calls 11, tokens in 10274, cost 0.0004 USD, finding judge `none` calls 0, tokens in 0, cost 0.0000 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 11, tokens in 141491 / out 1938, cost 0.0187 USD (reported), build file judge `jev-1.13.0` calls 20, tokens in 28210, cost 0.0012 USD, phases: path_judge 1.3 s, classifier 0.8 s, context 36.5 s, model_review 236.4 s, finding_judge 0.0 s, config: defaults + host + repository (.werkrevisor.toml at main faa86e0).
Reviewed head `a7fce6d76268352315994cfe5e2b0ba978c99b52` against base `faa86e060b9aece97c20627912bdb450e9e68fa5`, werkrevisor 0.38.0.
<!-- werkrevisor:a7fce6d76268352315994cfe5e2b0ba978c99b52 -->
<!-- werkrevisor-verdict:GREEN -->
<!-- werkrevisor-blocks:bfd7bfd7faab0ced686db752b139e8d9,43c5815a4538afa38e06ba7e132ee1d6,9e4e8c52dda65053bdb6007d5c317db3,5fe8aa5bf66bb330c33716cc8527e1e7,5c56cc071d8a57cc8f93c07beb8b36cb,4685af51b9e7de99fb4d7a40557fa702,fbd4c5f1f3569dcfa86df4e47c0a0e92,66c0166589ed2aa14604f9bc49ed64d6,a1ec93132128aa0e544694c1a4ec3861,fc244b7241adcfcc1c7b80e7d2d2f3ef,a86c280d19de9b60d8bd9753b1c7a918,da86dec9430d979bac2ca18277b2d550,97a4303c5ba8f3e12f77954f7a6b17bb,71e025234404e1e3f3b8ff5815d77018,92a659d25157d7323e53de8ad7e55257,78291cec3a6f6cb57fce0c018437beef,b5f218f90ae599dbd90c70b4c2128eb4,5491a1a2e961337ea66fe9eb4dfb6af1,1613730700e7d7d9c8d83bdf0e897d27,c516f85b79b289d0289877ee74f10a2a,bbcef1385247c39bf3486404a3998780,39def3686216a92c85a8fed91e6fa320,7a32ff3c4a7e802341bf5ff36da3f900,8c24663ed1a6eaa68627c5a07a39cfaa,09b89e8bc17ca93c4c519bc90fa12d48,2a4554ba32421080cbb426ded2fb7598,ce44f064690a08783777654eef6cbf85,6de859a045390dce74fd0965e4d0af56,b75d59fc546dbc5cf97611e63e751919,1ec4ee64ade91766b14992556d3ed284,c9a9422a36700dffb99bb8c921266992,d7cfbcd074591aa4a3100e22af6ee7ab,e5bce42df047a7f427f34e1362d8b23c,524713d71d0bce738bb69c97e2eab72f,7226bb0fc47874f31ba74fba035996ec,2d89362e167ca743f425922754ae6680,37dca9a61177ea24b7b73d4e91759307,a0b598c7d49419369542c59ac9c6c47a,66f6785358f16e4ad27e332df17525c0,c2abb30d29888cf56e80b4576c0e7b6a,f9eb3b3024958dabd73061fb3bfc421c,66357f01a4c86ed6a233845144c45682,95215ac56970a8a4a0283fe516dd1296,8b512929e2dad3106836505f2873eb9b,1b6d7b4c410fb228a9dff4cfcc056c70,416c8741738fade31fd59d1070aa38dc,f06c79d7a415bb0f908152ddc06cd81c,d09d7cc4571de0b9999f82a6d3cbc211,fa8a5f76d235e82dc600e42c0510809e,da2af1256232011fdee2399db43314d8 -->
<!-- werkrevisor-folded -->
<details><summary>🟢 werkrevisor GREEN for <code>a7fce6d</code>, superseded by <a href="http://git.javagil.de/mi/werkator/pulls/156#issuecomment-4722">the result for <code>981409b</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** writing rules violated in the changed docs: .claude/skills/architecture/SKILL.md:47: line longer than 400 characters (512)
- **hint** 19 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
- **hint** 1 build change(s) of low risk according to Jev: build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01)
- **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): src/main/resources/static/werkator.js
- **hint** 1 changed file was given to the AI only as diff, not in full, so it could not check it against the rest of its file (each larger than [review] max_full_file_chars = 80000, and no excerpt fits the limits either): src/main/resources/templates/releases.html (advisory: Jev judged every changed file)
- **hint** 4 changed files were given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (all full files together would exceed [review] max_full_files_chars = 160000): src/main/kotlin/de/hoennig/werkator/server/UiViews.kt, src/main/resources/static/werkator.css, src/main/resources/templates/home.html and 1 more
- **hint** 5 changed files were given to the AI only as diff, not in full, so it could not check them against the rest of their file (all full files together would exceed [review] max_full_files_chars = 160000, and no excerpt fits the limits either): src/test/kotlin/de/hoennig/werkator/build/OutdatedRunsUnitTest.kt, src/test/kotlin/de/hoennig/werkator/server/BuildsApiControllerRestTest.kt, src/test/kotlin/de/hoennig/werkator/server/RepoOverviewsUnitTest.kt and 2 more (advisory: Jev judged every changed file)
- **hint** 2 finding(s) of low severity or rated minor by Jev: docs/werkator.werkbaum:174-175, docs/prs/2026-10-12-PR#156-outdated-failures.md:114
### Findings
1. **[low] Grammar issue in Werkbaum task title** at `docs/werkator.werkbaum:174-175`
hint
The new Werkbaum entry "A failure a newer run or a deleted branch overtook is shown as outdated" is missing the relative pronoun that introduces the relative clause. As written, "a failure" is followed by another noun phrase starting with "a" and an intransitive past-tense verb, so the relationship between the failure and what overtook it is left unexpressed. A clearer phrasing would be "A failure that a newer run or a deleted branch overtook" or "A failure overtaken by a newer run or a deleted branch". This is a wording nit; the meaning is recoverable from context.
2. **[low] Awkward phrasing in scenario title** at `docs/prs/2026-10-12-PR#156-outdated-failures.md:114`, hint, as a line comment
### Classifier
11 of 11 units passed all questions (1 PR document(s)).
1 answer ignored because of a confidence below [classifier] min_confidence.
<sub>
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 71074, calls 1, tokens in 68399 / out 29105 (reasoning included in out), duration 276.7 s, cost 0.0554 USD (reported), classifier `jev-1.13.0` calls 11, tokens in 10274, cost 0.0004 USD, finding judge `none` calls 0, tokens in 0, cost 0.0000 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 11, tokens in 141491 / out 1938, cost 0.0187 USD (reported), build file judge `jev-1.13.0` calls 20, tokens in 28210, cost 0.0012 USD, phases: path_judge 1.3 s, classifier 0.8 s, context 36.5 s, model_review 236.4 s, finding_judge 0.0 s, config: defaults + host + repository (.werkrevisor.toml at main faa86e0).<br>
Reviewed head `a7fce6d76268352315994cfe5e2b0ba978c99b52` against base `faa86e060b9aece97c20627912bdb450e9e68fa5`, werkrevisor 0.38.0.
</sub>
</details>
werkrevisor: GREEN / PASS for a7fce6d76268352315994cfe5e2b0ba978c99b52.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `a7fce6d76268352315994cfe5e2b0ba978c99b52`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:a7fce6d76268352315994cfe5e2b0ba978c99b52 -->
@@ -44,6 +44,8 @@ Wherever a branch name is shown — the Latest, Branches, History and Current Bu
The History page carries the build-duration trend above its table (`BuildDurationTrends`, PR#49): one card per build *definition* — never per branch, since a branch leaves two or three measurements and disappears — over the last 30 successful builds, however old (PR#84; a time window left rarely built repositories without a trend and let a slow drift become the median), showing the series, the median with min and max, and the latest run's distance from that median, amber from a quarter above it. Derived on read from the recorded history, so nothing is stored; since records outlive their artifacts (up to 100 per build name), a single-branch build such as a nightly or release build has a series too; the median rather than the average is what makes pooling every branch of one definition affordable. Served as `GET /api/builds/durations` (repository-scoped like every route), which answers a private repository with an empty list rather than a redacted one — not because the timings are secret (they are metadata, and `latest`/`branches`/`history` hand them out) but because a card is grouped by build definition, and redacting that name to `n/a` leaves every card labelled alike and the list saying nothing. `UiFormats.trendDelta` and its `werkator.js` twin must word the distance identically.
A failed or timed-out run is *outdated* once its branch is gone from origin or a newer run of its name ended with a verdict — `success`, `failed` or `timed_out`, never `pending`, `running`, `cancelled` or `interrupted` (`OutdatedRuns`, PR#156): derived on read over the whole history, carried as `BuildResultDto.outdated` and `RecentBuildDto.outdated`, and shown grey with an `outdated` tag in the History and as a grey bar in the home strip; `UiFormats.outdatedTitle` and its `werkator.js` twin word the reason.
[low] Awkward phrasing in scenario title (werkrevisor)
hint
The Scenario#156.07 title ends with "but not with what!", which does not name what is redacted. The scenario body makes the intent clear (the reason, the outcome and the time of the newer run stay; its commit becomes n/a and its page is not linked), but the title alone does not convey that. A clearer phrasing would be "but not which newer build" or "but not with which data".
**[low] Awkward phrasing in scenario title** (werkrevisor)
hint
The Scenario#156.07 title ends with "but not with what!", which does not name what is redacted. The scenario body makes the intent clear (the reason, the outcome and the time of the newer run stay; its commit becomes `n/a` and its page is not linked), but the title alone does not convey that. A clearer phrasing would be "but not which newer build" or "but not with which data".
hint approval of werkrevisor for a7fce6d not carried over: 3 approved block(s) are missing
hint 19 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
hint 1 build change(s) of low risk according to Jev: build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01)
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): src/main/resources/templates/releases.html
hint 1 changed file was given to the AI only as diff, not in full, so it could not check it against the rest of its file (each larger than [review] max_full_file_chars = 80000, and no excerpt fits the limits either): src/main/resources/static/werkator.js (advisory: Jev judged every changed file)
hint 1 changed file was given to the AI as excerpt with 40 lines around each changed line, not in full (all full files together would exceed [review] max_full_files_chars = 160000): src/main/resources/static/werkator.css
hint 4 changed files were given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (all full files together would exceed [review] max_full_files_chars = 160000): src/main/kotlin/de/hoennig/werkator/server/UiViews.kt, src/main/resources/templates/builds.html, src/main/resources/templates/home.html and 1 more
hint 5 changed files were given to the AI only as diff, not in full, so it could not check them against the rest of their file (all full files together would exceed [review] max_full_files_chars = 160000, and no excerpt fits the limits either): src/test/kotlin/de/hoennig/werkator/build/OutdatedRunsUnitTest.kt, src/test/kotlin/de/hoennig/werkator/server/BuildsApiControllerRestTest.kt, src/test/kotlin/de/hoennig/werkator/server/RepoOverviewsUnitTest.kt and 2 more (advisory: Jev judged every changed file)
hint excerpt selection by openrouter/openai/gpt-6-luna failed, the fixed window was used: src/main/resources/static/werkator.css (a range lies outside the file), src/main/resources/static/werkator.js (a range lies outside the file)
Classifier
11 of 11 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 71824, calls 1, tokens in 69062 / out 13823 (reasoning included in out), duration 228.2 s, cost 0.0373 USD (reported), classifier `jev-1.13.0` calls 11, tokens in 10278, cost 0.0004 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 12, tokens in 144540 / out 2244, cost 0.0029 USD (reported), build file judge `jev-1.13.0` calls 20, tokens in 28210, cost 0.0012 USD, phases: path_judge 1.4 s, classifier 0.8 s, context 55.7 s, model_review 169.0 s, config: defaults + host + repository (.werkrevisor.toml at main faa86e0).
Reviewed head `981409b6f9e26d1683a0185482c398300292cd84` against base `faa86e060b9aece97c20627912bdb450e9e68fa5`, werkrevisor 0.38.0.
<!-- werkrevisor:981409b6f9e26d1683a0185482c398300292cd84 -->
<!-- werkrevisor-verdict:GREEN -->
<!-- werkrevisor-blocks:27ad720706ae5fca146aec9ecdc18fd9,43c5815a4538afa38e06ba7e132ee1d6,b8b55956e662cd751b98574c837c12eb,e4c49f902bbd0b305f0ebdb071d1768d,5c56cc071d8a57cc8f93c07beb8b36cb,4685af51b9e7de99fb4d7a40557fa702,fbd4c5f1f3569dcfa86df4e47c0a0e92,66c0166589ed2aa14604f9bc49ed64d6,a1ec93132128aa0e544694c1a4ec3861,fc244b7241adcfcc1c7b80e7d2d2f3ef,a86c280d19de9b60d8bd9753b1c7a918,da86dec9430d979bac2ca18277b2d550,97a4303c5ba8f3e12f77954f7a6b17bb,71e025234404e1e3f3b8ff5815d77018,92a659d25157d7323e53de8ad7e55257,78291cec3a6f6cb57fce0c018437beef,b5f218f90ae599dbd90c70b4c2128eb4,5491a1a2e961337ea66fe9eb4dfb6af1,1613730700e7d7d9c8d83bdf0e897d27,c516f85b79b289d0289877ee74f10a2a,bbcef1385247c39bf3486404a3998780,39def3686216a92c85a8fed91e6fa320,7a32ff3c4a7e802341bf5ff36da3f900,8c24663ed1a6eaa68627c5a07a39cfaa,09b89e8bc17ca93c4c519bc90fa12d48,2a4554ba32421080cbb426ded2fb7598,ce44f064690a08783777654eef6cbf85,6de859a045390dce74fd0965e4d0af56,b75d59fc546dbc5cf97611e63e751919,1ec4ee64ade91766b14992556d3ed284,c9a9422a36700dffb99bb8c921266992,d7cfbcd074591aa4a3100e22af6ee7ab,e5bce42df047a7f427f34e1362d8b23c,524713d71d0bce738bb69c97e2eab72f,7226bb0fc47874f31ba74fba035996ec,2d89362e167ca743f425922754ae6680,37dca9a61177ea24b7b73d4e91759307,a0b598c7d49419369542c59ac9c6c47a,66f6785358f16e4ad27e332df17525c0,c2abb30d29888cf56e80b4576c0e7b6a,f9eb3b3024958dabd73061fb3bfc421c,66357f01a4c86ed6a233845144c45682,95215ac56970a8a4a0283fe516dd1296,8b512929e2dad3106836505f2873eb9b,1b6d7b4c410fb228a9dff4cfcc056c70,416c8741738fade31fd59d1070aa38dc,f06c79d7a415bb0f908152ddc06cd81c,d09d7cc4571de0b9999f82a6d3cbc211,fa8a5f76d235e82dc600e42c0510809e,da2af1256232011fdee2399db43314d8 -->
## 🟢 werkrevisor: GREEN / PASS
Change kind: `mixed`.
### Reasons
- **hint** approval of werkrevisor for `a7fce6d` not carried over: 3 approved block(s) are missing
- **hint** 19 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
- **hint** 1 build change(s) of low risk according to Jev: build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01)
- **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): src/main/resources/templates/releases.html
- **hint** 1 changed file was given to the AI only as diff, not in full, so it could not check it against the rest of its file (each larger than [review] max_full_file_chars = 80000, and no excerpt fits the limits either): src/main/resources/static/werkator.js (advisory: Jev judged every changed file)
- **hint** 1 changed file was given to the AI as excerpt with 40 lines around each changed line, not in full (all full files together would exceed [review] max_full_files_chars = 160000): src/main/resources/static/werkator.css
- **hint** 4 changed files were given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (all full files together would exceed [review] max_full_files_chars = 160000): src/main/kotlin/de/hoennig/werkator/server/UiViews.kt, src/main/resources/templates/builds.html, src/main/resources/templates/home.html and 1 more
- **hint** 5 changed files were given to the AI only as diff, not in full, so it could not check them against the rest of their file (all full files together would exceed [review] max_full_files_chars = 160000, and no excerpt fits the limits either): src/test/kotlin/de/hoennig/werkator/build/OutdatedRunsUnitTest.kt, src/test/kotlin/de/hoennig/werkator/server/BuildsApiControllerRestTest.kt, src/test/kotlin/de/hoennig/werkator/server/RepoOverviewsUnitTest.kt and 2 more (advisory: Jev judged every changed file)
- **hint** excerpt selection by openrouter/openai/gpt-6-luna failed, the fixed window was used: src/main/resources/static/werkator.css (a range lies outside the file), src/main/resources/static/werkator.js (a range lies outside the file)
### Classifier
11 of 11 units passed all questions (1 PR document(s)).
<sub>
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 71824, calls 1, tokens in 69062 / out 13823 (reasoning included in out), duration 228.2 s, cost 0.0373 USD (reported), classifier `jev-1.13.0` calls 11, tokens in 10278, cost 0.0004 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 12, tokens in 144540 / out 2244, cost 0.0029 USD (reported), build file judge `jev-1.13.0` calls 20, tokens in 28210, cost 0.0012 USD, phases: path_judge 1.4 s, classifier 0.8 s, context 55.7 s, model_review 169.0 s, config: defaults + host + repository (.werkrevisor.toml at main faa86e0).<br>
Reviewed head `981409b6f9e26d1683a0185482c398300292cd84` against base `faa86e060b9aece97c20627912bdb450e9e68fa5`, werkrevisor 0.38.0.
</sub>
werkrevisor: GREEN / PASS for 981409b6f9e26d1683a0185482c398300292cd84.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `981409b6f9e26d1683a0185482c398300292cd84`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:981409b6f9e26d1683a0185482c398300292cd84 -->
ai-reviewer
scheduled this pull request to auto merge when all checks succeed 2026-10-12 16:06:56 +02:00
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.
See the PR-doc.
A failed or timed-out run is outdated once its branch is deleted or a newer run of its name ended with a verdict. The History shows it grey with an
outdatedtag that gives the reason, and the home strip draws it grey.🤖 Generated with Claude Code
🟢 werkrevisor GREEN for
a7fce6d, superseded by the result for981409b🟢 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
Findings
[low] Grammar issue in Werkbaum task title at
docs/werkator.werkbaum:174-175hint
The new Werkbaum entry "A failure a newer run or a deleted branch overtook is shown as outdated" is missing the relative pronoun that introduces the relative clause. As written, "a failure" is followed by another noun phrase starting with "a" and an intransitive past-tense verb, so the relationship between the failure and what overtook it is left unexpressed. A clearer phrasing would be "A failure that a newer run or a deleted branch overtook" or "A failure overtaken by a newer run or a deleted branch". This is a wording nit; the meaning is recoverable from context.
[low] Awkward phrasing in scenario title at
docs/prs/2026-10-12-PR#156-outdated-failures.md:114, hint, as a line commentClassifier
11 of 11 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 71074, calls 1, tokens in 68399 / out 29105 (reasoning included in out), duration 276.7 s, cost 0.0554 USD (reported), classifier `jev-1.13.0` calls 11, tokens in 10274, cost 0.0004 USD, finding judge `none` calls 0, tokens in 0, cost 0.0000 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 11, tokens in 141491 / out 1938, cost 0.0187 USD (reported), build file judge `jev-1.13.0` calls 20, tokens in 28210, cost 0.0012 USD, phases: path_judge 1.3 s, classifier 0.8 s, context 36.5 s, model_review 236.4 s, finding_judge 0.0 s, config: defaults + host + repository (.werkrevisor.toml at main1 answer ignored because of a confidence below [classifier] min_confidence.
faa86e0).Reviewed head `a7fce6d76268352315994cfe5e2b0ba978c99b52` against base `faa86e060b9aece97c20627912bdb450e9e68fa5`, werkrevisor 0.38.0.
werkrevisor: GREEN / PASS for
a7fce6d76268352315994cfe5e2b0ba978c99b52.The result comment of werkrevisor holds the details.
@@ -44,6 +44,8 @@ Wherever a branch name is shown — the Latest, Branches, History and Current BuThe History page carries the build-duration trend above its table (`BuildDurationTrends`, PR#49): one card per build *definition* — never per branch, since a branch leaves two or three measurements and disappears — over the last 30 successful builds, however old (PR#84; a time window left rarely built repositories without a trend and let a slow drift become the median), showing the series, the median with min and max, and the latest run's distance from that median, amber from a quarter above it. Derived on read from the recorded history, so nothing is stored; since records outlive their artifacts (up to 100 per build name), a single-branch build such as a nightly or release build has a series too; the median rather than the average is what makes pooling every branch of one definition affordable. Served as `GET /api/builds/durations` (repository-scoped like every route), which answers a private repository with an empty list rather than a redacted one — not because the timings are secret (they are metadata, and `latest`/`branches`/`history` hand them out) but because a card is grouped by build definition, and redacting that name to `n/a` leaves every card labelled alike and the list saying nothing. `UiFormats.trendDelta` and its `werkator.js` twin must word the distance identically.A failed or timed-out run is *outdated* once its branch is gone from origin or a newer run of its name ended with a verdict — `success`, `failed` or `timed_out`, never `pending`, `running`, `cancelled` or `interrupted` (`OutdatedRuns`, PR#156): derived on read over the whole history, carried as `BuildResultDto.outdated` and `RecentBuildDto.outdated`, and shown grey with an `outdated` tag in the History and as a grey bar in the home strip; `UiFormats.outdatedTitle` and its `werkator.js` twin word the reason.Writing rule: line longer than 400 characters (512) (werkrevisor writing rule)
Fix the line, or reply why it stays, and resolve this comment.
Fixed in
981409b: the paragraph is split into four sentences, one per line, each under 400 characters.@@ -0,0 +111,4 @@- [RepoOverviewsUnitTest: the strip marks a failure a newer run overtook](../../src/test/kotlin/de/hoennig/werkator/server/RepoOverviewsUnitTest.kt)- [UiViewsUnitTest: an outdated failure is a grey bar of its own height](../../src/test/kotlin/de/hoennig/werkator/server/UiViewsUnitTest.kt)#### Scenario#156.07: A private repository tells why a run is outdated, but not with what![low] Awkward phrasing in scenario title (werkrevisor)
hint
The Scenario#156.07 title ends with "but not with what!", which does not name what is redacted. The scenario body makes the intent clear (the reason, the outcome and the time of the newer run stay; its commit becomes
n/aand its page is not linked), but the title alone does not convey that. A clearer phrasing would be "but not which newer build" or "but not with which data".Fixed in
981409b: the title now says "but not which commit superseded it".New commits pushed, approval review dismissed automatically according to repository settings
🟢 werkrevisor: GREEN / PASS
Change kind:
mixed.Reasons
a7fce6dnot carried over: 3 approved block(s) are missingClassifier
11 of 11 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 71824, calls 1, tokens in 69062 / out 13823 (reasoning included in out), duration 228.2 s, cost 0.0373 USD (reported), classifier `jev-1.13.0` calls 11, tokens in 10278, cost 0.0004 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 12, tokens in 144540 / out 2244, cost 0.0029 USD (reported), build file judge `jev-1.13.0` calls 20, tokens in 28210, cost 0.0012 USD, phases: path_judge 1.4 s, classifier 0.8 s, context 55.7 s, model_review 169.0 s, config: defaults + host + repository (.werkrevisor.toml at mainfaa86e0).Reviewed head `981409b6f9e26d1683a0185482c398300292cd84` against base `faa86e060b9aece97c20627912bdb450e9e68fa5`, werkrevisor 0.38.0.
werkrevisor: GREEN / PASS for
981409b6f9e26d1683a0185482c398300292cd84.The result comment of werkrevisor holds the details.