werkrevisor 0.55.0: the release brings the host configs in line #124

Merged
ai-reviewer merged 8 commits from claude-code/release-host-config into main 2026-10-20 18:47:44 +02:00
Collaborator

See the PR document.

🤖 Generated with Claude Code

See [the PR document](docs/prs/2026-10-18-PR%23124-release-host-config.md). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
claude-code changed title from WIP: werkrevisor 0.53.0: the release brings the host configs in line to WIP: werkrevisor 0.55.0: the release brings the host configs in line 2026-10-20 12:43:12 +02:00
claude-code force-pushed claude-code/release-host-config from 94642a54e7 to fd34793433 2026-10-20 12:43:13 +02:00 Compare
claude-code marked the pull request as ready for review 2026-10-20 14:07:54 +02:00
Collaborator
🟡 werkrevisor YELLOW for 6e4a5d6, superseded by the result for ca34c31

🟡 werkrevisor: YELLOW / HUMAN_REVIEW

Gate: no human review requested; merge conflict with main: the author rebases the branch onto main and pushes.

Change kind: mixed.

Reasons

  • YELLOW PR too large for an AI-only approval: 1124 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself
  • YELLOW risky build changes according to Jev: tools/release_rootfs.py (weakens checks 0.06, risk 1.91, security 0.47)
  • YELLOW spec: docs/prs/2026-10-18-PR#124-release-host-config.md Scenario#124.01 hard_to_read (0.51 > yellow_above = 0.5)
  • hint 8 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 13 changed file(s) agree with the PR document according to Jev

Classifier

Unit Question Problem Confidence Verdict
docs/prs/2026-10-18-PR#124-release-host-config.md Scenario#124.01 hard_to_read 0.51 0.50 YELLOW

10 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 62324, calls 1, tokens in 59821 / out 29306 (reasoning included in out), duration 389.9 s, cost 0.0531 USD (reported), classifier `jev-1.13.0` calls 11, tokens in 9108, cost 0.0004 USD, PR document check `jev-1.13.0` calls 13, tokens in 53734, cost 0.0023 USD, build file judge `jev-1.13.0` calls 10, tokens in 20725, cost 0.0009 USD, phases: path_judge 0.7 s, classifier 0.7 s, doc_check 0.9 s, context 0.3 s, model_review 386.8 s, config: defaults + host + repository (.werkrevisor.toml at main 89110d6).
Reviewed head `6e4a5d6b298434db859fac16c88a88065c87b3a1` against base `89110d60074e46174030a3e1d4312755bd33e52f`, werkrevisor 0.54.0.

Diagrams

Drawn by a model from the diff with PR Lens: a view of what the PR touches, not a statement of what it does.

pr-lens-containers.svg

pr-lens-flow-view.svg

