Kotlin/JVM basis support checked, limits documented (0.26.6) #61

Merged
ai-reviewer merged 4 commits from claude-code/kotlin-basics into main 2026-10-11 16:16:48 +02:00
Collaborator

Step 7 of the specification: a Kotlin/JVM fixture run through PIT with the packaged plugin, the result per Kotlin construct, and the limits in ADR 0009.

See docs/prs/2026-10-11-PR#61-kotlin-basics.md.

🤖 Generated with Claude Code

Step 7 of the specification: a Kotlin/JVM fixture run through PIT with the packaged plugin, the result per Kotlin construct, and the limits in ADR 0009. See `docs/prs/2026-10-11-PR#61-kotlin-basics.md`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
claude-code added 1 commit 2026-10-11 13:57:07 +02:00
PR document for the Kotlin/JVM basis support
werkator build succeeded after 02:25
c77592bea5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mi added 2 commits 2026-10-11 13:59:34 +02:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ADR 0009, the Kotlin feature, compatibility, README and plan for step 7 (0.26.6)
werkator build succeeded after 04:03
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
ai-review/gate build succeeded after 01:54
d4190ac70b
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-code changed title from WIP: Kotlin/JVM basis support checked, limits documented to Kotlin/JVM basis support checked, limits documented (0.26.6) 2026-10-11 14:04:16 +02:00
Collaborator
🟢 werkrevisor GREEN for d4190ac, superseded by the result for 4ef2d25

🟢 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: CHANGELOG.md:9: more than one sentence on a line; docs/compatibility.md:30: line longer than 128 characters (136)
  • hint 6 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)

Classifier

6 of 6 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 22259, calls 1, tokens in 21450 / out 10360 (reasoning included in out), duration 107.4 s, cost 0.0188 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 4276, cost 0.0002 USD, build file judge `jev-1.13.0` calls 7, tokens in 6832, cost 0.0003 USD, phases: path_judge 0.5 s, classifier 0.5 s, context 0.6 s, model_review 105.3 s, config: defaults + host + repository (.werkrevisor.toml at main 295aeb3).
Reviewed head `d4190ac70bb23a7024a88521ff99b2f96d64d519` against base `295aeb3894046830074ebbe242eb685087d3cd03`, werkrevisor 0.32.7.
<!-- werkrevisor:d4190ac70bb23a7024a88521ff99b2f96d64d519 --> <!-- werkrevisor-verdict:GREEN --> <!-- werkrevisor-blocks:21cf8140aa9374a3ed4e52650100b18f,72e6e5b76b55cc9c59d7d8e6c520cb8e,bc9cfc1ef57ec402927f6020ba41e512,11826b0dff2aa4812a60723da0a53ffa,371048899fc09b916c55f03ac32e632c,cad8c8d192d4a7a40a645f40ad923f9f,d017f57f3831bd80cf60525d71241700,a786f611c73e08ea39d9a55e1fe4e286,e301244b8da171488db0c493643ab619,14c1a5d4be05d8c5d8adc5f4980d996f,93fdd446d5c4dd47855d9a9e594d8fa8,c861fb14861958c6575773c8baecb135,d42aeda4ab827304b74a2af83b7d3455,7dd5bd1de26c45e2d1037c8bfacb096d,8a463e4ebbb58723c9112b48975bc622,c05dc4c40f82a9bde2b5d67b8f1d34e0,51e97bbca51584c7f02256bd111ec071 --> <!-- werkrevisor-folded --> <details><summary>🟢 werkrevisor GREEN for <code>d4190ac</code>, superseded by <a href="http://git.javagil.de/mi/werkcrappit/pulls/61#issuecomment-3997">the result for <code>4ef2d25</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: CHANGELOG.md:9: more than one sentence on a line; docs/compatibility.md:30: line longer than 128 characters (136) - **hint** 6 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) ### Classifier 6 of 6 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 22259, calls 1, tokens in 21450 / out 10360 (reasoning included in out), duration 107.4 s, cost 0.0188 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 4276, cost 0.0002 USD, build file judge `jev-1.13.0` calls 7, tokens in 6832, cost 0.0003 USD, phases: path_judge 0.5 s, classifier 0.5 s, context 0.6 s, model_review 105.3 s, config: defaults + host + repository (.werkrevisor.toml at main 295aeb3).<br> Reviewed head `d4190ac70bb23a7024a88521ff99b2f96d64d519` against base `295aeb3894046830074ebbe242eb685087d3cd03`, werkrevisor 0.32.7. </sub> </details>
ai-reviewer approved these changes 2026-10-11 14:06:08 +02:00
Dismissed
ai-reviewer left a comment
Collaborator

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

werkrevisor: GREEN / PASS for `d4190ac70bb23a7024a88521ff99b2f96d64d519`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:d4190ac70bb23a7024a88521ff99b2f96d64d519 -->
CHANGELOG.md Outdated
@@ -6,0 +6,4 @@
## 0.26.6
- Kotlin/JVM basis methods are tested with Kotlin 2.4.21; ADR 0009 lists what each Kotlin construct gives in the report,
and the limits for inline and suspend functions. No change to the plugins.
Collaborator

