Legacy sandbox rename and instance restart check split into steps (v1.37.12) #131

Merged
ai-reviewer merged 4 commits from mihoe/config-legacy-sandbox-steps into main 2026-10-09 13:23:49 +02:00
Owner

Historic PR-documentation is not maintained along with new PRs — treat it as a snapshot, not as current documentation.

The Problem

Two methods of ConfigLoader stand at or above the Mutation-CRAP target of 15 in the nightly mutation build:

Method Mutation-CRAP Complexity Killed / eligible
ConfigLoader.renameLegacySandbox 15.93 14 11 / 14
ConfigLoader.checkRestartsInstance 15.00 15 14 / 14

renameLegacySandbox walked the sections, the entries and the rename in one method, with nested labelled returns.
It was 14.57 in one night and 15.93 in the next: one mutant decides.
checkRestartsInstance has every mutant killed, but its complexity alone is 15, so it has no room below the target.

Non-Goals

  • No change of the behaviour: the same rename, the same warning, the same refusals.

The Scenarios

Feature: The legacy bwrap section

Scenario#131.01: An explicit werkdock section wins over the legacy bwrap one

So that a file in the middle of its rename means what its new name says.

  • Given a build definition with a bwrap section naming a rootfs and a binary
  • And a werkdock section in the same definition naming another rootfs
  • When the configuration is loaded
  • Then the rootfs of werkdock applies
  • And the binary of bwrap.werkdock becomes werkdock.binary
Verified by

Scenario#131.02: A configuration in the old branch format keeps its sandbox binary

So that an installation that has not moved its configuration to build definitions yet still runs its builds with the werkdock binary it names.

  • Given a configuration in the old branch format, whose branch main names its werkdock binary under the old section name bwrap
  • When the configuration is loaded
  • Then the branch main builds with that werkdock binary
Verified by

Scenario#131.03: The legacy name is warned about once per file

So that the log asks for the rename without repeating it on every load, and stays quiet for a file that uses the new name.

  • Given a file with a bwrap section
  • When the same loader loads it twice
  • Then the warning "reading the 'bwrap' section of …" is logged once
  • And a file with a werkdock section logs no such warning
Verified by

The Solution

  • renameLegacySandbox maps the builds and branches sections through withRenamedSandboxes, which maps each entry through withRenamedSandbox.
  • Whether anything was renamed is no longer a flag set inside the lambda: a legacy section is always removed, so the result differs from the input exactly then.
  • checkRestartsInstance picks the definitions with restartsInstance: true; checkRestartingDefinition refuses builds.default and a definition without trigger.branches.

Measured locally with PIT on ConfigLoader:

Method Mutation-CRAP before after
ConfigLoader.renameLegacySandbox 15.93 6.17
ConfigLoader.withRenamedSandboxes new 3.14
ConfigLoader.withRenamedSandbox new 8.00
ConfigLoader.checkRestartsInstance 15.00 7.00
ConfigLoader.checkRestartingDefinition new 8.00
highest of ConfigLoader 15.93 13.93

The gate stays at 15.
With PR#129 and PR#130, no method of the last nightly report is above 15 any more.

Prerequisite PRs

  • PR#130 — this branch is stacked on it, for the version and the release notes.

🤖 Generated with Claude Code