<!-- werkrevisor:6e4a5d6b298434db859fac16c88a88065c87b3a1 --> <!-- werkrevisor-verdict:YELLOW --> <!-- werkrevisor-blocks:305669e36760c7a83807f6b58d534d31,832793ff5fc52ffc21487b4dd4206fd5,aacf660d900f1cf6c00c8ce867620c83,f5c2e906baf3844d72d0ef8a718ba658,7a144cca8e6c546396200643ffc251b5,805a1893340fd6a3093c54434560e3f4,d0fc31fa2137648fd8f500a7b87ab2d6,998a5d6c81f2a11112bba28500d2d778,18708c73a07c545f068edb8982086c85,c2753e39cf9e52586b992d6b1ede8371,7672a3e97f2a607e22c0d99b4036e226,39bc6b2ea009980ab6cf719121132edc,cd625670e87f96ac9089e9288704d4d2,3e65a187fe63056c0142a6aaad3da076,d35cf66066225cc0914388be53306ec7,a63e3eadc7708005e889ed8914dc6c2a,4aa6b1ec2c296076566027912899ee65,245b41c6771d2b8c548d2a69cb556f11,95e06f7d9a3dc6f993dac0ca8f7e922b,654ca54a98f177ae2dcbf3eaca7bc677,a24e58bd7fc64adb2fdbdf234b536d1e,847cb22f00f3ffa2bb76025f37894cfc,9a4787032c948e1c54c2c2c5882ef5c6,f0d37a9203eb48b19012587c1f8e6668,e799230b5542b7e6ebc89a9163cfc9ad,6af212e1c8aa18f261de96e964a06d58,349c550378378755ef0a29cbf18ed61b,94a5af5be0b3eb52cb0417bafc81ed55,1ee3e6fce1b5fd80ebb14c150ed0375e,83b2ef635872e8f130c23dd6c6f8e0a3,9b5d1e3a2dedc4c51cd0edf1b20561b3,19aa140f95ece614b14d6c4f435c3e04,9271d2a48791d1288ca062db82a86374,552072a910d7f69050b5d8e413aa31a2,5c8355d2bb7cbe1f3c8da4f0619433d0,6cdd88b379a26b7ef195a85dba59f876,8fa27bc89abe5c57c925fba8f1028a5c,3e8dcb5f80581033a88f5713f0879b66,1c01e307b2c31454f77b0ef5972d8f91 --> <!-- werkrevisor:diagrams --> <!-- werkrevisor-folded --> <details><summary>🟡 werkrevisor YELLOW for <code>6e4a5d6</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/124#issuecomment-6717">the result for <code>ca34c31</code></a></summary> ## 🟡 werkrevisor: YELLOW / HUMAN_REVIEW Gate: no human review requested; merge conflict with main: the author rebases the branch onto main and pushes. Change kind: `mixed`. ### Reasons - **YELLOW** PR too large for an AI-only approval: 1124 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself - **YELLOW** risky build changes according to Jev: tools/release_rootfs.py (weakens checks 0.06, risk 1.91, security 0.47) - **YELLOW** spec: docs/prs/2026-10-18-PR#124-release-host-config.md Scenario#124.01 hard_to_read (0.51 > yellow_above = 0.5) - **hint** 8 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** 13 changed file(s) agree with the PR document according to Jev ### Classifier | Unit | Question | Problem | Confidence | Verdict | |---|---|---|---|---| | docs/prs/2026-10-18-PR#124-release-host-config.md Scenario#124.01 | hard_to_read | 0.51 | 0.50 | YELLOW | 10 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 62324, calls 1, tokens in 59821 / out 29306 (reasoning included in out), duration 389.9 s, cost 0.0531 USD (reported), classifier `jev-1.13.0` calls 11, tokens in 9108, cost 0.0004 USD, PR document check `jev-1.13.0` calls 13, tokens in 53734, cost 0.0023 USD, build file judge `jev-1.13.0` calls 10, tokens in 20725, cost 0.0009 USD, phases: path_judge 0.7 s, classifier 0.7 s, doc_check 0.9 s, context 0.3 s, model_review 386.8 s, config: defaults + host + repository (.werkrevisor.toml at main 89110d6).<br> Reviewed head `6e4a5d6b298434db859fac16c88a88065c87b3a1` against base `89110d60074e46174030a3e1d4312755bd33e52f`, werkrevisor 0.54.0. </sub> ### Diagrams Drawn by a model from the diff with [PR Lens](https://github.com/coldteadotai/pr-lens): a view of what the PR touches, not a statement of what it does. ![pr-lens-containers.svg](https://git.javagil.de/attachments/53fcc4ac-9727-41cf-a6b0-f5d3f10aa616) ![pr-lens-flow-view.svg](https://git.javagil.de/attachments/bd019a73-430d-4b62-9b98-2bf5fcac8c13) </details>
ai-reviewer left a comment
Collaborator

Codex review of 6e4a5d6b298434db859fac16c88a88065c87b3a1