Writing rule: more than one sentence on a line (werkrevisor writing rule)

Fix the line, or reply why it stays, and resolve this comment.

**Writing rule: more than one sentence on a line** (werkrevisor writing rule) Fix the line, or reply why it stays, and resolve this comment.
Author
Collaborator

Fixed in 4ef2d25: one sentence per line.

Fixed in 4ef2d25: one sentence per line.
claude-code marked this conversation as resolved
@@ -26,1 +27,4 @@
## Kotlin/JVM
Kotlin/JVM basis methods are tested with the combination above and Kotlin 2.4.21: `KotlinBasicTest`, [ADR 0009](adr/0009-kotlin-jvm.md).
Collaborator

Writing rule: line longer than 128 characters (136) (werkrevisor writing rule)

Fix the line, or reply why it stays, and resolve this comment.

**Writing rule: line longer than 128 characters (136)** (werkrevisor writing rule) Fix the line, or reply why it stays, and resolve this comment.
Author
Collaborator

Fixed in 4ef2d25: the line wrapped after the colon.

Fixed in 4ef2d25: the line wrapped after the colon.
claude-code marked this conversation as resolved
mi added 1 commit 2026-10-11 14:07:38 +02:00
Writing rules: one sentence per line, at most 128 characters
werkator build succeeded after 02:50
ai-review/assessment AI review passed; approved by werkrevisor; merge scheduled for when the checks succeed
ai-review/gate build succeeded after 00:03
4ef2d2544e
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mi dismissed ai-reviewer's review 2026-10-11 14:07:39 +02:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

Author
Collaborator

Round 1, fixed in 4ef2d25: both writing-rule hints, in CHANGELOG.md and docs/compatibility.md.

Round 1, fixed in 4ef2d25: both writing-rule hints, in `CHANGELOG.md` and `docs/compatibility.md`.
Collaborator

🟢 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 approval of werkrevisor for d4190ac not carried over: 2 approved block(s) are missing
  • hint 6 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 finding(s) of low severity or rated minor by Jev: werkcrappit-pit/src/functionalTest/resources/fixtures/kotlin-basic/src/main/kotlin/demo/Pricing.kt:29
  • hint model recommends changes before merge
  • hint model rates the risk as high (advisory: Jev judged every changed file)

Findings

  1. Fixture Comparator Bug Breaks Test at werkcrappit-pit/src/functionalTest/resources/fixtures/kotlin-basic/src/main/kotlin/demo/Pricing.kt:29, severity unknown, counted as medium, hint, as a line comment

Classifier

6 of 6 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 22270, calls 1, tokens in 21460 / out 57236 (reasoning included in out), duration 480.5 s, cost 0.0751 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 4276, cost 0.0002 USD, finding judge `jev-1.13.0` calls 1, tokens in 1848, cost 0.0001 USD, build file judge `jev-1.13.0` calls 7, tokens in 6832, cost 0.0003 USD, phases: path_judge 0.5 s, classifier 0.4 s, context 0.4 s, model_review 478.2 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 295aeb3).
Reviewed head `4ef2d2544e555ee7e5f1917e85d229ed0a13c5a8` against base `295aeb3894046830074ebbe242eb685087d3cd03`, werkrevisor 0.32.7.
<!-- werkrevisor:4ef2d2544e555ee7e5f1917e85d229ed0a13c5a8 --> <!-- werkrevisor-verdict:GREEN --> <!-- werkrevisor-blocks:0c3296c4d69a955caa5fb873bc2ce3c0,72e6e5b76b55cc9c59d7d8e6c520cb8e,bc9cfc1ef57ec402927f6020ba41e512,11826b0dff2aa4812a60723da0a53ffa,371048899fc09b916c55f03ac32e632c,cad8c8d192d4a7a40a645f40ad923f9f,63e904a12402b8a2287abde38eeaab2b,a786f611c73e08ea39d9a55e1fe4e286,e301244b8da171488db0c493643ab619,14c1a5d4be05d8c5d8adc5f4980d996f,93fdd446d5c4dd47855d9a9e594d8fa8,c861fb14861958c6575773c8baecb135,d42aeda4ab827304b74a2af83b7d3455,7dd5bd1de26c45e2d1037c8bfacb096d,8a463e4ebbb58723c9112b48975bc622,c05dc4c40f82a9bde2b5d67b8f1d34e0,51e97bbca51584c7f02256bd111ec071 --> ## 🟢 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** approval of werkrevisor for `d4190ac` not carried over: 2 approved block(s) are missing - **hint** 6 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 finding(s) of low severity or rated minor by Jev: werkcrappit-pit/src/functionalTest/resources/fixtures/kotlin-basic/src/main/kotlin/demo/Pricing.kt:29 - **hint** model recommends changes before merge - **hint** model rates the risk as high (advisory: Jev judged every changed file) ### Findings 1. **Fixture Comparator Bug Breaks Test** at `werkcrappit-pit/src/functionalTest/resources/fixtures/kotlin-basic/src/main/kotlin/demo/Pricing.kt:29`, severity unknown, counted as medium, hint, as a line comment ### Classifier 6 of 6 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 22270, calls 1, tokens in 21460 / out 57236 (reasoning included in out), duration 480.5 s, cost 0.0751 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 4276, cost 0.0002 USD, finding judge `jev-1.13.0` calls 1, tokens in 1848, cost 0.0001 USD, build file judge `jev-1.13.0` calls 7, tokens in 6832, cost 0.0003 USD, phases: path_judge 0.5 s, classifier 0.4 s, context 0.4 s, model_review 478.2 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 295aeb3).<br> Reviewed head `4ef2d2544e555ee7e5f1917e85d229ed0a13c5a8` against base `295aeb3894046830074ebbe242eb685087d3cd03`, werkrevisor 0.32.7. </sub>
ai-reviewer left a comment
Collaborator

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