> Historic PR-documentation is not maintained along with new PRs — treat it as a snapshot, not as current documentation. ## The Problem Two methods of `ConfigLoader` stand at or above the Mutation-CRAP target of 15 in the nightly mutation build: | Method | Mutation-CRAP | Complexity | Killed / eligible | |--------------------------------------|--------------:|-----------:|------------------:| | `ConfigLoader.renameLegacySandbox` | 15.93 | 14 | 11 / 14 | | `ConfigLoader.checkRestartsInstance` | 15.00 | 15 | 14 / 14 | `renameLegacySandbox` walked the sections, the entries and the rename in one method, with nested labelled returns. It was 14.57 in one night and 15.93 in the next: one mutant decides. `checkRestartsInstance` has every mutant killed, but its complexity alone is 15, so it has no room below the target. ## Non-Goals - No change of the behaviour: the same rename, the same warning, the same refusals. ## The Scenarios ### Feature: The legacy `bwrap` section #### Scenario#131.01: An explicit `werkdock` section wins over the legacy `bwrap` one So that a file in the middle of its rename means what its new name says. - **Given** a build definition with a `bwrap` section naming a rootfs and a binary - **And** a `werkdock` section in the same definition naming another rootfs - **When** the configuration is loaded - **Then** the rootfs of `werkdock` applies - **And** the binary of `bwrap.werkdock` becomes `werkdock.binary` ##### Verified by - [ConfigLoaderUnitTest: an explicit werkdock section wins over the legacy bwrap one](../../src/test/kotlin/de/hoennig/werkator/config/ConfigLoaderUnitTest.kt) #### Scenario#131.02: A configuration in the old branch format keeps its sandbox binary So that an installation that has not moved its configuration to build definitions yet still runs its builds with the werkdock binary it names. - **Given** a configuration in the old branch format, whose branch `main` names its werkdock binary under the old section name `bwrap` - **When** the configuration is loaded - **Then** the branch `main` builds with that werkdock binary ##### Verified by - [ConfigLoaderUnitTest: a legacy branches entry reads its bwrap section as werkdock too](../../src/test/kotlin/de/hoennig/werkator/config/ConfigLoaderUnitTest.kt) #### Scenario#131.03: The legacy name is warned about once per file So that the log asks for the rename without repeating it on every load, and stays quiet for a file that uses the new name. - **Given** a file with a `bwrap` section - **When** the same loader loads it twice - **Then** the warning "reading the 'bwrap' section of …" is logged once - **And** a file with a `werkdock` section logs no such warning ##### Verified by - [ConfigLoaderUnitTest: the legacy bwrap section is warned about once per file](../../src/test/kotlin/de/hoennig/werkator/config/ConfigLoaderUnitTest.kt) ## The Solution - `renameLegacySandbox` maps the `builds` and `branches` sections through `withRenamedSandboxes`, which maps each entry through `withRenamedSandbox`. - Whether anything was renamed is no longer a flag set inside the lambda: a legacy section is always removed, so the result differs from the input exactly then. - `checkRestartsInstance` picks the definitions with `restartsInstance: true`; `checkRestartingDefinition` refuses `builds.default` and a definition without `trigger.branches`. Measured locally with PIT on `ConfigLoader`: | Method | Mutation-CRAP before | after | |------------------------------------------|---------------------:|------:| | `ConfigLoader.renameLegacySandbox` | 15.93 | 6.17 | | `ConfigLoader.withRenamedSandboxes` | new | 3.14 | | `ConfigLoader.withRenamedSandbox` | new | 8.00 | | `ConfigLoader.checkRestartsInstance` | 15.00 | 7.00 | | `ConfigLoader.checkRestartingDefinition` | new | 8.00 | | highest of `ConfigLoader` | 15.93 | 13.93 | The gate stays at 15. With PR#129 and PR#130, no method of the last nightly report is above 15 any more. ## Prerequisite PRs - PR#130 — this branch is stacked on it, for the version and the release notes. --- 🤖 Generated with [Claude Code](https://claude.com/claude-code)
mi force-pushed mihoe/config-legacy-sandbox-steps from ed65eb699f to 6acafaace4 2026-10-09 12:50:45 +02:00 Compare
mi force-pushed mihoe/config-legacy-sandbox-steps from 6acafaace4 to 40812babce 2026-10-09 13:00:20 +02:00 Compare
mi force-pushed mihoe/config-legacy-sandbox-steps from 40812babce to bd327443f3 2026-10-09 13:06:16 +02:00 Compare
mi added 2 commits 2026-10-09 13:11:12 +02:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Legacy sandbox rename and instance restart check split into steps (v1.37.12)
werkator build succeeded after 02:05
ai-review/assessment human review required; a human approval unlocks the merge; review request failed: POST /repos/mi/werkator/pulls/131/requested_reviewers failed with HTTP 422
ai-review/gate build failed after 01:16
025af8decf
renameLegacySandbox maps sections and entries through withRenamedSandboxes
and withRenamedSandbox and tells a rename by the changed result instead of
a flag; checkRestartsInstance leaves the refusals to
checkRestartingDefinition. Tests cover the precedence of an explicit
werkdock section and the single warning per file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mi force-pushed mihoe/config-legacy-sandbox-steps from bd327443f3 to 025af8decf 2026-10-09 13:11:12 +02:00 Compare
claude-code changed title from WIP: Legacy sandbox rename and instance restart check split into steps to Legacy sandbox rename and instance restart check split into steps (v1.37.12) 2026-10-09 13:15:21 +02:00
Collaborator
🟡 werkrevisor YELLOW for 025af8d, superseded by the result for e0b998f