Codex review of `6e4a5d6b298434db859fac16c88a88065c87b3a1` <!-- werkrevisor-codex -->
@@ -214,2 +318,4 @@
with open(yml, encoding="utf-8") as f:
text = ARCHIVE.sub(name, f.read())
if blocks and repo in blocks:
text = _replace_block(text, blocks[repo])
Collaborator

[medium] Revalidate host settings before replacing the block (Codex review)

Host blocks are validated before archive assembly, but install() subsequently rereads each machine config and replaces its block using the earlier result without checking for intervening changes. If an operator changes a known setting, such as model.id, during assembly, installation silently overwrites that setting instead of refusing the release. This was reproduced in memory by changing model.id between validation and installation.

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

**[medium] Revalidate host settings before replacing the block** (Codex review) Host blocks are validated before archive assembly, but install() subsequently rereads each machine config and replaces its block using the earlier result without checking for intervening changes. If an operator changes a known setting, such as model.id, during assembly, installation silently overwrites that setting instead of refusing the release. This was reproduced in memory by changing model.id between validation and installation. Fix it, or reply why it does not hold, and resolve this comment. <!-- werkrevisor-codex -->
Author
Collaborator

Fixed in 37517ce: install compares each host block with the checked one before it writes any machine config, and again at its write; a changed block stops the install with "the host block changed since the check". Test: test_a_host_block_changed_after_the_check_stops_the_install, red without the fix.

Fixed in `37517ce`: `install` compares each host block with the checked one before it writes any machine config, and again at its write; a changed block stops the install with "the host block changed since the check". Test: `test_a_host_block_changed_after_the_check_stops_the_install`, red without the fix.
claude-code marked this conversation as resolved
Collaborator
⚠️ werkrevisor ERROR for ?, superseded by the result for ca34c31

Codex review: critical

The release now automatically rewrites production host configurations that control review and merge gates across repositories. A mistake could weaken those gates or overwrite operator settings in ways the fixture-based tests would not reveal.

Findings

  1. [medium] Revalidate host settings before replacing the block at tools/release_rootfs.py:321, 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 532429 (cached 457984) / out 2975, 110.2 s, 16 commands; reviewed head `6e4a5d6b298434db859fac16c88a88065c87b3a1`.
<!-- werkrevisor-codex:6e4a5d6b298434db859fac16c88a88065c87b3a1 --> <!-- werkrevisor-codex-critical:true --> <!-- 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/124#issuecomment-6717">the result for <code>ca34c31</code></a></summary> ## Codex review: critical The release now automatically rewrites production host configurations that control review and merge gates across repositories. A mistake could weaken those gates or overwrite operator settings in ways the fixture-based tests would not reveal. ### Findings 1. **[medium] Revalidate host settings before replacing the block** at `tools/release_rootfs.py:321`, 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 532429 (cached 457984) / out 2975, 110.2 s, 16 commands; reviewed head `6e4a5d6b298434db859fac16c88a88065c87b3a1`. </sub> </details>
claude-code added 5 commits 2026-10-20 16:25:25 +02:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
It refuses before any write when a host block holds a setting that the new parser accepts
and the file would lose, or when a host config cannot be checked.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The release would otherwise add their rules to the host blocks on mih09,
and the appended extra_instructions of the .werkrevisor.toml would stand twice in the prompt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The install refuses a host block that changed since the check
ai-review/codex waiting for the Codex review
werkator build succeeded after 00:22
werkator/werkrevisor-statistics build succeeded after 00:52
ai-review/gate build failed after 12:12
37517cef56
Fixes the Codex finding: an operator change during the assembly was overwritten.
Scenario#124.01 reads in shorter steps.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-code force-pushed claude-code/release-host-config from 6e4a5d6b29 to 37517cef56 2026-10-20 16:25:25 +02:00 Compare
Author
Collaborator