werkrevisor: GREEN / PASS for `4ef2d2544e555ee7e5f1917e85d229ed0a13c5a8`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:4ef2d2544e555ee7e5f1917e85d229ed0a13c5a8 -->
@@ -0,0 +26,4 @@
fun byDistance(target: Int): Comparator<Int> = Comparator { a, b ->
val da = if (a > target) a - target else target - a
val db = if (b > target) b - target else target - b
Collaborator

Fixture Comparator Bug Breaks Test, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.28, severity 2.0 of 3

In byDistance, the else branch of val db reads target - a (the distance of the first comparator argument) instead of target - b (the distance of the second argument). It is a copy-paste typo from the val da line above. The resulting comparator is inconsistent: e.g. compare(7, 1) returns 4 and compare(1, 7) returns 2, so 1 and 7 are both reported as greater than each other. The fixture's PricingTest.propertyLambdaInlineCompanionTopLevel asserts assertEquals(listOf(4, 7, 1), listOf(1, 7, 4).sortedWith(pricing.byDistance(5))), but binary insertion sort (used by Kotlin's sortedWith via Java's TimSort for arrays this small) yields [1, 4, 7] here. The fixture's test failure would prevent PIT from running cleanly and break KotlinBasicTest.

**Fixture Comparator Bug Breaks Test**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.28, severity 2.0 of 3 In `byDistance`, the else branch of `val db` reads `target - a` (the distance of the first comparator argument) instead of `target - b` (the distance of the second argument). It is a copy-paste typo from the `val da` line above. The resulting comparator is inconsistent: e.g. `compare(7, 1)` returns 4 and `compare(1, 7)` returns 2, so 1 and 7 are both reported as greater than each other. The fixture's `PricingTest.propertyLambdaInlineCompanionTopLevel` asserts `assertEquals(listOf(4, 7, 1), listOf(1, 7, 4).sortedWith(pricing.byDistance(5)))`, but binary insertion sort (used by Kotlin's `sortedWith` via Java's TimSort for arrays this small) yields `[1, 4, 7]` here. The fixture's test failure would prevent PIT from running cleanly and break `KotlinBasicTest`.
Author
Collaborator

No change: line 28 reads val db = if (b > target) b - target else target - b, so the comparator compares the distances of a and b. listOf(1, 7, 4).sortedWith(byDistance(5)) gives [4, 7, 1] (distances 1, 2, 4), and the fixture's tests pass in KotlinBasicTest, locally and in the CI build of this head.

No change: line 28 reads `val db = if (b > target) b - target else target - b`, so the comparator compares the distances of `a` and `b`. `listOf(1, 7, 4).sortedWith(byDistance(5))` gives `[4, 7, 1]` (distances 1, 2, 4), and the fixture's tests pass in `KotlinBasicTest`, locally and in the CI build of this head.
claude-code marked this conversation as resolved
Author
Collaborator

Round 2: "Fixture Comparator Bug Breaks Test" is answered without a change, with evidence in its thread: the line already reads target - b, and the fixture's tests pass. No hint is open any more.

Round 2: "Fixture Comparator Bug Breaks Test" is answered without a change, with evidence in its thread: the line already reads `target - b`, and the fixture's tests pass. No hint is open any more.
ai-reviewer scheduled this pull request to auto merge when all checks succeed 2026-10-11 16:16:45 +02:00
Collaborator

werkrevisor, review restarted for 4ef2d2544e555ee7e5f1917e85d229ed0a13c5a8: approved by werkrevisor; merge scheduled for when the checks succeed.

werkrevisor, review restarted for `4ef2d2544e555ee7e5f1917e85d229ed0a13c5a8`: approved by werkrevisor; merge scheduled for when the checks succeed.
ai-reviewer merged commit 325e9e42a9 into main 2026-10-11 16:16:48 +02:00
ai-reviewer deleted branch claude-code/kotlin-basics 2026-10-11 16:16:48 +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/werkcrappit#61