tools/sync-host-config compares the inline WERKREVISOR_CONFIG_TOML of each machine config with config/<repo>.toml and replaces it on request; it prints only line numbers.
`tools/sync-host-config` compares the inline `WERKREVISOR_CONFIG_TOML` of each machine config with `config/<repo>.toml` and replaces it on request; it prints only line numbers.
See the PR document under `docs/prs/`.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
ai-review/assessment AI findings; a developer approval after checking them unlocks the merge; review requested from mi; merge scheduled for when the checks succeed
ORANGE 1 finding(s) that Jev rates as probably real and severe: tools/host_config_block.py:16
hint 4 changed file(s) that neither weaken the checks nor touch security according to Jev
hint 1 build change(s) of low risk according to Jev: statistics/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01)
hint 10 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev
hint 1 finding(s) of low severity or rated minor by Jev: tools/sync-host-config:1-51
Findings
YAML chomping not supported at tools/host_config_block.py:16, severity unknown, counted as medium, ORANGE, as a line comment
Shell script untested at tools/sync-host-config:1-51, severity unknown, counted as medium, hint, as a line comment
Classifier
10 of 10 units passed all questions (1 PR document(s)).
3 answers ignored because of a confidence below [classifier] min_confidence.
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 16947, calls 1, tokens in 16343 / out 23109 (reasoning included in out), duration 212.1 s, cost 0.0326 USD (reported), classifier `jev-1.13.0` calls 10, tokens in 7792, cost 0.0003 USD, finding judge `jev-1.13.0` calls 2, tokens in 2603, cost 0.0001 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 5023 / out 1296, cost 0.0030 USD (reported), PR document check `jev-1.13.0` calls 10, tokens in 14592, cost 0.0006 USD, build file judge `jev-1.13.0` calls 5, tokens in 6078, cost 0.0003 USD, phases: path_judge 0.5 s, classifier 0.7 s, change_summary 11.4 s, doc_check 0.8 s, context 2.7 s, model_review 194.6 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 5d559f3).
Reviewed head `3e017657293604c96b4aba4d5fb7ef9fabebff8f` against base `5d559f3e655b9b49005a29f651a0f98f118cd49e`, werkrevisor 0.40.2.
<!-- werkrevisor:3e017657293604c96b4aba4d5fb7ef9fabebff8f -->
<!-- werkrevisor-verdict:ORANGE -->
<!-- werkrevisor-blocks:baa1d973f8344d3abd4b3d482388b548,63b6e8c890f48beb18f6da677e8cd991,a2310a538673063570c735a78883d654,b42b83c2d3bc6f6d5a6075d5e44ae74c,0e6dc1561a71b30417d1b353e3280106,3f55cf1b607ddf810d1f92a10b246bf2,7179ca1a1a1b2f40dbd85d02e7bd89e9,af943700a3ecd6d0c74beb69916ad31d,4dfe7f979cd6d0004b2d68dad83fcc9d,9123ecca9feff550c3bd6cbc7e39578f -->
<!-- werkrevisor-folded -->
<details><summary>🟠 werkrevisor ORANGE for <code>3e01765</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/101#issuecomment-5084">the result for <code>f29d179</code></a></summary>
## 🟠 werkrevisor: ORANGE / FINDINGS
Change kind: `mixed`.
### Reasons
- **ORANGE** 1 finding(s) that Jev rates as probably real and severe: tools/host_config_block.py:16
- **hint** 4 changed file(s) that neither weaken the checks nor touch security according to Jev
- **hint** 1 build change(s) of low risk according to Jev: statistics/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01)
- **hint** 10 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev
- **hint** 1 finding(s) of low severity or rated minor by Jev: tools/sync-host-config:1-51
### Findings
1. **YAML chomping not supported** at `tools/host_config_block.py:16`, severity unknown, counted as medium, ORANGE, as a line comment
2. **Shell script untested** at `tools/sync-host-config:1-51`, severity unknown, counted as medium, hint, as a line comment
### Classifier
10 of 10 units passed all questions (1 PR document(s)).
3 answers ignored because of a confidence below [classifier] min_confidence.
<sub>
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 16947, calls 1, tokens in 16343 / out 23109 (reasoning included in out), duration 212.1 s, cost 0.0326 USD (reported), classifier `jev-1.13.0` calls 10, tokens in 7792, cost 0.0003 USD, finding judge `jev-1.13.0` calls 2, tokens in 2603, cost 0.0001 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 5023 / out 1296, cost 0.0030 USD (reported), PR document check `jev-1.13.0` calls 10, tokens in 14592, cost 0.0006 USD, build file judge `jev-1.13.0` calls 5, tokens in 6078, cost 0.0003 USD, phases: path_judge 0.5 s, classifier 0.7 s, change_summary 11.4 s, doc_check 0.8 s, context 2.7 s, model_review 194.6 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 5d559f3).<br>
Reviewed head `3e017657293604c96b4aba4d5fb7ef9fabebff8f` against base `5d559f3e655b9b49005a29f651a0f98f118cd49e`, werkrevisor 0.40.2.
</sub>
</details>
werkrevisor: ORANGE / FINDINGS for 3e017657293604c96b4aba4d5fb7ef9fabebff8f.
The result comment of werkrevisor holds the details.
werkrevisor: ORANGE / FINDINGS for `3e017657293604c96b4aba4d5fb7ef9fabebff8f`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:3e017657293604c96b4aba4d5fb7ef9fabebff8f -->
YAML chomping not supported, severity unknown, counted as medium (werkrevisor)
ORANGE; Jev: real 0.83, severity 2.7 of 3
The KEY regex r"^(\s*)WERKREVISOR_CONFIG_TOML: \|\s*$" only matches the basic | YAML block scalar. A machine config that uses |+ (keep final newline) or |- (strip final newline) would not be recognized, and the tool would report "no block" for it instead of comparing or replacing. The basic | is the form used in the tests, but a hand-edited machine config could use a chomping indicator and silently be skipped, leaving the host config out of sync with config/<repo>.toml.
**YAML chomping not supported**, severity unknown, counted as medium (werkrevisor)
ORANGE; Jev: real 0.83, severity 2.7 of 3
The `KEY` regex `r"^(\s*)WERKREVISOR_CONFIG_TOML: \|\s*$"` only matches the basic `|` YAML block scalar. A machine config that uses `|+` (keep final newline) or `|-` (strip final newline) would not be recognized, and the tool would report "no block" for it instead of comparing or replacing. The basic `|` is the form used in the tests, but a hand-edited machine config could use a chomping indicator and silently be skipped, leaving the host config out of sync with `config/<repo>.toml`.
Fixed in 3511098: the key also matches |- and |+; test test_a_block_with_a_chomping_indicator in f29d179. Before, such a block was not skipped silently: the tool reported "no block" with exit code 2.
Fixed in `3511098`: the key also matches `|-` and `|+`; test `test_a_block_with_a_chomping_indicator` in `f29d179`. Before, such a block was not skipped silently: the tool reported "no block" with exit code 2.
Shell script untested, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.66, severity 2.2 of 3
The shell script tools/sync-host-config has no test coverage. The Python module host_config_block.py is well-tested, but the shell wrapper's flag parsing (--apply, --help), the requirement for at least one repo argument, the per-repo config/<repo>.toml existence check, and the retry-on-connection-refused loop are not exercised by the test suite. A regression in the shell wrapper (e.g., a broken flag check or a payload that no longer matches the Python module's expected JSON shape) would not be caught.
**Shell script untested**, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.66, severity 2.2 of 3
The shell script `tools/sync-host-config` has no test coverage. The Python module `host_config_block.py` is well-tested, but the shell wrapper's flag parsing (`--apply`, `--help`), the requirement for at least one repo argument, the per-repo `config/<repo>.toml` existence check, and the retry-on-connection-refused loop are not exercised by the test suite. A regression in the shell wrapper (e.g., a broken flag check or a payload that no longer matches the Python module's expected JSON shape) would not be caught.
Fixed in f29d179: SyncHostConfigScriptTest runs the wrapper with a fake ssh on the PATH: check and apply over one connection each, a missing config/<repo>.toml without a connection, and the usage. The retry loop is the one of tools/deploy-rootfs; its waits of 30 s and more stay untested.
Fixed in `f29d179`: `SyncHostConfigScriptTest` runs the wrapper with a fake `ssh` on the PATH: check and apply over one connection each, a missing `config/<repo>.toml` without a connection, and the usage. The retry loop is the one of `tools/deploy-rootfs`; its waits of 30 s and more stay untested.
claude-code marked this conversation as resolved
ai-reviewer
scheduled this pull request to auto merge when all checks succeed 2026-10-13 11:11:42 +02:00
ai-reviewer
requested review from mi 2026-10-13 11:11:42 +02:00
werkrevisor: GREEN / PASS for f29d17948bbedfb9f39cc03d91c0dd60ffd4b099.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `f29d17948bbedfb9f39cc03d91c0dd60ffd4b099`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:f29d17948bbedfb9f39cc03d91c0dd60ffd4b099 -->
ai-reviewer
removed review request for mi 2026-10-13 11:18:39 +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.
tools/sync-host-configcompares the inlineWERKREVISOR_CONFIG_TOMLof each machine config withconfig/<repo>.tomland replaces it on request; it prints only line numbers.See the PR document under
docs/prs/.🤖 Generated with Claude Code
🟠 werkrevisor ORANGE for
3e01765, superseded by the result forf29d179🟠 werkrevisor: ORANGE / FINDINGS
Change kind:
mixed.Reasons
Findings
YAML chomping not supported at
tools/host_config_block.py:16, severity unknown, counted as medium, ORANGE, as a line commentShell script untested at
tools/sync-host-config:1-51, severity unknown, counted as medium, hint, as a line commentClassifier
10 of 10 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 16947, calls 1, tokens in 16343 / out 23109 (reasoning included in out), duration 212.1 s, cost 0.0326 USD (reported), classifier `jev-1.13.0` calls 10, tokens in 7792, cost 0.0003 USD, finding judge `jev-1.13.0` calls 2, tokens in 2603, cost 0.0001 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 5023 / out 1296, cost 0.0030 USD (reported), PR document check `jev-1.13.0` calls 10, tokens in 14592, cost 0.0006 USD, build file judge `jev-1.13.0` calls 5, tokens in 6078, cost 0.0003 USD, phases: path_judge 0.5 s, classifier 0.7 s, change_summary 11.4 s, doc_check 0.8 s, context 2.7 s, model_review 194.6 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main3 answers ignored because of a confidence below [classifier] min_confidence.
5d559f3).Reviewed head `3e017657293604c96b4aba4d5fb7ef9fabebff8f` against base `5d559f3e655b9b49005a29f651a0f98f118cd49e`, werkrevisor 0.40.2.
werkrevisor: ORANGE / FINDINGS for
3e017657293604c96b4aba4d5fb7ef9fabebff8f.The result comment of werkrevisor holds the details.
@@ -0,0 +13,4 @@import sysimport tomllibKEY = re.compile(r"^(\s*)WERKREVISOR_CONFIG_TOML: \|\s*$")YAML chomping not supported, severity unknown, counted as medium (werkrevisor)
ORANGE; Jev: real 0.83, severity 2.7 of 3
The
KEYregexr"^(\s*)WERKREVISOR_CONFIG_TOML: \|\s*$"only matches the basic|YAML block scalar. A machine config that uses|+(keep final newline) or|-(strip final newline) would not be recognized, and the tool would report "no block" for it instead of comparing or replacing. The basic|is the form used in the tests, but a hand-edited machine config could use a chomping indicator and silently be skipped, leaving the host config out of sync withconfig/<repo>.toml.Fixed in
3511098: the key also matches|-and|+; testtest_a_block_with_a_chomping_indicatorinf29d179. Before, such a block was not skipped silently: the tool reported "no block" with exit code 2.@@ -0,0 +1,51 @@#!/usr/bin/env bashShell script untested, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.66, severity 2.2 of 3
The shell script
tools/sync-host-confighas no test coverage. The Python modulehost_config_block.pyis well-tested, but the shell wrapper's flag parsing (--apply,--help), the requirement for at least one repo argument, the per-repoconfig/<repo>.tomlexistence check, and the retry-on-connection-refused loop are not exercised by the test suite. A regression in the shell wrapper (e.g., a broken flag check or a payload that no longer matches the Python module's expected JSON shape) would not be caught.Fixed in
f29d179:SyncHostConfigScriptTestruns the wrapper with a fakesshon the PATH: check and apply over one connection each, a missingconfig/<repo>.tomlwithout a connection, and the usage. The retry loop is the one oftools/deploy-rootfs; its waits of 30 s and more stay untested.🟢 werkrevisor: GREEN / PASS
Change kind:
mixed.Reasons
Classifier
10 of 10 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 19055, calls 1, tokens in 18381 / out 30596 (reasoning included in out), duration 339.7 s, cost 0.0422 USD (reported), classifier `jev-1.13.0` calls 10, tokens in 7819, cost 0.0003 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 5895 / out 2901, cost 0.0049 USD (reported), PR document check `jev-1.13.0` calls 10, tokens in 16299, cost 0.0007 USD, build file judge `jev-1.13.0` calls 5, tokens in 6975, cost 0.0003 USD, phases: path_judge 0.5 s, classifier 0.8 s, change_summary 20.9 s, doc_check 0.7 s, context 0.3 s, model_review 315.5 s, config: defaults + host + repository (.werkrevisor.toml at main3 answers ignored because of a confidence below [classifier] min_confidence.
5d559f3).Reviewed head `f29d17948bbedfb9f39cc03d91c0dd60ffd4b099` against base `5d559f3e655b9b49005a29f651a0f98f118cd49e`, werkrevisor 0.40.2.
werkrevisor: GREEN / PASS for
f29d17948bbedfb9f39cc03d91c0dd60ffd4b099.The result comment of werkrevisor holds the details.