Answer to the review of 6e4a5d6, now at 37517ce:

  • Merge conflict: rebased onto main 0.54.1; the version stays 0.55.0.
  • Scenario#124.01 hard_to_read: rewritten in shorter steps.
  • Codex finding 6536: fixed in 37517ce, thread answered and resolved.
  • Size and the risk of tools/release_rootfs.py: structural; they are for the human.
    About 300 of the changed lines are the two copies of .werkrevisor.toml in tests/fixtures/.
Answer to the review of `6e4a5d6`, now at `37517ce`: - Merge conflict: rebased onto `main` 0.54.1; the version stays 0.55.0. - Scenario#124.01 hard_to_read: rewritten in shorter steps. - Codex finding 6536: fixed in `37517ce`, thread answered and resolved. - Size and the risk of `tools/release_rootfs.py`: structural; they are for the human. About 300 of the changed lines are the two copies of `.werkrevisor.toml` in `tests/fixtures/`.
claude-code added 1 commit 2026-10-20 16:31:54 +02:00
config/werkdock.toml holds only the host part
werkator build succeeded after 00:11
werkator/werkrevisor-statistics build succeeded after 00:33
ai-review/codex waiting for the Codex review
ai-review/gate build failed after 00:01
4909ef7e9e
Its .werkrevisor.toml appends the same extra_instructions, as for werkator and werkcrappit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-code added 1 commit 2026-10-20 16:48:54 +02:00
PR document: the werkdock host block is synced
werkator build succeeded after 00:11
werkator/werkrevisor-statistics build succeeded after 00:40
ai-review/assessment human review required; a human approval unlocks the merge; review requested from mi; merge scheduled for when the checks succeed
ai-review/gate build succeeded after 13:11
ai-review/codex 1 open Codex finding(s); resolve each line comment
ca34c31d43
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
🟡 werkrevisor YELLOW for ca34c31, superseded by the result for 04fc1ce

🟡 werkrevisor: YELLOW / HUMAN_REVIEW

Change kind: mixed.

Reasons

  • YELLOW PR too large for an AI-only approval: 1616 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself
  • YELLOW risky build changes according to Jev: tools/release_rootfs.py (weakens checks 0.06, risk 1.91, security 0.42)
  • hint 10 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 15 changed file(s) agree with the PR document according to Jev
  • hint the model review failed: TimeoutError: review exceeded 720 seconds (advisory: Jev judged every changed file)

Classifier

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

Usage: model `openrouter/minimax/minimax-m3`, LLM failed (TimeoutError), tokens counted before the call 75543, duration 736.0 s, cost unknown, classifier `jev-1.13.0` calls 11, tokens in 9268, cost 0.0004 USD, PR document check `jev-1.13.0` calls 15, tokens in 68307, cost 0.0029 USD, build file judge `jev-1.13.0` calls 12, tokens in 27895, cost 0.0012 USD, phases: path_judge 0.7 s, classifier 0.7 s, doc_check 1.0 s, context 0.9 s, model_review 723.1 s, config: defaults + host + repository (.werkrevisor.toml at main 88772c4).
Reviewed head `ca34c31d43d7435d7fae20138fed689b03f56eca` against base `88772c494abe8d265952e10c082327a0785451c2`, werkrevisor 0.54.1.

Diagrams

Drawn by a model from the diff with PR Lens: a view of what the PR touches, not a statement of what it does.

pr-lens-v-containers.svg

pr-lens-v-flow.svg