🟡 werkrevisor: YELLOW / HUMAN_REVIEW

Change kind: mixed.

Reasons

  • YELLOW spec: docs/prs/2026-10-09-PR#131-legacy-sandbox-and-restart-checks-split.md Scenario#131.01 hard_to_read (0.51 > yellow_above = 0.5)
  • hint 3 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 2 changed files were 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, src/test/kotlin/de/hoennig/werkator/config/ConfigLoaderUnitTest.kt
  • hint 1 finding(s) of low severity or rated minor by Jev: docs/prs/2026-10-09-PR#131-legacy-sandbox-and-restart-checks-split.md:28-36

Findings

  1. Conflated Scenario at docs/prs/2026-10-09-PR#131-legacy-sandbox-and-restart-checks-split.md:28-36, severity unknown, counted as medium, hint, as a line comment

Classifier

Unit Question Problem Confidence Verdict
docs/prs/2026-10-09-PR#131-legacy-sandbox-and-restart-checks-split.md Scenario#131.01 hard_to_read 0.51 0.48 YELLOW

5 of 6 units passed all questions (1 PR document(s)).

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 38585, calls 1, tokens in 37088 / out 9531 (reasoning included in out), duration 70.6 s, cost 0.0225 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 5139, cost 0.0002 USD, finding judge `jev-1.13.0` calls 1, tokens in 2557, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 2, tokens in 52834 / out 119, cost 0.0067 USD (reported), build file judge `jev-1.13.0` calls 4, tokens in 5651, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, context 5.6 s, model_review 63.7 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 1943a59).
Reviewed head `025af8decfc9abf5986069f459d5814f6504ec35` against base `1943a593c0db5e0352c5e5eec3da644ad06721cb`, werkrevisor 0.30.1.
<!-- werkrevisor:025af8decfc9abf5986069f459d5814f6504ec35 --> <!-- werkrevisor-verdict:YELLOW --> <!-- werkrevisor-folded --> <details><summary>🟡 werkrevisor YELLOW for <code>025af8d</code>, superseded by <a href="http://git.javagil.de/mi/werkator/pulls/131#issuecomment-2460">the result for <code>e0b998f</code></a></summary> ## 🟡 werkrevisor: YELLOW / HUMAN_REVIEW Change kind: `mixed`. ### Reasons - **YELLOW** spec: docs/prs/2026-10-09-PR#131-legacy-sandbox-and-restart-checks-split.md Scenario#131.01 hard_to_read (0.51 > yellow_above = 0.5) - **hint** 3 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** 2 changed files were 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, src/test/kotlin/de/hoennig/werkator/config/ConfigLoaderUnitTest.kt - **hint** 1 finding(s) of low severity or rated minor by Jev: docs/prs/2026-10-09-PR#131-legacy-sandbox-and-restart-checks-split.md:28-36 ### Findings 1. **Conflated Scenario** at `docs/prs/2026-10-09-PR#131-legacy-sandbox-and-restart-checks-split.md:28-36`, severity unknown, counted as medium, hint, as a line comment ### Classifier | Unit | Question | Problem | Confidence | Verdict | |---|---|---|---|---| | docs/prs/2026-10-09-PR#131-legacy-sandbox-and-restart-checks-split.md Scenario#131.01 | hard_to_read | 0.51 | 0.48 | YELLOW | 5 of 6 units passed all questions (1 PR document(s)). <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 38585, calls 1, tokens in 37088 / out 9531 (reasoning included in out), duration 70.6 s, cost 0.0225 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 5139, cost 0.0002 USD, finding judge `jev-1.13.0` calls 1, tokens in 2557, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 2, tokens in 52834 / out 119, cost 0.0067 USD (reported), build file judge `jev-1.13.0` calls 4, tokens in 5651, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, context 5.6 s, model_review 63.7 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 1943a59).<br> Reviewed head `025af8decfc9abf5986069f459d5814f6504ec35` against base `1943a593c0db5e0352c5e5eec3da644ad06721cb`, werkrevisor 0.30.1. </sub> </details>
ai-reviewer left a comment
Collaborator

werkrevisor: YELLOW / HUMAN_REVIEW for 025af8decfc9abf5986069f459d5814f6504ec35.
The result comment of werkrevisor holds the details.

