Fixes werkrevisor's ORANGE finding of PR#69, which merged with it open: the receiver's launcher check is now tested with the real launcher and bounded by 60 s.
Fixes werkrevisor's ORANGE finding of PR#69, which merged with it open: the receiver's launcher check is now tested with the real launcher and bounded by 60 s.
See the PR document in `doc/prs/`.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Gate: approved by werkrevisor; merge waits for 1 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind: mixed.
Reasons
hint 1 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
hint 2 build change(s) of low risk according to Jev: dashboard/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01), dashboard/packaging/werkregie-deploy-receive (weakens checks 0.07, risk 1.24, security 0.02)
hint 1 finding(s) of low severity or rated minor by Jev: dashboard/src/test/kotlin/de/hoennig/werkregie/dashboard/DeployReceiveTest.kt:126-135
hint model recommends merge with caution
Findings
Test Coverage Gap at dashboard/src/test/kotlin/de/hoennig/werkregie/dashboard/DeployReceiveTest.kt:126-135, severity unknown, counted as medium, hint, as a line comment
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 17509, calls 1, tokens in 16968 / out 25514 (reasoning included in out), duration 205.9 s, cost 0.0357 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 5226, cost 0.0002 USD, finding judge `jev-1.13.0` calls 1, tokens in 1936, cost 0.0001 USD, build file judge `jev-1.13.0` calls 3, tokens in 2943, cost 0.0001 USD, phases: path_judge 0.3 s, classifier 0.6 s, context 0.2 s, model_review 204.0 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 1ee7a87).
Reviewed head `09c0e87fa825c68562136a21c35f198d9619d714` against base `1ee7a87150de2b0324cc60ffdb9b9addf003fe74`, werkrevisor 0.41.2.
<!-- werkrevisor:09c0e87fa825c68562136a21c35f198d9619d714 -->
<!-- werkrevisor-verdict:GREEN -->
<!-- werkrevisor-blocks:0370be8ce1405f5019a931737bbf69cd,b512cd8e02a67d4e1dfc718a83fe38ea,fda4ec2441b7e092dacf0e05305a2271,702f0d1652cfc9eeae50b07067c5a60f,b7d79eefb5f3e458e0b9bea9fda60633,ebed1837a7fd591f80157ac0fee65579,9010bedada0a9e90da6d9a2c25eadd16,c2d79b46a6704c11bdfc2298b690b081,46e2dba410cf6f5f8d041c62c61af66e,b72ef151ee4542bc1ecf88607c450238,07e29fa4adbfc69c6c8c3cc8daf55de5,c6abe340cba8336f3c3c905a2221deed,894d2a3c383ac699be6591c7a2ef2da3,d29bbbb424540be03e74dd1f009ba888,328de3c50d3a107df7082694f0642a95 -->
<!-- werkrevisor-folded -->
<details><summary>🟢 werkrevisor GREEN for <code>09c0e87</code>, superseded by <a href="http://git.javagil.de/mi/werkregie/pulls/70#issuecomment-5532">the result for <code>5deb289</code></a></summary>
## 🟢 werkrevisor: GREEN / PASS
Gate: approved by werkrevisor; merge waits for 1 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind: `mixed`.
### Reasons
- **hint** 1 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
- **hint** 2 build change(s) of low risk according to Jev: dashboard/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01), dashboard/packaging/werkregie-deploy-receive (weakens checks 0.07, risk 1.24, security 0.02)
- **hint** 1 finding(s) of low severity or rated minor by Jev: dashboard/src/test/kotlin/de/hoennig/werkregie/dashboard/DeployReceiveTest.kt:126-135
- **hint** model recommends merge with caution
### Findings
1. **Test Coverage Gap** at `dashboard/src/test/kotlin/de/hoennig/werkregie/dashboard/DeployReceiveTest.kt:126-135`, severity unknown, counted as medium, hint, as a line comment
### 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 17509, calls 1, tokens in 16968 / out 25514 (reasoning included in out), duration 205.9 s, cost 0.0357 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 5226, cost 0.0002 USD, finding judge `jev-1.13.0` calls 1, tokens in 1936, cost 0.0001 USD, build file judge `jev-1.13.0` calls 3, tokens in 2943, cost 0.0001 USD, phases: path_judge 0.3 s, classifier 0.6 s, context 0.2 s, model_review 204.0 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 1ee7a87).<br>
Reviewed head `09c0e87fa825c68562136a21c35f198d9619d714` against base `1ee7a87150de2b0324cc60ffdb9b9addf003fe74`, werkrevisor 0.41.2.
</sub>
</details>
werkrevisor: GREEN / PASS for 09c0e87fa825c68562136a21c35f198d9619d714.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `09c0e87fa825c68562136a21c35f198d9619d714`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:09c0e87fa825c68562136a21c35f198d9619d714 -->
Test Coverage Gap, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.76, severity 2.0 of 3
The PR document's scenario #70.02 states "Given a bundle whose launcher prints no version, or does not end within 60 s", claiming coverage of two launcher failure modes. The new test "a bundle whose launcher prints no version leaves the service untouched" exercises only the first case (echo Fehler → version regex fails). The second case (a launcher that hangs and is killed by timeout 60) is not tested. A regression in the timeout 60 wrapper around the launcher check in werkregie-deploy-receive (e.g., the timeout value being changed or removed) would not be caught by the current tests. The timeout is provided by the standard timeout command so a regression is unlikely, but the PR document's scenario #70.02 overstates what the test verifies.
**Test Coverage Gap**, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.76, severity 2.0 of 3
The PR document's scenario #70.02 states "Given a bundle whose launcher prints no version, or does not end within 60 s", claiming coverage of two launcher failure modes. The new test "a bundle whose launcher prints no version leaves the service untouched" exercises only the first case (echo Fehler → version regex fails). The second case (a launcher that hangs and is killed by `timeout 60`) is not tested. A regression in the `timeout 60` wrapper around the launcher check in `werkregie-deploy-receive` (e.g., the timeout value being changed or removed) would not be caught by the current tests. The timeout is provided by the standard `timeout` command so a regression is unlikely, but the PR document's scenario #70.02 overstates what the test verifies.
Fixed in 5deb289: the receiver takes the launcher time from WERKREGIE_LAUNCHER_SECONDS (default 60), and the new test "a bundle whose launcher does not end leaves the service untouched" runs sleep 30 with 2 s; it ends after 2 s with the service untouched.
Fixed in `5deb289`: the receiver takes the launcher time from `WERKREGIE_LAUNCHER_SECONDS` (default 60), and the new test "a bundle whose launcher does not end leaves the service untouched" runs `sleep 30` with 2 s; it ends after 2 s with the service untouched.
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.
Fixes werkrevisor's ORANGE finding of PR#69, which merged with it open: the receiver's launcher check is now tested with the real launcher and bounded by 60 s.
See the PR document in
doc/prs/.🤖 Generated with Claude Code
🟢 werkrevisor GREEN for
09c0e87, superseded by the result for5deb289🟢 werkrevisor: GREEN / PASS
Gate: approved by werkrevisor; merge waits for 1 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind:
mixed.Reasons
Findings
dashboard/src/test/kotlin/de/hoennig/werkregie/dashboard/DeployReceiveTest.kt:126-135, severity unknown, counted as medium, hint, as a line commentClassifier
7 of 7 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 17509, calls 1, tokens in 16968 / out 25514 (reasoning included in out), duration 205.9 s, cost 0.0357 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 5226, cost 0.0002 USD, finding judge `jev-1.13.0` calls 1, tokens in 1936, cost 0.0001 USD, build file judge `jev-1.13.0` calls 3, tokens in 2943, cost 0.0001 USD, phases: path_judge 0.3 s, classifier 0.6 s, context 0.2 s, model_review 204.0 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main1 answer ignored because of a confidence below [classifier] min_confidence.
1ee7a87).Reviewed head `09c0e87fa825c68562136a21c35f198d9619d714` against base `1ee7a87150de2b0324cc60ffdb9b9addf003fe74`, werkrevisor 0.41.2.
werkrevisor: GREEN / PASS for
09c0e87fa825c68562136a21c35f198d9619d714.The result comment of werkrevisor holds the details.
@@ -103,2 +123,4 @@host.systemctl() shouldBe ""}test("a bundle whose launcher prints no version leaves the service untouched") {Test Coverage Gap, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.76, severity 2.0 of 3
The PR document's scenario #70.02 states "Given a bundle whose launcher prints no version, or does not end within 60 s", claiming coverage of two launcher failure modes. The new test "a bundle whose launcher prints no version leaves the service untouched" exercises only the first case (echo Fehler → version regex fails). The second case (a launcher that hangs and is killed by
timeout 60) is not tested. A regression in thetimeout 60wrapper around the launcher check inwerkregie-deploy-receive(e.g., the timeout value being changed or removed) would not be caught by the current tests. The timeout is provided by the standardtimeoutcommand so a regression is unlikely, but the PR document's scenario #70.02 overstates what the test verifies.New commits pushed, approval review dismissed automatically according to repository settings
@@ -102,4 +123,26 @@ class DeployReceiveTest : FunSpec({host.opt.resolve("werkregie-dashboard.new").exists() shouldBe falsehost.systemctl() shouldBe ""}Fixed in
5deb289: the receiver takes the launcher time fromWERKREGIE_LAUNCHER_SECONDS(default 60), and the new test "a bundle whose launcher does not end leaves the service untouched" runssleep 30with 2 s; it ends after 2 s with the service untouched.🟡 werkrevisor YELLOW for
5deb289, superseded by the result for4d9bb87🟡 werkrevisor: YELLOW / HUMAN_REVIEW
Change kind:
mixed.Reasons
09c0e87not carried over: 4 approved block(s) are missingClassifier
7 of 7 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 18772, calls 1, tokens in 18192 / out 20034 (reasoning included in out), duration 169.3 s, cost 0.0295 USD (reported), classifier `jev-1.13.0` calls 7, tokens in 5256, cost 0.0002 USD, build file judge `jev-1.13.0` calls 3, tokens in 3328, cost 0.0001 USD, phases: path_judge 0.2 s, classifier 0.5 s, context 0.2 s, model_review 167.9 s, config: defaults + host + repository (.werkrevisor.toml at main1 answer ignored because of a confidence below [classifier] min_confidence.
1ee7a87).Reviewed head `5deb2891a6ec56cc1c3e59c766b2ab330fbd3dd5` against base `1ee7a87150de2b0324cc60ffdb9b9addf003fe74`, werkrevisor 0.41.2.
5deb2891a6to4d9bb87172🟡 werkrevisor: YELLOW / HUMAN_REVIEW
Change kind:
mixed.Reasons
Classifier
8 of 8 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 20297, calls 1, tokens in 19628 / out 30044 (reasoning included in out), duration 150.6 s, cost 0.0419 USD (reported), classifier `jev-1.13.0` calls 8, tokens in 5961, cost 0.0003 USD, build file judge `jev-1.13.0` calls 4, tokens in 4021, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, context 0.3 s, model_review 149.1 s, config: defaults + host + repository (.werkrevisor.toml at main2 answers ignored because of a confidence below [classifier] min_confidence.
a57e953).Reviewed head `4d9bb8717274012f2850bd432f33e55e4ed69d3d` against base `a57e9531f4daee8ed7c217f99ce918f4ec13e454`, werkrevisor 0.41.2.