<!-- werkrevisor:ca34c31d43d7435d7fae20138fed689b03f56eca --> <!-- werkrevisor-verdict:YELLOW --> <!-- werkrevisor-blocks:305669e36760c7a83807f6b58d534d31,832793ff5fc52ffc21487b4dd4206fd5,aacf660d900f1cf6c00c8ce867620c83,f5c2e906baf3844d72d0ef8a718ba658,7a144cca8e6c546396200643ffc251b5,805a1893340fd6a3093c54434560e3f4,d0fc31fa2137648fd8f500a7b87ab2d6,998a5d6c81f2a11112bba28500d2d778,18708c73a07c545f068edb8982086c85,c16b4399735e56ef61d9a3ef44caae7a,34bf6845bb99027ed915ca5943b8807d,5b303e84151f304c18276ec085454eab,7672a3e97f2a607e22c0d99b4036e226,0a54ca71bf2fbafc42c5333c7508a359,cd625670e87f96ac9089e9288704d4d2,925a82311f6382510f669d77c1841aa7,3578c51131abc59e3f322164c6065b85,a63e3eadc7708005e889ed8914dc6c2a,4aa6b1ec2c296076566027912899ee65,245b41c6771d2b8c548d2a69cb556f11,95e06f7d9a3dc6f993dac0ca8f7e922b,adb276dc67e67b4f6fd9c04d5ef0a2f8,654ca54a98f177ae2dcbf3eaca7bc677,a24e58bd7fc64adb2fdbdf234b536d1e,847cb22f00f3ffa2bb76025f37894cfc,9a4787032c948e1c54c2c2c5882ef5c6,83bf2b3b333be723ae5a8df398fed8f7,e799230b5542b7e6ebc89a9163cfc9ad,6af212e1c8aa18f261de96e964a06d58,349c550378378755ef0a29cbf18ed61b,94a5af5be0b3eb52cb0417bafc81ed55,7bc5a73ef9a7804c6a09a7344d7e373c,83b2ef635872e8f130c23dd6c6f8e0a3,9b5d1e3a2dedc4c51cd0edf1b20561b3,19aa140f95ece614b14d6c4f435c3e04,fe1dd69acb1e263a990eee626e81ba9b,0e605b24c408e597c412868fd9ba4d8d,5e106c8ef5f51b59679adc58ef70eb3c,69dad5e9d5de65e7664b8b6e39d926f7,6cdd88b379a26b7ef195a85dba59f876,8fa27bc89abe5c57c925fba8f1028a5c,3e8dcb5f80581033a88f5713f0879b66,c5e9debc0c184512bae99b6321221a04 --> <!-- werkrevisor:diagrams --> <!-- werkrevisor-folded --> <details><summary>🟡 werkrevisor YELLOW for <code>ca34c31</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/124#issuecomment-6868">the result for <code>04fc1ce</code></a></summary> ## 🟡 werkrevisor: YELLOW / HUMAN_REVIEW Change kind: `mixed`. ### Reasons - **YELLOW** PR too large for an AI-only approval: 1616 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself - **YELLOW** risky build changes according to Jev: tools/release_rootfs.py (weakens checks 0.06, risk 1.91, security 0.42) - **hint** 10 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** 15 changed file(s) agree with the PR document according to Jev - **hint** the model review failed: TimeoutError: review exceeded 720 seconds (advisory: Jev judged every changed file) ### Classifier 11 of 11 units passed all questions (1 PR document(s)). 4 answers ignored because of a confidence below [classifier] min_confidence. <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM failed (TimeoutError), tokens counted before the call 75543, duration 736.0 s, cost unknown, classifier `jev-1.13.0` calls 11, tokens in 9268, cost 0.0004 USD, PR document check `jev-1.13.0` calls 15, tokens in 68307, cost 0.0029 USD, build file judge `jev-1.13.0` calls 12, tokens in 27895, cost 0.0012 USD, phases: path_judge 0.7 s, classifier 0.7 s, doc_check 1.0 s, context 0.9 s, model_review 723.1 s, config: defaults + host + repository (.werkrevisor.toml at main 88772c4).<br> Reviewed head `ca34c31d43d7435d7fae20138fed689b03f56eca` against base `88772c494abe8d265952e10c082327a0785451c2`, werkrevisor 0.54.1. </sub> ### Diagrams Drawn by a model from the diff with [PR Lens](https://github.com/coldteadotai/pr-lens): a view of what the PR touches, not a statement of what it does. ![pr-lens-v-containers.svg](https://git.javagil.de/attachments/319be55a-af61-42f1-aabc-d30906fa5c4c) ![pr-lens-v-flow.svg](https://git.javagil.de/attachments/6ef0d3c0-db77-4ede-9a24-a3a66fd1862f) </details>
ai-reviewer scheduled this pull request to auto merge when all checks succeed 2026-10-20 17:02:00 +02:00
ai-reviewer requested review from mi 2026-10-20 17:02:00 +02:00
ai-reviewer left a comment
Collaborator