werkrevisor: YELLOW / HUMAN_REVIEW for `025af8decfc9abf5986069f459d5814f6504ec35`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:025af8decfc9abf5986069f459d5814f6504ec35 -->
@@ -0,0 +25,4 @@
### Feature: The legacy `bwrap` section
#### Scenario#131.01: An explicit `werkdock` section wins over the legacy `bwrap` one
Collaborator

Conflated Scenario, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.76, severity 1.5 of 3

Scenario#131.01 combines two test cases under one Given/When/Then. The Given describes a build definition with both bwrap and werkdock sections; the final And then abruptly switches to a legacy branches entry — a different file with a different shape — without signaling the topic change. A reader has to infer from the prose preamble ("in builds as well as in the legacy branches section") that two cases are covered. Split into two scenarios (one for builds, one for legacy branches) or restructure the Given/When/Then to cover both files explicitly so the scenario reads as one atomic test.

**Conflated Scenario**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.76, severity 1.5 of 3 Scenario#131.01 combines two test cases under one Given/When/Then. The Given describes a build definition with both `bwrap` and `werkdock` sections; the final And then abruptly switches to a legacy `branches` entry — a different file with a different shape — without signaling the topic change. A reader has to infer from the prose preamble ("in `builds` as well as in the legacy `branches` section") that two cases are covered. Split into two scenarios (one for `builds`, one for legacy `branches`) or restructure the Given/When/Then to cover both files explicitly so the scenario reads as one atomic test.
Collaborator

Split as suggested: Scenario#131.01 covers the precedence of an explicit werkdock section in builds, the new Scenario#131.02 the legacy branches entry, each with its own test; the warning scenario is now #131.03.

Split as suggested: Scenario#131.01 covers the precedence of an explicit werkdock section in builds, the new Scenario#131.02 the legacy branches entry, each with its own test; the warning scenario is now #131.03.
claude-code marked this conversation as resolved
ai-reviewer scheduled this pull request to auto merge when all checks succeed 2026-10-09 13:16:57 +02:00
mi added 1 commit 2026-10-09 13:18:26 +02:00
PR#131: the legacy branches case is a scenario and a test of its own
ai-review/assessment human review required; a human approval unlocks the merge; review request failed: POST /repos/mi/werkator/pulls/131/requested_reviewers failed with HTTP 422
ai-review/gate build failed after 01:59
werkator build succeeded after 02:42
e0b998ff85
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
🟡 werkrevisor YELLOW for e0b998f, superseded by the result for f575fa9

🟡 werkrevisor: YELLOW / HUMAN_REVIEW

Change kind: mixed.

Reasons

  • YELLOW spec: docs/prs/2026-10-09-PR#131-legacy-sandbox-and-restart-checks-split.md Scenario#131.02 implementation_details (0.64 > yellow_above = 0.6)
  • hint 3 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 2 changed files were 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, src/test/kotlin/de/hoennig/werkator/config/ConfigLoaderUnitTest.kt

Classifier

Unit Question Problem Confidence Verdict
docs/prs/2026-10-09-PR#131-legacy-sandbox-and-restart-checks-split.md Scenario#131.02 implementation_details 0.64 – YELLOW