Codex review of ca34c31d43d7435d7fae20138fed689b03f56eca

Codex review of `ca34c31d43d7435d7fae20138fed689b03f56eca` <!-- werkrevisor-codex -->
@@ -47,0 +105,4 @@
except blocktools.NoBlock as e:
raise ReleaseError(str(e)) from None
new = content.rstrip("\n").split("\n")
if old == new:
Collaborator

[medium] Retain snapshots of initially matching host blocks (Codex review)

Returning None when the block matches excludes it from both install-time checks. If an operator changes that block while the archive is assembled, install switches the archive without validating the changed configuration. An in-memory reproduction confirmed that adding the removed doc_check.model setting after preflight succeeds through install, leaving a configuration the new parser rejects. Keep snapshots for every checked block, including those requiring no replacement.

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

**[medium] Retain snapshots of initially matching host blocks** (Codex review) Returning None when the block matches excludes it from both install-time checks. If an operator changes that block while the archive is assembled, install switches the archive without validating the changed configuration. An in-memory reproduction confirmed that adding the removed doc_check.model setting after preflight succeeds through install, leaving a configuration the new parser rejects. Keep snapshots for every checked block, including those requiring no replacement. Fix it, or reply why it does not hold, and resolve this comment. <!-- werkrevisor-codex -->
Author
Collaborator

Fixed in 04fc1ce: host_config_blocks keeps the checked snapshot of every block, also an equal one, and install compares each of them before any write. Test: test_an_equal_host_block_changed_after_the_check_stops_the_install, red without the fix.

Fixed in `04fc1ce`: `host_config_blocks` keeps the checked snapshot of every block, also an equal one, and `install` compares each of them before any write. Test: `test_an_equal_host_block_changed_after_the_check_stops_the_install`, red without the fix.
claude-code marked this conversation as resolved
Collaborator
⚠️ werkrevisor ERROR for ?, superseded by the result for 04fc1ce

Codex review: critical

The release now automatically replaces production host configurations that control review and merge gates across repositories. A mistake could weaken those gates, and tests using copied repository configurations cannot establish the actual production effect.

Findings

  1. [medium] Retain snapshots of initially matching host blocks at tools/release_rootfs.py:108, 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 477322 (cached 407168) / out 3288, 120.7 s, 17 commands; reviewed head `ca34c31d43d7435d7fae20138fed689b03f56eca`.
<!-- werkrevisor-codex:ca34c31d43d7435d7fae20138fed689b03f56eca --> <!-- werkrevisor-codex-critical:true --> <!-- 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/124#issuecomment-6868">the result for <code>04fc1ce</code></a></summary> ## Codex review: critical The release now automatically replaces production host configurations that control review and merge gates across repositories. A mistake could weaken those gates, and tests using copied repository configurations cannot establish the actual production effect. ### Findings 1. **[medium] Retain snapshots of initially matching host blocks** at `tools/release_rootfs.py:108`, 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 477322 (cached 407168) / out 3288, 120.7 s, 17 commands; reviewed head `ca34c31d43d7435d7fae20138fed689b03f56eca`. </sub> </details>
claude-code added 1 commit 2026-10-20 18:35:33 +02:00
The install also refuses an equal host block that changed since the check
werkator build succeeded after 00:10
werkator/werkrevisor-statistics build succeeded after 00:36
ai-review/assessment human review required; a human approval unlocks the merge; a human review request is pending; merge already scheduled
ai-review/gate build succeeded after 05:13
ai-review/codex Codex review passed
04fc1cea6d
Fixes the Codex finding 6722.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Author
Collaborator