6 of 7 units passed all questions (1 PR document(s)).

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 39451, calls 1, tokens in 37911 / out 17753 (reasoning included in out), duration 114.7 s, cost 0.0326 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 6037, cost 0.0003 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 2, tokens in 52890 / out 380, cost 0.0035 USD (reported), build file judge `jev-1.13.0` calls 4, tokens in 5676, cost 0.0002 USD, phases: path_judge 0.2 s, classifier 0.5 s, context 8.7 s, model_review 104.5 s, config: defaults + host + repository (.werkrevisor.toml at main 1943a59).
Reviewed head `e0b998ff856c0e5d7b286791ac340f7ed492df2a` against base `1943a593c0db5e0352c5e5eec3da644ad06721cb`, werkrevisor 0.30.1.
<!-- werkrevisor:e0b998ff856c0e5d7b286791ac340f7ed492df2a --> <!-- werkrevisor-verdict:YELLOW --> <!-- werkrevisor-folded --> <details><summary>🟡 werkrevisor YELLOW for <code>e0b998f</code>, superseded by <a href="http://git.javagil.de/mi/werkator/pulls/131#issuecomment-2462">the result for <code>f575fa9</code></a></summary> ## 🟡 werkrevisor: YELLOW / HUMAN_REVIEW Change kind: `mixed`. ### Reasons - **YELLOW** spec: docs/prs/2026-10-09-PR#131-legacy-sandbox-and-restart-checks-split.md Scenario#131.02 implementation_details (0.64 > yellow_above = 0.6) - **hint** 3 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** 2 changed files were 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, src/test/kotlin/de/hoennig/werkator/config/ConfigLoaderUnitTest.kt ### Classifier | Unit | Question | Problem | Confidence | Verdict | |---|---|---|---|---| | docs/prs/2026-10-09-PR#131-legacy-sandbox-and-restart-checks-split.md Scenario#131.02 | implementation_details | 0.64 | – | YELLOW | 6 of 7 units passed all questions (1 PR document(s)). <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 39451, calls 1, tokens in 37911 / out 17753 (reasoning included in out), duration 114.7 s, cost 0.0326 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 6037, cost 0.0003 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 2, tokens in 52890 / out 380, cost 0.0035 USD (reported), build file judge `jev-1.13.0` calls 4, tokens in 5676, cost 0.0002 USD, phases: path_judge 0.2 s, classifier 0.5 s, context 8.7 s, model_review 104.5 s, config: defaults + host + repository (.werkrevisor.toml at main 1943a59).<br> Reviewed head `e0b998ff856c0e5d7b286791ac340f7ed492df2a` against base `1943a593c0db5e0352c5e5eec3da644ad06721cb`, werkrevisor 0.30.1. </sub> </details>
mi added 1 commit 2026-10-09 13:20:53 +02:00
PR-doc of PR#131: Scenario#131.02 in the reader's terms
ai-review/assessment AI review passed; approved by werkrevisor; merge already scheduled
ai-review/gate build succeeded after 00:57
werkator build succeeded after 02:23
f575fa9f73
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator

🟢 werkrevisor: GREEN / PASS

Change kind: mixed.

Reasons

  • hint 3 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 2 changed files were 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, src/test/kotlin/de/hoennig/werkator/config/ConfigLoaderUnitTest.kt

Classifier

7 of 7 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 39656, calls 1, tokens in 38107 / out 7901 (reasoning included in out), duration 52.3 s, cost 0.0209 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 6028, cost 0.0003 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 2, tokens in 52890 / out 405, cost 0.0007 USD (reported), build file judge `jev-1.13.0` calls 4, tokens in 5676, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, context 8.4 s, model_review 42.8 s, config: defaults + host + repository (.werkrevisor.toml at main 1943a59).
Reviewed head `f575fa9f739395c86bc1344ad7af3a5f4769ba87` against base `1943a593c0db5e0352c5e5eec3da644ad06721cb`, werkrevisor 0.30.1.
<!-- werkrevisor:f575fa9f739395c86bc1344ad7af3a5f4769ba87 --> <!-- werkrevisor-verdict:GREEN --> ## 🟢 werkrevisor: GREEN / PASS Change kind: `mixed`. ### Reasons - **hint** 3 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** 2 changed files were 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, src/test/kotlin/de/hoennig/werkator/config/ConfigLoaderUnitTest.kt ### Classifier 7 of 7 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 39656, calls 1, tokens in 38107 / out 7901 (reasoning included in out), duration 52.3 s, cost 0.0209 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 6028, cost 0.0003 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 2, tokens in 52890 / out 405, cost 0.0007 USD (reported), build file judge `jev-1.13.0` calls 4, tokens in 5676, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, context 8.4 s, model_review 42.8 s, config: defaults + host + repository (.werkrevisor.toml at main 1943a59).<br> Reviewed head `f575fa9f739395c86bc1344ad7af3a5f4769ba87` against base `1943a593c0db5e0352c5e5eec3da644ad06721cb`, werkrevisor 0.30.1. </sub>
ai-reviewer left a comment
Collaborator

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

werkrevisor: GREEN / PASS for `f575fa9f739395c86bc1344ad7af3a5f4769ba87`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:f575fa9f739395c86bc1344ad7af3a5f4769ba87 -->
ai-reviewer merged commit fb48cf1a1f into main 2026-10-09 13:23:49 +02:00
ai-reviewer deleted branch mihoe/config-legacy-sandbox-steps 2026-10-09 13:23:49 +02:00
Sign in to join this conversation.
No Reviewers
No labels
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mi/werkator#131