Answer to the review of ca34c31, now at 04fc1ce:

  • Codex finding 6722: fixed in 04fc1ce, thread answered and resolved.
  • Size and the risk of tools/release_rootfs.py: structural; they are for the human.
  • The model review timed out after 720 s; it was advisory, Jev judged every changed file.
Answer to the review of `ca34c31`, now at `04fc1ce`: - Codex finding 6722: fixed in `04fc1ce`, thread answered and resolved. - Size and the risk of `tools/release_rootfs.py`: structural; they are for the human. - The model review timed out after 720 s; it was advisory, Jev judged every changed file.
Collaborator

🟡 werkrevisor: YELLOW / HUMAN_REVIEW

Change kind: mixed.

Reasons

  • YELLOW PR too large for an AI-only approval: 1632 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself
  • YELLOW risky build changes according to Jev: tools/release_rootfs.py (weakens checks 0.06, risk 1.92, security 0.36)
  • hint 10 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 15 changed file(s) agree with the PR document according to Jev

Classifier

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

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 76175, calls 1, tokens in 73086 / out 23913 (reasoning included in out), duration 287.4 s, cost 0.0506 USD (reported), classifier `jev-1.13.0` calls 11, tokens in 9275, cost 0.0004 USD, PR document check `jev-1.13.0` calls 15, tokens in 69234, cost 0.0029 USD, build file judge `jev-1.13.0` calls 12, tokens in 28147, cost 0.0012 USD, phases: path_judge 0.8 s, classifier 0.7 s, doc_check 1.0 s, context 0.6 s, model_review 283.7 s, config: defaults + host + repository (.werkrevisor.toml at main 88772c4).
Reviewed head `04fc1cea6d605c8935079a9739ffb1391c65130e` against base `88772c494abe8d265952e10c082327a0785451c2`, werkrevisor 0.54.1.

Diagrams

Drawn by a model from the diff with PR Lens: a view of what the PR touches, not a statement of what it does.

pr-lens-arch-containers.svg

pr-lens-flow-release.svg

<!-- werkrevisor:04fc1cea6d605c8935079a9739ffb1391c65130e --> <!-- werkrevisor-verdict:YELLOW --> <!-- werkrevisor-blocks:305669e36760c7a83807f6b58d534d31,832793ff5fc52ffc21487b4dd4206fd5,aacf660d900f1cf6c00c8ce867620c83,f5c2e906baf3844d72d0ef8a718ba658,7a144cca8e6c546396200643ffc251b5,805a1893340fd6a3093c54434560e3f4,d0fc31fa2137648fd8f500a7b87ab2d6,998a5d6c81f2a11112bba28500d2d778,18708c73a07c545f068edb8982086c85,c16b4399735e56ef61d9a3ef44caae7a,34bf6845bb99027ed915ca5943b8807d,5b303e84151f304c18276ec085454eab,7672a3e97f2a607e22c0d99b4036e226,7d70b27fe302046796873b016befcdf8,cd625670e87f96ac9089e9288704d4d2,925a82311f6382510f669d77c1841aa7,3578c51131abc59e3f322164c6065b85,a63e3eadc7708005e889ed8914dc6c2a,4aa6b1ec2c296076566027912899ee65,245b41c6771d2b8c548d2a69cb556f11,95e06f7d9a3dc6f993dac0ca8f7e922b,adb276dc67e67b4f6fd9c04d5ef0a2f8,654ca54a98f177ae2dcbf3eaca7bc677,a24e58bd7fc64adb2fdbdf234b536d1e,847cb22f00f3ffa2bb76025f37894cfc,9a4787032c948e1c54c2c2c5882ef5c6,83bf2b3b333be723ae5a8df398fed8f7,e799230b5542b7e6ebc89a9163cfc9ad,6af212e1c8aa18f261de96e964a06d58,349c550378378755ef0a29cbf18ed61b,94a5af5be0b3eb52cb0417bafc81ed55,cfd2e1a07dfcc80c8a4b36c9cd53f953,83b2ef635872e8f130c23dd6c6f8e0a3,9b5d1e3a2dedc4c51cd0edf1b20561b3,19aa140f95ece614b14d6c4f435c3e04,0535496cfc3ca61664737a3df7f8ec30,0e605b24c408e597c412868fd9ba4d8d,5e106c8ef5f51b59679adc58ef70eb3c,69dad5e9d5de65e7664b8b6e39d926f7,6cdd88b379a26b7ef195a85dba59f876,8fa27bc89abe5c57c925fba8f1028a5c,3e8dcb5f80581033a88f5713f0879b66,c5e9debc0c184512bae99b6321221a04 --> ## 🟡 werkrevisor: YELLOW / HUMAN_REVIEW Change kind: `mixed`. ### Reasons - **YELLOW** PR too large for an AI-only approval: 1632 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself - **YELLOW** risky build changes according to Jev: tools/release_rootfs.py (weakens checks 0.06, risk 1.92, security 0.36) - **hint** 10 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** 15 changed file(s) agree with the PR document according to Jev ### Classifier 11 of 11 units passed all questions (1 PR document(s)). 5 answers ignored because of a confidence below [classifier] min_confidence. <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 76175, calls 1, tokens in 73086 / out 23913 (reasoning included in out), duration 287.4 s, cost 0.0506 USD (reported), classifier `jev-1.13.0` calls 11, tokens in 9275, cost 0.0004 USD, PR document check `jev-1.13.0` calls 15, tokens in 69234, cost 0.0029 USD, build file judge `jev-1.13.0` calls 12, tokens in 28147, cost 0.0012 USD, phases: path_judge 0.8 s, classifier 0.7 s, doc_check 1.0 s, context 0.6 s, model_review 283.7 s, config: defaults + host + repository (.werkrevisor.toml at main 88772c4).<br> Reviewed head `04fc1cea6d605c8935079a9739ffb1391c65130e` against base `88772c494abe8d265952e10c082327a0785451c2`, werkrevisor 0.54.1. </sub> <!-- werkrevisor:diagrams --> ### Diagrams Drawn by a model from the diff with [PR Lens](https://github.com/coldteadotai/pr-lens): a view of what the PR touches, not a statement of what it does. ![pr-lens-arch-containers.svg](https://git.javagil.de/attachments/71feb5af-d834-4fff-bf80-65fa1d71a38e) ![pr-lens-flow-release.svg](https://git.javagil.de/attachments/821265e8-3364-49f5-a7ec-3a896338ecba)
Collaborator

Codex review: critical

The release now automatically rewrites live host configurations that control review and merge gates across repositories. A mistake could weaken those gates in ways the fixture-based tests would not reveal, so human review is required.

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 530454 (cached 458240) / out 2750, 99.0 s, 12 commands; reviewed head `04fc1cea6d605c8935079a9739ffb1391c65130e`.
<!-- werkrevisor-codex:04fc1cea6d605c8935079a9739ffb1391c65130e --> <!-- werkrevisor-codex-critical:true --> <!-- werkrevisor-codex-unattached:0 --> <!-- werkrevisor-codex --> ## Codex review: critical The release now automatically rewrites live host configurations that control review and merge gates across repositories. A mistake could weaken those gates in ways the fixture-based tests would not reveal, so human review is required. 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 530454 (cached 458240) / out 2750, 99.0 s, 12 commands; reviewed head `04fc1cea6d605c8935079a9739ffb1391c65130e`. </sub>
mi approved these changes 2026-10-20 18:45:49 +02:00
ai-reviewer merged commit 02c5cad014 into main 2026-10-20 18:47:44 +02:00
ai-reviewer deleted branch claude-code/release-host-config 2026-10-20 18:47:45 +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/werkrevisor#124