Bumps `kotlin` from 2.4.10 to 2.4.20.
Updates `org.jetbrains.kotlin.jvm` from 2.4.10 to 2.4.20
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.20</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86546"><code>KT-86546</code></a>
Check suspicious when over ConeKotlinType in
ConeTypeCompatibilityChecker</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85418"><code>KT-85418</code></a>
Implement an API for accessing deserialized file annotations in Analysis
API</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74448"><code>KT-74448</code></a>
K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt,
kotlinx.coroutines</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85856"><code>KT-85856</code></a>
containingSymbol of constructor property differs for local and non-local
classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65417"><code>KT-65417</code></a>
K2 IDE: KTOR false positive expect-actual matching error on enum class
because of implicit clone() in non-JVM source sets</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76457"><code>KT-76457</code></a>
K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a
JVM counterpart” on evaluating inline fun from common module inside
jvm</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70552"><code>KT-70552</code></a>
No expects for actual</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69727"><code>KT-69727</code></a>
K2 IDE. Wrong error in the editor on calling <code>clone</code> function
of actual enum instance in non-jvm platform</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69726"><code>KT-69726</code></a>
FP errors on declaring <code>fun clone()</code> in actual enum in
not-jvm source-set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86014"><code>KT-86014</code></a>
Types are broken after remove parameter through change signature</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86363"><code>KT-86363</code></a>
KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier
found on companion blocks</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86147"><code>KT-86147</code></a>
Drop <code>kotlin.parallel.resolve.under.global.lock</code> registry
key</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85543"><code>KT-85543</code></a>
Avoid lazy resolve for the contracts phase if no constracts might be
resolved</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84914"><code>KT-84914</code></a>
Do not publish analysis-api-test-framework</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86986"><code>KT-86986</code></a>
<code>kotlin-compiler-common-for-ide</code> bundles unrelated Analysis
API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86186"><code>KT-86186</code></a>
Analysis API: Codebase tests run twice in some analysis modules — pick a
single JUnit runner and migrate</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85360"><code>KT-85360</code></a>
Drop kotlin-compiler-testdata-for-ide artifact</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85585"><code>KT-85585</code></a>
Simplify the dependencies graph for the Analysis API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85381"><code>KT-85381</code></a>
Remove tests for the FE10 implementation</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84645"><code>KT-84645</code></a>
Support resolving to companion block members & extensions from Java
(light classes)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80775"><code>KT-80775</code></a>
Support PsiClass#getRecordComponents in light classes</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-57537"><code>KT-57537</code></a>
SLC: propagate default parameter value from (<code>@JvmOverloads</code>)
<code>expect</code> declarations to <code>actual</code>
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85040"><code>KT-85040</code></a>
[Analysis API] Improve Java / Kotlin interop in KMP projects</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87301"><code>KT-87301</code></a>
SymbolLightAccessorMethod#isValid returns false for delegated
properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87171"><code>KT-87171</code></a>
SLC: non-mapped Kotlin collection supertype is dropped from supertype
list</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87250"><code>KT-87250</code></a>
JvmExposeBoxed: light classes shouldn't be autogenerated for private
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70428"><code>KT-70428</code></a>
AA: good code is red when a Java class extends a Kotlin class
implementing MutableList by delegation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-63568"><code>KT-63568</code></a>
Symbol Light Classes:
KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work
incorrectly when psi is not set</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.20</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86546"><code>KT-86546</code></a>
Check suspicious when over ConeKotlinType in
ConeTypeCompatibilityChecker</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85418"><code>KT-85418</code></a>
Implement an API for accessing deserialized file annotations in Analysis
API</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74448"><code>KT-74448</code></a>
K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt,
kotlinx.coroutines</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85856"><code>KT-85856</code></a>
containingSymbol of constructor property differs for local and non-local
classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65417"><code>KT-65417</code></a>
K2 IDE: KTOR false positive expect-actual matching error on enum class
because of implicit clone() in non-JVM source sets</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76457"><code>KT-76457</code></a>
K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a
JVM counterpart” on evaluating inline fun from common module inside
jvm</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70552"><code>KT-70552</code></a>
No expects for actual</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69727"><code>KT-69727</code></a>
K2 IDE. Wrong error in the editor on calling <code>clone</code> function
of actual enum instance in non-jvm platform</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69726"><code>KT-69726</code></a>
FP errors on declaring <code>fun clone()</code> in actual enum in
not-jvm source-set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86014"><code>KT-86014</code></a>
Types are broken after remove parameter through change signature</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86363"><code>KT-86363</code></a>
KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier
found on companion blocks</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86147"><code>KT-86147</code></a>
Drop <code>kotlin.parallel.resolve.under.global.lock</code> registry
key</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85543"><code>KT-85543</code></a>
Avoid lazy resolve for the contracts phase if no constracts might be
resolved</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84914"><code>KT-84914</code></a>
Do not publish analysis-api-test-framework</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86986"><code>KT-86986</code></a>
<code>kotlin-compiler-common-for-ide</code> bundles unrelated Analysis
API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86186"><code>KT-86186</code></a>
Analysis API: Codebase tests run twice in some analysis modules — pick a
single JUnit runner and migrate</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85360"><code>KT-85360</code></a>
Drop kotlin-compiler-testdata-for-ide artifact</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85585"><code>KT-85585</code></a>
Simplify the dependencies graph for the Analysis API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85381"><code>KT-85381</code></a>
Remove tests for the FE10 implementation</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84645"><code>KT-84645</code></a>
Support resolving to companion block members & extensions from Java
(light classes)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80775"><code>KT-80775</code></a>
Support PsiClass#getRecordComponents in light classes</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-57537"><code>KT-57537</code></a>
SLC: propagate default parameter value from (<code>@JvmOverloads</code>)
<code>expect</code> declarations to <code>actual</code>
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85040"><code>KT-85040</code></a>
[Analysis API] Improve Java / Kotlin interop in KMP projects</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87301"><code>KT-87301</code></a>
SymbolLightAccessorMethod#isValid returns false for delegated
properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87171"><code>KT-87171</code></a>
SLC: non-mapped Kotlin collection supertype is dropped from supertype
list</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87250"><code>KT-87250</code></a>
JvmExposeBoxed: light classes shouldn't be autogenerated for private
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70428"><code>KT-70428</code></a>
AA: good code is red when a Java class extends a Kotlin class
implementing MutableList by delegation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-63568"><code>KT-63568</code></a>
Symbol Light Classes:
KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work
incorrectly when psi is not set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-36740"><code>KT-36740</code></a>
MPP: False-positive incompatible types in .java when using expect-class
returned by non-expect member from common when actual is actual
typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="890ac1d94f"><code>890ac1d</code></a>
Add Changelog for 2.4.20-RC3</li>
<li><a
href="8860aed4ae"><code>8860aed</code></a>
🍒 [FIR] Fix suspend conversion when expected type is nullable (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7769">#7769</a>)</li>
<li><a
href="ab5bcd9428"><code>ab5bcd9</code></a>
Edit ChangeLog for 2.4.20-RC2</li>
<li><a
href="9464edc097"><code>9464edc</code></a>
Add ChangeLog for 2.4.20-RC2</li>
<li><a
href="0261e43b78"><code>0261e43</code></a>
Cherry-pick "Fix <code>asBodyAndResultVar</code> call in
`visitInlinedLambdaInComposable...</li>
<li><a
href="0763513670"><code>0763513</code></a>
[box-tests] Workaround for klib compatibility tests (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7626">#7626</a>)</li>
<li><a
href="045aec6647"><code>045aec6</code></a>
[Wasm] Append scripts from webpack.config.d in the end of the file (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7615">#7615</a>)</li>
<li><a
href="cd7173bf0b"><code>cd7173b</code></a>
🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance
survives...</li>
<li><a
href="d36a2ffbcc"><code>d36a2ff</code></a>
CastsOptimizationPass: break aliases cycles (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7578">#7578</a>)</li>
<li><a
href="8664983b34"><code>8664983</code></a>
[CLI] Restore custom IC search scope creation</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to
2.4.20
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.plugin.serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.20</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86546"><code>KT-86546</code></a>
Check suspicious when over ConeKotlinType in
ConeTypeCompatibilityChecker</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85418"><code>KT-85418</code></a>
Implement an API for accessing deserialized file annotations in Analysis
API</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74448"><code>KT-74448</code></a>
K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt,
kotlinx.coroutines</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85856"><code>KT-85856</code></a>
containingSymbol of constructor property differs for local and non-local
classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65417"><code>KT-65417</code></a>
K2 IDE: KTOR false positive expect-actual matching error on enum class
because of implicit clone() in non-JVM source sets</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76457"><code>KT-76457</code></a>
K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a
JVM counterpart” on evaluating inline fun from common module inside
jvm</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70552"><code>KT-70552</code></a>
No expects for actual</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69727"><code>KT-69727</code></a>
K2 IDE. Wrong error in the editor on calling <code>clone</code> function
of actual enum instance in non-jvm platform</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69726"><code>KT-69726</code></a>
FP errors on declaring <code>fun clone()</code> in actual enum in
not-jvm source-set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86014"><code>KT-86014</code></a>
Types are broken after remove parameter through change signature</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86363"><code>KT-86363</code></a>
KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier
found on companion blocks</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86147"><code>KT-86147</code></a>
Drop <code>kotlin.parallel.resolve.under.global.lock</code> registry
key</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85543"><code>KT-85543</code></a>
Avoid lazy resolve for the contracts phase if no constracts might be
resolved</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84914"><code>KT-84914</code></a>
Do not publish analysis-api-test-framework</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86986"><code>KT-86986</code></a>
<code>kotlin-compiler-common-for-ide</code> bundles unrelated Analysis
API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86186"><code>KT-86186</code></a>
Analysis API: Codebase tests run twice in some analysis modules — pick a
single JUnit runner and migrate</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85360"><code>KT-85360</code></a>
Drop kotlin-compiler-testdata-for-ide artifact</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85585"><code>KT-85585</code></a>
Simplify the dependencies graph for the Analysis API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85381"><code>KT-85381</code></a>
Remove tests for the FE10 implementation</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84645"><code>KT-84645</code></a>
Support resolving to companion block members & extensions from Java
(light classes)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80775"><code>KT-80775</code></a>
Support PsiClass#getRecordComponents in light classes</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-57537"><code>KT-57537</code></a>
SLC: propagate default parameter value from (<code>@JvmOverloads</code>)
<code>expect</code> declarations to <code>actual</code>
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85040"><code>KT-85040</code></a>
[Analysis API] Improve Java / Kotlin interop in KMP projects</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87301"><code>KT-87301</code></a>
SymbolLightAccessorMethod#isValid returns false for delegated
properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87171"><code>KT-87171</code></a>
SLC: non-mapped Kotlin collection supertype is dropped from supertype
list</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87250"><code>KT-87250</code></a>
JvmExposeBoxed: light classes shouldn't be autogenerated for private
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70428"><code>KT-70428</code></a>
AA: good code is red when a Java class extends a Kotlin class
implementing MutableList by delegation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-63568"><code>KT-63568</code></a>
Symbol Light Classes:
KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work
incorrectly when psi is not set</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.20</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86546"><code>KT-86546</code></a>
Check suspicious when over ConeKotlinType in
ConeTypeCompatibilityChecker</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85418"><code>KT-85418</code></a>
Implement an API for accessing deserialized file annotations in Analysis
API</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74448"><code>KT-74448</code></a>
K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt,
kotlinx.coroutines</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85856"><code>KT-85856</code></a>
containingSymbol of constructor property differs for local and non-local
classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65417"><code>KT-65417</code></a>
K2 IDE: KTOR false positive expect-actual matching error on enum class
because of implicit clone() in non-JVM source sets</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76457"><code>KT-76457</code></a>
K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a
JVM counterpart” on evaluating inline fun from common module inside
jvm</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70552"><code>KT-70552</code></a>
No expects for actual</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69727"><code>KT-69727</code></a>
K2 IDE. Wrong error in the editor on calling <code>clone</code> function
of actual enum instance in non-jvm platform</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69726"><code>KT-69726</code></a>
FP errors on declaring <code>fun clone()</code> in actual enum in
not-jvm source-set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86014"><code>KT-86014</code></a>
Types are broken after remove parameter through change signature</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86363"><code>KT-86363</code></a>
KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier
found on companion blocks</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86147"><code>KT-86147</code></a>
Drop <code>kotlin.parallel.resolve.under.global.lock</code> registry
key</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85543"><code>KT-85543</code></a>
Avoid lazy resolve for the contracts phase if no constracts might be
resolved</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84914"><code>KT-84914</code></a>
Do not publish analysis-api-test-framework</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86986"><code>KT-86986</code></a>
<code>kotlin-compiler-common-for-ide</code> bundles unrelated Analysis
API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86186"><code>KT-86186</code></a>
Analysis API: Codebase tests run twice in some analysis modules — pick a
single JUnit runner and migrate</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85360"><code>KT-85360</code></a>
Drop kotlin-compiler-testdata-for-ide artifact</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85585"><code>KT-85585</code></a>
Simplify the dependencies graph for the Analysis API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85381"><code>KT-85381</code></a>
Remove tests for the FE10 implementation</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84645"><code>KT-84645</code></a>
Support resolving to companion block members & extensions from Java
(light classes)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80775"><code>KT-80775</code></a>
Support PsiClass#getRecordComponents in light classes</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-57537"><code>KT-57537</code></a>
SLC: propagate default parameter value from (<code>@JvmOverloads</code>)
<code>expect</code> declarations to <code>actual</code>
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85040"><code>KT-85040</code></a>
[Analysis API] Improve Java / Kotlin interop in KMP projects</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87301"><code>KT-87301</code></a>
SymbolLightAccessorMethod#isValid returns false for delegated
properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87171"><code>KT-87171</code></a>
SLC: non-mapped Kotlin collection supertype is dropped from supertype
list</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87250"><code>KT-87250</code></a>
JvmExposeBoxed: light classes shouldn't be autogenerated for private
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70428"><code>KT-70428</code></a>
AA: good code is red when a Java class extends a Kotlin class
implementing MutableList by delegation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-63568"><code>KT-63568</code></a>
Symbol Light Classes:
KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work
incorrectly when psi is not set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-36740"><code>KT-36740</code></a>
MPP: False-positive incompatible types in .java when using expect-class
returned by non-expect member from common when actual is actual
typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="890ac1d94f"><code>890ac1d</code></a>
Add Changelog for 2.4.20-RC3</li>
<li><a
href="8860aed4ae"><code>8860aed</code></a>
🍒 [FIR] Fix suspend conversion when expected type is nullable (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7769">#7769</a>)</li>
<li><a
href="ab5bcd9428"><code>ab5bcd9</code></a>
Edit ChangeLog for 2.4.20-RC2</li>
<li><a
href="9464edc097"><code>9464edc</code></a>
Add ChangeLog for 2.4.20-RC2</li>
<li><a
href="0261e43b78"><code>0261e43</code></a>
Cherry-pick "Fix <code>asBodyAndResultVar</code> call in
`visitInlinedLambdaInComposable...</li>
<li><a
href="0763513670"><code>0763513</code></a>
[box-tests] Workaround for klib compatibility tests (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7626">#7626</a>)</li>
<li><a
href="045aec6647"><code>045aec6</code></a>
[Wasm] Append scripts from webpack.config.d in the end of the file (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7615">#7615</a>)</li>
<li><a
href="cd7173bf0b"><code>cd7173b</code></a>
🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance
survives...</li>
<li><a
href="d36a2ffbcc"><code>d36a2ff</code></a>
CastsOptimizationPass: break aliases cycles (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7578">#7578</a>)</li>
<li><a
href="8664983b34"><code>8664983</code></a>
[CLI] Restore custom IC search scope creation</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `kotlin` from 2.4.10 to 2.4.20.
Updates `org.jetbrains.kotlin.jvm` from 2.4.10 to 2.4.20
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.20</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86546"><code>KT-86546</code></a>
Check suspicious when over ConeKotlinType in
ConeTypeCompatibilityChecker</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85418"><code>KT-85418</code></a>
Implement an API for accessing deserialized file annotations in Analysis
API</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74448"><code>KT-74448</code></a>
K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt,
kotlinx.coroutines</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85856"><code>KT-85856</code></a>
containingSymbol of constructor property differs for local and non-local
classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65417"><code>KT-65417</code></a>
K2 IDE: KTOR false positive expect-actual matching error on enum class
because of implicit clone() in non-JVM source sets</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76457"><code>KT-76457</code></a>
K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a
JVM counterpart” on evaluating inline fun from common module inside
jvm</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70552"><code>KT-70552</code></a>
No expects for actual</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69727"><code>KT-69727</code></a>
K2 IDE. Wrong error in the editor on calling <code>clone</code> function
of actual enum instance in non-jvm platform</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69726"><code>KT-69726</code></a>
FP errors on declaring <code>fun clone()</code> in actual enum in
not-jvm source-set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86014"><code>KT-86014</code></a>
Types are broken after remove parameter through change signature</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86363"><code>KT-86363</code></a>
KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier
found on companion blocks</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86147"><code>KT-86147</code></a>
Drop <code>kotlin.parallel.resolve.under.global.lock</code> registry
key</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85543"><code>KT-85543</code></a>
Avoid lazy resolve for the contracts phase if no constracts might be
resolved</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84914"><code>KT-84914</code></a>
Do not publish analysis-api-test-framework</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86986"><code>KT-86986</code></a>
<code>kotlin-compiler-common-for-ide</code> bundles unrelated Analysis
API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86186"><code>KT-86186</code></a>
Analysis API: Codebase tests run twice in some analysis modules — pick a
single JUnit runner and migrate</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85360"><code>KT-85360</code></a>
Drop kotlin-compiler-testdata-for-ide artifact</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85585"><code>KT-85585</code></a>
Simplify the dependencies graph for the Analysis API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85381"><code>KT-85381</code></a>
Remove tests for the FE10 implementation</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84645"><code>KT-84645</code></a>
Support resolving to companion block members & extensions from Java
(light classes)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80775"><code>KT-80775</code></a>
Support PsiClass#getRecordComponents in light classes</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-57537"><code>KT-57537</code></a>
SLC: propagate default parameter value from (<code>@JvmOverloads</code>)
<code>expect</code> declarations to <code>actual</code>
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85040"><code>KT-85040</code></a>
[Analysis API] Improve Java / Kotlin interop in KMP projects</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87301"><code>KT-87301</code></a>
SymbolLightAccessorMethod#isValid returns false for delegated
properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87171"><code>KT-87171</code></a>
SLC: non-mapped Kotlin collection supertype is dropped from supertype
list</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87250"><code>KT-87250</code></a>
JvmExposeBoxed: light classes shouldn't be autogenerated for private
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70428"><code>KT-70428</code></a>
AA: good code is red when a Java class extends a Kotlin class
implementing MutableList by delegation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-63568"><code>KT-63568</code></a>
Symbol Light Classes:
KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work
incorrectly when psi is not set</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.20</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86546"><code>KT-86546</code></a>
Check suspicious when over ConeKotlinType in
ConeTypeCompatibilityChecker</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85418"><code>KT-85418</code></a>
Implement an API for accessing deserialized file annotations in Analysis
API</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74448"><code>KT-74448</code></a>
K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt,
kotlinx.coroutines</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85856"><code>KT-85856</code></a>
containingSymbol of constructor property differs for local and non-local
classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65417"><code>KT-65417</code></a>
K2 IDE: KTOR false positive expect-actual matching error on enum class
because of implicit clone() in non-JVM source sets</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76457"><code>KT-76457</code></a>
K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a
JVM counterpart” on evaluating inline fun from common module inside
jvm</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70552"><code>KT-70552</code></a>
No expects for actual</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69727"><code>KT-69727</code></a>
K2 IDE. Wrong error in the editor on calling <code>clone</code> function
of actual enum instance in non-jvm platform</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69726"><code>KT-69726</code></a>
FP errors on declaring <code>fun clone()</code> in actual enum in
not-jvm source-set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86014"><code>KT-86014</code></a>
Types are broken after remove parameter through change signature</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86363"><code>KT-86363</code></a>
KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier
found on companion blocks</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86147"><code>KT-86147</code></a>
Drop <code>kotlin.parallel.resolve.under.global.lock</code> registry
key</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85543"><code>KT-85543</code></a>
Avoid lazy resolve for the contracts phase if no constracts might be
resolved</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84914"><code>KT-84914</code></a>
Do not publish analysis-api-test-framework</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86986"><code>KT-86986</code></a>
<code>kotlin-compiler-common-for-ide</code> bundles unrelated Analysis
API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86186"><code>KT-86186</code></a>
Analysis API: Codebase tests run twice in some analysis modules — pick a
single JUnit runner and migrate</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85360"><code>KT-85360</code></a>
Drop kotlin-compiler-testdata-for-ide artifact</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85585"><code>KT-85585</code></a>
Simplify the dependencies graph for the Analysis API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85381"><code>KT-85381</code></a>
Remove tests for the FE10 implementation</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84645"><code>KT-84645</code></a>
Support resolving to companion block members & extensions from Java
(light classes)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80775"><code>KT-80775</code></a>
Support PsiClass#getRecordComponents in light classes</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-57537"><code>KT-57537</code></a>
SLC: propagate default parameter value from (<code>@JvmOverloads</code>)
<code>expect</code> declarations to <code>actual</code>
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85040"><code>KT-85040</code></a>
[Analysis API] Improve Java / Kotlin interop in KMP projects</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87301"><code>KT-87301</code></a>
SymbolLightAccessorMethod#isValid returns false for delegated
properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87171"><code>KT-87171</code></a>
SLC: non-mapped Kotlin collection supertype is dropped from supertype
list</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87250"><code>KT-87250</code></a>
JvmExposeBoxed: light classes shouldn't be autogenerated for private
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70428"><code>KT-70428</code></a>
AA: good code is red when a Java class extends a Kotlin class
implementing MutableList by delegation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-63568"><code>KT-63568</code></a>
Symbol Light Classes:
KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work
incorrectly when psi is not set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-36740"><code>KT-36740</code></a>
MPP: False-positive incompatible types in .java when using expect-class
returned by non-expect member from common when actual is actual
typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="890ac1d94f"><code>890ac1d</code></a>
Add Changelog for 2.4.20-RC3</li>
<li><a
href="8860aed4ae"><code>8860aed</code></a>
🍒 [FIR] Fix suspend conversion when expected type is nullable (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7769">#7769</a>)</li>
<li><a
href="ab5bcd9428"><code>ab5bcd9</code></a>
Edit ChangeLog for 2.4.20-RC2</li>
<li><a
href="9464edc097"><code>9464edc</code></a>
Add ChangeLog for 2.4.20-RC2</li>
<li><a
href="0261e43b78"><code>0261e43</code></a>
Cherry-pick "Fix <code>asBodyAndResultVar</code> call in
`visitInlinedLambdaInComposable...</li>
<li><a
href="0763513670"><code>0763513</code></a>
[box-tests] Workaround for klib compatibility tests (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7626">#7626</a>)</li>
<li><a
href="045aec6647"><code>045aec6</code></a>
[Wasm] Append scripts from webpack.config.d in the end of the file (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7615">#7615</a>)</li>
<li><a
href="cd7173bf0b"><code>cd7173b</code></a>
🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance
survives...</li>
<li><a
href="d36a2ffbcc"><code>d36a2ff</code></a>
CastsOptimizationPass: break aliases cycles (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7578">#7578</a>)</li>
<li><a
href="8664983b34"><code>8664983</code></a>
[CLI] Restore custom IC search scope creation</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to
2.4.20
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.plugin.serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.20</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86546"><code>KT-86546</code></a>
Check suspicious when over ConeKotlinType in
ConeTypeCompatibilityChecker</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85418"><code>KT-85418</code></a>
Implement an API for accessing deserialized file annotations in Analysis
API</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74448"><code>KT-74448</code></a>
K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt,
kotlinx.coroutines</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85856"><code>KT-85856</code></a>
containingSymbol of constructor property differs for local and non-local
classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65417"><code>KT-65417</code></a>
K2 IDE: KTOR false positive expect-actual matching error on enum class
because of implicit clone() in non-JVM source sets</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76457"><code>KT-76457</code></a>
K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a
JVM counterpart” on evaluating inline fun from common module inside
jvm</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70552"><code>KT-70552</code></a>
No expects for actual</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69727"><code>KT-69727</code></a>
K2 IDE. Wrong error in the editor on calling <code>clone</code> function
of actual enum instance in non-jvm platform</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69726"><code>KT-69726</code></a>
FP errors on declaring <code>fun clone()</code> in actual enum in
not-jvm source-set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86014"><code>KT-86014</code></a>
Types are broken after remove parameter through change signature</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86363"><code>KT-86363</code></a>
KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier
found on companion blocks</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86147"><code>KT-86147</code></a>
Drop <code>kotlin.parallel.resolve.under.global.lock</code> registry
key</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85543"><code>KT-85543</code></a>
Avoid lazy resolve for the contracts phase if no constracts might be
resolved</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84914"><code>KT-84914</code></a>
Do not publish analysis-api-test-framework</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86986"><code>KT-86986</code></a>
<code>kotlin-compiler-common-for-ide</code> bundles unrelated Analysis
API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86186"><code>KT-86186</code></a>
Analysis API: Codebase tests run twice in some analysis modules — pick a
single JUnit runner and migrate</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85360"><code>KT-85360</code></a>
Drop kotlin-compiler-testdata-for-ide artifact</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85585"><code>KT-85585</code></a>
Simplify the dependencies graph for the Analysis API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85381"><code>KT-85381</code></a>
Remove tests for the FE10 implementation</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84645"><code>KT-84645</code></a>
Support resolving to companion block members & extensions from Java
(light classes)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80775"><code>KT-80775</code></a>
Support PsiClass#getRecordComponents in light classes</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-57537"><code>KT-57537</code></a>
SLC: propagate default parameter value from (<code>@JvmOverloads</code>)
<code>expect</code> declarations to <code>actual</code>
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85040"><code>KT-85040</code></a>
[Analysis API] Improve Java / Kotlin interop in KMP projects</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87301"><code>KT-87301</code></a>
SymbolLightAccessorMethod#isValid returns false for delegated
properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87171"><code>KT-87171</code></a>
SLC: non-mapped Kotlin collection supertype is dropped from supertype
list</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87250"><code>KT-87250</code></a>
JvmExposeBoxed: light classes shouldn't be autogenerated for private
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70428"><code>KT-70428</code></a>
AA: good code is red when a Java class extends a Kotlin class
implementing MutableList by delegation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-63568"><code>KT-63568</code></a>
Symbol Light Classes:
KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work
incorrectly when psi is not set</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.20</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86546"><code>KT-86546</code></a>
Check suspicious when over ConeKotlinType in
ConeTypeCompatibilityChecker</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85418"><code>KT-85418</code></a>
Implement an API for accessing deserialized file annotations in Analysis
API</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74448"><code>KT-74448</code></a>
K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt,
kotlinx.coroutines</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85856"><code>KT-85856</code></a>
containingSymbol of constructor property differs for local and non-local
classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65417"><code>KT-65417</code></a>
K2 IDE: KTOR false positive expect-actual matching error on enum class
because of implicit clone() in non-JVM source sets</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76457"><code>KT-76457</code></a>
K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a
JVM counterpart” on evaluating inline fun from common module inside
jvm</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70552"><code>KT-70552</code></a>
No expects for actual</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69727"><code>KT-69727</code></a>
K2 IDE. Wrong error in the editor on calling <code>clone</code> function
of actual enum instance in non-jvm platform</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69726"><code>KT-69726</code></a>
FP errors on declaring <code>fun clone()</code> in actual enum in
not-jvm source-set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86014"><code>KT-86014</code></a>
Types are broken after remove parameter through change signature</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86363"><code>KT-86363</code></a>
KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier
found on companion blocks</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86147"><code>KT-86147</code></a>
Drop <code>kotlin.parallel.resolve.under.global.lock</code> registry
key</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85543"><code>KT-85543</code></a>
Avoid lazy resolve for the contracts phase if no constracts might be
resolved</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84914"><code>KT-84914</code></a>
Do not publish analysis-api-test-framework</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86986"><code>KT-86986</code></a>
<code>kotlin-compiler-common-for-ide</code> bundles unrelated Analysis
API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86186"><code>KT-86186</code></a>
Analysis API: Codebase tests run twice in some analysis modules — pick a
single JUnit runner and migrate</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85360"><code>KT-85360</code></a>
Drop kotlin-compiler-testdata-for-ide artifact</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85585"><code>KT-85585</code></a>
Simplify the dependencies graph for the Analysis API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85381"><code>KT-85381</code></a>
Remove tests for the FE10 implementation</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84645"><code>KT-84645</code></a>
Support resolving to companion block members & extensions from Java
(light classes)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80775"><code>KT-80775</code></a>
Support PsiClass#getRecordComponents in light classes</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-57537"><code>KT-57537</code></a>
SLC: propagate default parameter value from (<code>@JvmOverloads</code>)
<code>expect</code> declarations to <code>actual</code>
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85040"><code>KT-85040</code></a>
[Analysis API] Improve Java / Kotlin interop in KMP projects</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87301"><code>KT-87301</code></a>
SymbolLightAccessorMethod#isValid returns false for delegated
properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87171"><code>KT-87171</code></a>
SLC: non-mapped Kotlin collection supertype is dropped from supertype
list</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87250"><code>KT-87250</code></a>
JvmExposeBoxed: light classes shouldn't be autogenerated for private
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70428"><code>KT-70428</code></a>
AA: good code is red when a Java class extends a Kotlin class
implementing MutableList by delegation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-63568"><code>KT-63568</code></a>
Symbol Light Classes:
KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work
incorrectly when psi is not set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-36740"><code>KT-36740</code></a>
MPP: False-positive incompatible types in .java when using expect-class
returned by non-expect member from common when actual is actual
typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="890ac1d94f"><code>890ac1d</code></a>
Add Changelog for 2.4.20-RC3</li>
<li><a
href="8860aed4ae"><code>8860aed</code></a>
🍒 [FIR] Fix suspend conversion when expected type is nullable (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7769">#7769</a>)</li>
<li><a
href="ab5bcd9428"><code>ab5bcd9</code></a>
Edit ChangeLog for 2.4.20-RC2</li>
<li><a
href="9464edc097"><code>9464edc</code></a>
Add ChangeLog for 2.4.20-RC2</li>
<li><a
href="0261e43b78"><code>0261e43</code></a>
Cherry-pick "Fix <code>asBodyAndResultVar</code> call in
`visitInlinedLambdaInComposable...</li>
<li><a
href="0763513670"><code>0763513</code></a>
[box-tests] Workaround for klib compatibility tests (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7626">#7626</a>)</li>
<li><a
href="045aec6647"><code>045aec6</code></a>
[Wasm] Append scripts from webpack.config.d in the end of the file (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7615">#7615</a>)</li>
<li><a
href="cd7173bf0b"><code>cd7173b</code></a>
🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance
survives...</li>
<li><a
href="d36a2ffbcc"><code>d36a2ff</code></a>
CastsOptimizationPass: break aliases cycles (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7578">#7578</a>)</li>
<li><a
href="8664983b34"><code>8664983</code></a>
[CLI] Restore custom IC search scope creation</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `kotlin` from 2.4.10 to 2.4.20.
Updates `org.jetbrains.kotlin.jvm` from 2.4.10 to 2.4.20
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.20</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86546"><code>KT-86546</code></a>
Check suspicious when over ConeKotlinType in
ConeTypeCompatibilityChecker</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85418"><code>KT-85418</code></a>
Implement an API for accessing deserialized file annotations in Analysis
API</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74448"><code>KT-74448</code></a>
K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt,
kotlinx.coroutines</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85856"><code>KT-85856</code></a>
containingSymbol of constructor property differs for local and non-local
classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65417"><code>KT-65417</code></a>
K2 IDE: KTOR false positive expect-actual matching error on enum class
because of implicit clone() in non-JVM source sets</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76457"><code>KT-76457</code></a>
K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a
JVM counterpart” on evaluating inline fun from common module inside
jvm</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70552"><code>KT-70552</code></a>
No expects for actual</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69727"><code>KT-69727</code></a>
K2 IDE. Wrong error in the editor on calling <code>clone</code> function
of actual enum instance in non-jvm platform</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69726"><code>KT-69726</code></a>
FP errors on declaring <code>fun clone()</code> in actual enum in
not-jvm source-set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86014"><code>KT-86014</code></a>
Types are broken after remove parameter through change signature</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86363"><code>KT-86363</code></a>
KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier
found on companion blocks</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86147"><code>KT-86147</code></a>
Drop <code>kotlin.parallel.resolve.under.global.lock</code> registry
key</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85543"><code>KT-85543</code></a>
Avoid lazy resolve for the contracts phase if no constracts might be
resolved</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84914"><code>KT-84914</code></a>
Do not publish analysis-api-test-framework</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86986"><code>KT-86986</code></a>
<code>kotlin-compiler-common-for-ide</code> bundles unrelated Analysis
API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86186"><code>KT-86186</code></a>
Analysis API: Codebase tests run twice in some analysis modules — pick a
single JUnit runner and migrate</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85360"><code>KT-85360</code></a>
Drop kotlin-compiler-testdata-for-ide artifact</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85585"><code>KT-85585</code></a>
Simplify the dependencies graph for the Analysis API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85381"><code>KT-85381</code></a>
Remove tests for the FE10 implementation</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84645"><code>KT-84645</code></a>
Support resolving to companion block members & extensions from Java
(light classes)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80775"><code>KT-80775</code></a>
Support PsiClass#getRecordComponents in light classes</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-57537"><code>KT-57537</code></a>
SLC: propagate default parameter value from (<code>@JvmOverloads</code>)
<code>expect</code> declarations to <code>actual</code>
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85040"><code>KT-85040</code></a>
[Analysis API] Improve Java / Kotlin interop in KMP projects</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87301"><code>KT-87301</code></a>
SymbolLightAccessorMethod#isValid returns false for delegated
properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87171"><code>KT-87171</code></a>
SLC: non-mapped Kotlin collection supertype is dropped from supertype
list</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87250"><code>KT-87250</code></a>
JvmExposeBoxed: light classes shouldn't be autogenerated for private
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70428"><code>KT-70428</code></a>
AA: good code is red when a Java class extends a Kotlin class
implementing MutableList by delegation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-63568"><code>KT-63568</code></a>
Symbol Light Classes:
KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work
incorrectly when psi is not set</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.20</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86546"><code>KT-86546</code></a>
Check suspicious when over ConeKotlinType in
ConeTypeCompatibilityChecker</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85418"><code>KT-85418</code></a>
Implement an API for accessing deserialized file annotations in Analysis
API</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74448"><code>KT-74448</code></a>
K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt,
kotlinx.coroutines</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85856"><code>KT-85856</code></a>
containingSymbol of constructor property differs for local and non-local
classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65417"><code>KT-65417</code></a>
K2 IDE: KTOR false positive expect-actual matching error on enum class
because of implicit clone() in non-JVM source sets</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76457"><code>KT-76457</code></a>
K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a
JVM counterpart” on evaluating inline fun from common module inside
jvm</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70552"><code>KT-70552</code></a>
No expects for actual</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69727"><code>KT-69727</code></a>
K2 IDE. Wrong error in the editor on calling <code>clone</code> function
of actual enum instance in non-jvm platform</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69726"><code>KT-69726</code></a>
FP errors on declaring <code>fun clone()</code> in actual enum in
not-jvm source-set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86014"><code>KT-86014</code></a>
Types are broken after remove parameter through change signature</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86363"><code>KT-86363</code></a>
KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier
found on companion blocks</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86147"><code>KT-86147</code></a>
Drop <code>kotlin.parallel.resolve.under.global.lock</code> registry
key</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85543"><code>KT-85543</code></a>
Avoid lazy resolve for the contracts phase if no constracts might be
resolved</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84914"><code>KT-84914</code></a>
Do not publish analysis-api-test-framework</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86986"><code>KT-86986</code></a>
<code>kotlin-compiler-common-for-ide</code> bundles unrelated Analysis
API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86186"><code>KT-86186</code></a>
Analysis API: Codebase tests run twice in some analysis modules — pick a
single JUnit runner and migrate</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85360"><code>KT-85360</code></a>
Drop kotlin-compiler-testdata-for-ide artifact</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85585"><code>KT-85585</code></a>
Simplify the dependencies graph for the Analysis API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85381"><code>KT-85381</code></a>
Remove tests for the FE10 implementation</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84645"><code>KT-84645</code></a>
Support resolving to companion block members & extensions from Java
(light classes)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80775"><code>KT-80775</code></a>
Support PsiClass#getRecordComponents in light classes</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-57537"><code>KT-57537</code></a>
SLC: propagate default parameter value from (<code>@JvmOverloads</code>)
<code>expect</code> declarations to <code>actual</code>
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85040"><code>KT-85040</code></a>
[Analysis API] Improve Java / Kotlin interop in KMP projects</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87301"><code>KT-87301</code></a>
SymbolLightAccessorMethod#isValid returns false for delegated
properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87171"><code>KT-87171</code></a>
SLC: non-mapped Kotlin collection supertype is dropped from supertype
list</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87250"><code>KT-87250</code></a>
JvmExposeBoxed: light classes shouldn't be autogenerated for private
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70428"><code>KT-70428</code></a>
AA: good code is red when a Java class extends a Kotlin class
implementing MutableList by delegation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-63568"><code>KT-63568</code></a>
Symbol Light Classes:
KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work
incorrectly when psi is not set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-36740"><code>KT-36740</code></a>
MPP: False-positive incompatible types in .java when using expect-class
returned by non-expect member from common when actual is actual
typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="890ac1d94f"><code>890ac1d</code></a>
Add Changelog for 2.4.20-RC3</li>
<li><a
href="8860aed4ae"><code>8860aed</code></a>
🍒 [FIR] Fix suspend conversion when expected type is nullable (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7769">#7769</a>)</li>
<li><a
href="ab5bcd9428"><code>ab5bcd9</code></a>
Edit ChangeLog for 2.4.20-RC2</li>
<li><a
href="9464edc097"><code>9464edc</code></a>
Add ChangeLog for 2.4.20-RC2</li>
<li><a
href="0261e43b78"><code>0261e43</code></a>
Cherry-pick "Fix <code>asBodyAndResultVar</code> call in
`visitInlinedLambdaInComposable...</li>
<li><a
href="0763513670"><code>0763513</code></a>
[box-tests] Workaround for klib compatibility tests (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7626">#7626</a>)</li>
<li><a
href="045aec6647"><code>045aec6</code></a>
[Wasm] Append scripts from webpack.config.d in the end of the file (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7615">#7615</a>)</li>
<li><a
href="cd7173bf0b"><code>cd7173b</code></a>
🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance
survives...</li>
<li><a
href="d36a2ffbcc"><code>d36a2ff</code></a>
CastsOptimizationPass: break aliases cycles (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7578">#7578</a>)</li>
<li><a
href="8664983b34"><code>8664983</code></a>
[CLI] Restore custom IC search scope creation</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.4.10 to
2.4.20
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.plugin.serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.20</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86546"><code>KT-86546</code></a>
Check suspicious when over ConeKotlinType in
ConeTypeCompatibilityChecker</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85418"><code>KT-85418</code></a>
Implement an API for accessing deserialized file annotations in Analysis
API</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74448"><code>KT-74448</code></a>
K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt,
kotlinx.coroutines</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85856"><code>KT-85856</code></a>
containingSymbol of constructor property differs for local and non-local
classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65417"><code>KT-65417</code></a>
K2 IDE: KTOR false positive expect-actual matching error on enum class
because of implicit clone() in non-JVM source sets</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76457"><code>KT-76457</code></a>
K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a
JVM counterpart” on evaluating inline fun from common module inside
jvm</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70552"><code>KT-70552</code></a>
No expects for actual</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69727"><code>KT-69727</code></a>
K2 IDE. Wrong error in the editor on calling <code>clone</code> function
of actual enum instance in non-jvm platform</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69726"><code>KT-69726</code></a>
FP errors on declaring <code>fun clone()</code> in actual enum in
not-jvm source-set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86014"><code>KT-86014</code></a>
Types are broken after remove parameter through change signature</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86363"><code>KT-86363</code></a>
KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier
found on companion blocks</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86147"><code>KT-86147</code></a>
Drop <code>kotlin.parallel.resolve.under.global.lock</code> registry
key</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85543"><code>KT-85543</code></a>
Avoid lazy resolve for the contracts phase if no constracts might be
resolved</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84914"><code>KT-84914</code></a>
Do not publish analysis-api-test-framework</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86986"><code>KT-86986</code></a>
<code>kotlin-compiler-common-for-ide</code> bundles unrelated Analysis
API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86186"><code>KT-86186</code></a>
Analysis API: Codebase tests run twice in some analysis modules — pick a
single JUnit runner and migrate</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85360"><code>KT-85360</code></a>
Drop kotlin-compiler-testdata-for-ide artifact</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85585"><code>KT-85585</code></a>
Simplify the dependencies graph for the Analysis API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85381"><code>KT-85381</code></a>
Remove tests for the FE10 implementation</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84645"><code>KT-84645</code></a>
Support resolving to companion block members & extensions from Java
(light classes)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80775"><code>KT-80775</code></a>
Support PsiClass#getRecordComponents in light classes</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-57537"><code>KT-57537</code></a>
SLC: propagate default parameter value from (<code>@JvmOverloads</code>)
<code>expect</code> declarations to <code>actual</code>
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85040"><code>KT-85040</code></a>
[Analysis API] Improve Java / Kotlin interop in KMP projects</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87301"><code>KT-87301</code></a>
SymbolLightAccessorMethod#isValid returns false for delegated
properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87171"><code>KT-87171</code></a>
SLC: non-mapped Kotlin collection supertype is dropped from supertype
list</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87250"><code>KT-87250</code></a>
JvmExposeBoxed: light classes shouldn't be autogenerated for private
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70428"><code>KT-70428</code></a>
AA: good code is red when a Java class extends a Kotlin class
implementing MutableList by delegation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-63568"><code>KT-63568</code></a>
Symbol Light Classes:
KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work
incorrectly when psi is not set</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.20</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86546"><code>KT-86546</code></a>
Check suspicious when over ConeKotlinType in
ConeTypeCompatibilityChecker</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85418"><code>KT-85418</code></a>
Implement an API for accessing deserialized file annotations in Analysis
API</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74448"><code>KT-74448</code></a>
K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt,
kotlinx.coroutines</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85856"><code>KT-85856</code></a>
containingSymbol of constructor property differs for local and non-local
classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65417"><code>KT-65417</code></a>
K2 IDE: KTOR false positive expect-actual matching error on enum class
because of implicit clone() in non-JVM source sets</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76457"><code>KT-76457</code></a>
K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a
JVM counterpart” on evaluating inline fun from common module inside
jvm</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70552"><code>KT-70552</code></a>
No expects for actual</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69727"><code>KT-69727</code></a>
K2 IDE. Wrong error in the editor on calling <code>clone</code> function
of actual enum instance in non-jvm platform</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69726"><code>KT-69726</code></a>
FP errors on declaring <code>fun clone()</code> in actual enum in
not-jvm source-set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86014"><code>KT-86014</code></a>
Types are broken after remove parameter through change signature</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86363"><code>KT-86363</code></a>
KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier
found on companion blocks</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86147"><code>KT-86147</code></a>
Drop <code>kotlin.parallel.resolve.under.global.lock</code> registry
key</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85543"><code>KT-85543</code></a>
Avoid lazy resolve for the contracts phase if no constracts might be
resolved</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84914"><code>KT-84914</code></a>
Do not publish analysis-api-test-framework</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86986"><code>KT-86986</code></a>
<code>kotlin-compiler-common-for-ide</code> bundles unrelated Analysis
API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86186"><code>KT-86186</code></a>
Analysis API: Codebase tests run twice in some analysis modules — pick a
single JUnit runner and migrate</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85360"><code>KT-85360</code></a>
Drop kotlin-compiler-testdata-for-ide artifact</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85585"><code>KT-85585</code></a>
Simplify the dependencies graph for the Analysis API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85381"><code>KT-85381</code></a>
Remove tests for the FE10 implementation</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84645"><code>KT-84645</code></a>
Support resolving to companion block members & extensions from Java
(light classes)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80775"><code>KT-80775</code></a>
Support PsiClass#getRecordComponents in light classes</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-57537"><code>KT-57537</code></a>
SLC: propagate default parameter value from (<code>@JvmOverloads</code>)
<code>expect</code> declarations to <code>actual</code>
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85040"><code>KT-85040</code></a>
[Analysis API] Improve Java / Kotlin interop in KMP projects</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87301"><code>KT-87301</code></a>
SymbolLightAccessorMethod#isValid returns false for delegated
properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87171"><code>KT-87171</code></a>
SLC: non-mapped Kotlin collection supertype is dropped from supertype
list</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87250"><code>KT-87250</code></a>
JvmExposeBoxed: light classes shouldn't be autogenerated for private
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70428"><code>KT-70428</code></a>
AA: good code is red when a Java class extends a Kotlin class
implementing MutableList by delegation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-63568"><code>KT-63568</code></a>
Symbol Light Classes:
KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work
incorrectly when psi is not set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-36740"><code>KT-36740</code></a>
MPP: False-positive incompatible types in .java when using expect-class
returned by non-expect member from common when actual is actual
typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="890ac1d94f"><code>890ac1d</code></a>
Add Changelog for 2.4.20-RC3</li>
<li><a
href="8860aed4ae"><code>8860aed</code></a>
🍒 [FIR] Fix suspend conversion when expected type is nullable (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7769">#7769</a>)</li>
<li><a
href="ab5bcd9428"><code>ab5bcd9</code></a>
Edit ChangeLog for 2.4.20-RC2</li>
<li><a
href="9464edc097"><code>9464edc</code></a>
Add ChangeLog for 2.4.20-RC2</li>
<li><a
href="0261e43b78"><code>0261e43</code></a>
Cherry-pick "Fix <code>asBodyAndResultVar</code> call in
`visitInlinedLambdaInComposable...</li>
<li><a
href="0763513670"><code>0763513</code></a>
[box-tests] Workaround for klib compatibility tests (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7626">#7626</a>)</li>
<li><a
href="045aec6647"><code>045aec6</code></a>
[Wasm] Append scripts from webpack.config.d in the end of the file (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7615">#7615</a>)</li>
<li><a
href="cd7173bf0b"><code>cd7173b</code></a>
🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance
survives...</li>
<li><a
href="d36a2ffbcc"><code>d36a2ff</code></a>
CastsOptimizationPass: break aliases cycles (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7578">#7578</a>)</li>
<li><a
href="8664983b34"><code>8664983</code></a>
[CLI] Restore custom IC search scope creation</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the other-dependencies group with 2 updates in the
/samples/kotlin-mcp-client directory:
[com.anthropic:anthropic-java](https://github.com/anthropics/anthropic-sdk-java)
and org.slf4j:slf4j-simple.
Bumps the other-dependencies group with 1 update in the
/samples/kotlin-mcp-server directory: org.slf4j:slf4j-simple.
Bumps the other-dependencies group with 1 update in the
/samples/simple-streamable-server directory: org.slf4j:slf4j-simple.
Bumps the other-dependencies group with 1 update in the
/samples/weather-stdio-server directory: org.slf4j:slf4j-simple.
Updates `com.anthropic:anthropic-java` from 2.60.0 to 2.62.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/releases">com.anthropic:anthropic-java's
releases</a>.</em></p>
<blockquote>
<h2>v2.62.0</h2>
<h2>2.62.0 (2026-09-10)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.61.0...v2.62.0">v2.61.0...v2.62.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add auto mode tool permissions for Managed
Agents (<a
href="e373feae15">e373fea</a>)</li>
<li><strong>api:</strong> add content_too_large web_fetch tool error
code (<a
href="96451dee56">96451de</a>)</li>
<li><strong>api:</strong> add the user-profiles-2026-09-04 beta value
and external_user_details to user profiles (<a
href="eb8c5b8900">eb8c5b8</a>)</li>
<li><strong>api:</strong> support mounting public GitHub repositories
without an authorization_token in Managed Agents sessions (<a
href="2e1c9edbd4">2e1c9ed</a>)</li>
</ul>
<h3>Performance Improvements</h3>
<ul>
<li><strong>streaming:</strong> append tool input JSON in place (<a
href="d330f8bc51">d330f8b</a>)</li>
<li><strong>streaming:</strong> buffer text deltas instead of rebuilding
blocks per delta (<a
href="2bf8f70acd">2bf8f70</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>docs:</strong> correct the environment scope field
description (<a
href="788877064e">7888770</a>)</li>
<li><strong>internal:</strong> cap formatter JVM heap at 1 GiB (<a
href="9b7b5a8b9a">9b7b5a8</a>)</li>
<li><strong>internal:</strong> restore package version (<a
href="28151f2eab">28151f2</a>)</li>
<li><strong>internal:</strong> restore package version (<a
href="6044d632e6">6044d63</a>)</li>
<li><strong>internal:</strong> stop stamping the package version into
generated files (<a
href="ee275adad3">ee275ad</a>)</li>
<li><strong>tests:</strong> restore empty test package marker files (<a
href="3e2284c0b3">3e2284c</a>)</li>
</ul>
<h2>v2.61.0</h2>
<h2>2.61.0 (2026-09-04)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.60.0...v2.61.0">v2.60.0...v2.61.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add Claude Tag category and user breakdowns to
usage reports (<a
href="7caaeb9fde">7caaeb9</a>)</li>
<li><strong>api:</strong> add named types for organization compliance
settings state (<a
href="9576c86dce">9576c86</a>)</li>
<li><strong>api:</strong> add workspace_id request option for
multi-workspace credentials (<a
href="cf7f13ccc1">cf7f13c</a>)</li>
<li><strong>api:</strong> raise Managed Agents vault refresh token limit
to 8192 chars (<a
href="d0c2286eda">d0c2286</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>api:</strong> remove response text block maxLength
constraint (<a
href="b6225ce280">b6225ce</a>)</li>
<li><strong>client:</strong> read union common properties from raw JSON
for unknown variants (<a
href="3d2f38fe74">3d2f38f</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>api:</strong> accept anthropic-version on Claude Enterprise
admin endpoints (<a
href="165fa6b5aa">165fa6b</a>)</li>
<li><strong>api:</strong> declare specific error statuses instead of a
generic 4XX response (<a
href="e0dc35b2c5">e0dc35b</a>)</li>
<li><strong>api:</strong> update authentication parameters on spend
limit create and delete (<a
href="d054f6cfe4">d054f6c</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/blob/main/CHANGELOG.md">com.anthropic:anthropic-java's
changelog</a>.</em></p>
<blockquote>
<h2>2.62.0 (2026-09-10)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.61.0...v2.62.0">v2.61.0...v2.62.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add auto mode tool permissions for Managed
Agents (<a
href="e373feae15">e373fea</a>)</li>
<li><strong>api:</strong> add content_too_large web_fetch tool error
code (<a
href="96451dee56">96451de</a>)</li>
<li><strong>api:</strong> add the user-profiles-2026-09-04 beta value
and external_user_details to user profiles (<a
href="eb8c5b8900">eb8c5b8</a>)</li>
<li><strong>api:</strong> support mounting public GitHub repositories
without an authorization_token in Managed Agents sessions (<a
href="2e1c9edbd4">2e1c9ed</a>)</li>
</ul>
<h3>Performance Improvements</h3>
<ul>
<li><strong>streaming:</strong> append tool input JSON in place (<a
href="d330f8bc51">d330f8b</a>)</li>
<li><strong>streaming:</strong> buffer text deltas instead of rebuilding
blocks per delta (<a
href="2bf8f70acd">2bf8f70</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>docs:</strong> correct the environment scope field
description (<a
href="788877064e">7888770</a>)</li>
<li><strong>internal:</strong> cap formatter JVM heap at 1 GiB (<a
href="9b7b5a8b9a">9b7b5a8</a>)</li>
<li><strong>internal:</strong> restore package version (<a
href="28151f2eab">28151f2</a>)</li>
<li><strong>internal:</strong> restore package version (<a
href="6044d632e6">6044d63</a>)</li>
<li><strong>internal:</strong> stop stamping the package version into
generated files (<a
href="ee275adad3">ee275ad</a>)</li>
<li><strong>tests:</strong> restore empty test package marker files (<a
href="3e2284c0b3">3e2284c</a>)</li>
</ul>
<h2>2.61.0 (2026-09-04)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.60.0...v2.61.0">v2.60.0...v2.61.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add Claude Tag category and user breakdowns to
usage reports (<a
href="7caaeb9fde">7caaeb9</a>)</li>
<li><strong>api:</strong> add named types for organization compliance
settings state (<a
href="9576c86dce">9576c86</a>)</li>
<li><strong>api:</strong> add workspace_id request option for
multi-workspace credentials (<a
href="cf7f13ccc1">cf7f13c</a>)</li>
<li><strong>api:</strong> raise Managed Agents vault refresh token limit
to 8192 chars (<a
href="d0c2286eda">d0c2286</a>)</li>
<li><strong>client:</strong> keep vault credential secrets out of
Terraform state with write-only arguments (<a
href="7556952191">7556952</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>api:</strong> remove response text block maxLength
constraint (<a
href="b6225ce280">b6225ce</a>)</li>
<li><strong>client:</strong> raise a clear error when an httpx object is
passed instead of an httpx2 one (<a
href="130d7af1c6">130d7af</a>)</li>
<li><strong>client:</strong> read union common properties from raw JSON
for unknown variants (<a
href="3d2f38fe74">3d2f38f</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>api:</strong> accept anthropic-version on Claude Enterprise
admin endpoints (<a
href="165fa6b5aa">165fa6b</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="88a17532c5"><code>88a1753</code></a>
Merge pull request <a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/400">#400</a>
from anthropics/release-please--branches--main--chang...</li>
<li><a
href="6964f0722f"><code>6964f07</code></a>
release: 2.62.0</li>
<li><a
href="e373feae15"><code>e373fea</code></a>
feat(api): add auto mode tool permissions for Managed Agents</li>
<li><a
href="2e1c9edbd4"><code>2e1c9ed</code></a>
feat(api): support mounting public GitHub repositories without an
authorizati...</li>
<li><a
href="eb8c5b8900"><code>eb8c5b8</code></a>
feat(api): add the user-profiles-2026-09-04 beta value and
external_user_deta...</li>
<li><a
href="2bf8f70acd"><code>2bf8f70</code></a>
perf(streaming): buffer text deltas instead of rebuilding blocks per
delta</li>
<li><a
href="d330f8bc51"><code>d330f8b</code></a>
perf(streaming): append tool input JSON in place</li>
<li><a
href="788877064e"><code>7888770</code></a>
chore(docs): correct the environment scope field description</li>
<li><a
href="9b7b5a8b9a"><code>9b7b5a8</code></a>
chore(internal): cap formatter JVM heap at 1 GiB</li>
<li><a
href="96451dee56"><code>96451de</code></a>
feat(api): add content_too_large web_fetch tool error code</li>
<li>Additional commits viewable in <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.60.0...v2.62.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.slf4j:slf4j-simple` from 2.0.18 to 2.0.19
Updates `org.slf4j:slf4j-simple` from 2.0.18 to 2.0.19
Updates `org.slf4j:slf4j-simple` from 2.0.18 to 2.0.19
Updates `org.slf4j:slf4j-simple` from 2.0.18 to 2.0.19
Updates `org.slf4j:slf4j-simple` from 2.0.18 to 2.0.19
Updates `org.slf4j:slf4j-simple` from 2.0.18 to 2.0.19
Updates `org.slf4j:slf4j-simple` from 2.0.18 to 2.0.19
Updates `org.slf4j:slf4j-simple` from 2.0.18 to 2.0.19
Updates `org.slf4j:slf4j-simple` from 2.0.18 to 2.0.19
Updates `org.slf4j:slf4j-simple` from 2.0.18 to 2.0.19
Updates `org.slf4j:slf4j-simple` from 2.0.18 to 2.0.19
Updates `org.slf4j:slf4j-simple` from 2.0.18 to 2.0.19
Updates `org.slf4j:slf4j-simple` from 2.0.18 to 2.0.19
Updates `org.slf4j:slf4j-simple` from 2.0.18 to 2.0.19
Updates `org.slf4j:slf4j-simple` from 2.0.18 to 2.0.19
Updates `org.slf4j:slf4j-simple` from 2.0.18 to 2.0.19
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.jetbrains.kotlin.jvm](https://github.com/JetBrains/kotlin)
from 2.4.10 to 2.4.20.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.20</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86546"><code>KT-86546</code></a>
Check suspicious when over ConeKotlinType in
ConeTypeCompatibilityChecker</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85418"><code>KT-85418</code></a>
Implement an API for accessing deserialized file annotations in Analysis
API</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74448"><code>KT-74448</code></a>
K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt,
kotlinx.coroutines</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85856"><code>KT-85856</code></a>
containingSymbol of constructor property differs for local and non-local
classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65417"><code>KT-65417</code></a>
K2 IDE: KTOR false positive expect-actual matching error on enum class
because of implicit clone() in non-JVM source sets</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76457"><code>KT-76457</code></a>
K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a
JVM counterpart” on evaluating inline fun from common module inside
jvm</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70552"><code>KT-70552</code></a>
No expects for actual</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69727"><code>KT-69727</code></a>
K2 IDE. Wrong error in the editor on calling <code>clone</code> function
of actual enum instance in non-jvm platform</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69726"><code>KT-69726</code></a>
FP errors on declaring <code>fun clone()</code> in actual enum in
not-jvm source-set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86014"><code>KT-86014</code></a>
Types are broken after remove parameter through change signature</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86363"><code>KT-86363</code></a>
KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier
found on companion blocks</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86147"><code>KT-86147</code></a>
Drop <code>kotlin.parallel.resolve.under.global.lock</code> registry
key</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85543"><code>KT-85543</code></a>
Avoid lazy resolve for the contracts phase if no constracts might be
resolved</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84914"><code>KT-84914</code></a>
Do not publish analysis-api-test-framework</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86986"><code>KT-86986</code></a>
<code>kotlin-compiler-common-for-ide</code> bundles unrelated Analysis
API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86186"><code>KT-86186</code></a>
Analysis API: Codebase tests run twice in some analysis modules — pick a
single JUnit runner and migrate</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85360"><code>KT-85360</code></a>
Drop kotlin-compiler-testdata-for-ide artifact</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85585"><code>KT-85585</code></a>
Simplify the dependencies graph for the Analysis API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85381"><code>KT-85381</code></a>
Remove tests for the FE10 implementation</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84645"><code>KT-84645</code></a>
Support resolving to companion block members & extensions from Java
(light classes)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80775"><code>KT-80775</code></a>
Support PsiClass#getRecordComponents in light classes</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-57537"><code>KT-57537</code></a>
SLC: propagate default parameter value from (<code>@JvmOverloads</code>)
<code>expect</code> declarations to <code>actual</code>
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85040"><code>KT-85040</code></a>
[Analysis API] Improve Java / Kotlin interop in KMP projects</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87301"><code>KT-87301</code></a>
SymbolLightAccessorMethod#isValid returns false for delegated
properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87171"><code>KT-87171</code></a>
SLC: non-mapped Kotlin collection supertype is dropped from supertype
list</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87250"><code>KT-87250</code></a>
JvmExposeBoxed: light classes shouldn't be autogenerated for private
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70428"><code>KT-70428</code></a>
AA: good code is red when a Java class extends a Kotlin class
implementing MutableList by delegation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-63568"><code>KT-63568</code></a>
Symbol Light Classes:
KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work
incorrectly when psi is not set</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.20</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86546"><code>KT-86546</code></a>
Check suspicious when over ConeKotlinType in
ConeTypeCompatibilityChecker</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85418"><code>KT-85418</code></a>
Implement an API for accessing deserialized file annotations in Analysis
API</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74448"><code>KT-74448</code></a>
K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt,
kotlinx.coroutines</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85856"><code>KT-85856</code></a>
containingSymbol of constructor property differs for local and non-local
classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65417"><code>KT-65417</code></a>
K2 IDE: KTOR false positive expect-actual matching error on enum class
because of implicit clone() in non-JVM source sets</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76457"><code>KT-76457</code></a>
K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a
JVM counterpart” on evaluating inline fun from common module inside
jvm</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70552"><code>KT-70552</code></a>
No expects for actual</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69727"><code>KT-69727</code></a>
K2 IDE. Wrong error in the editor on calling <code>clone</code> function
of actual enum instance in non-jvm platform</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-69726"><code>KT-69726</code></a>
FP errors on declaring <code>fun clone()</code> in actual enum in
not-jvm source-set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86014"><code>KT-86014</code></a>
Types are broken after remove parameter through change signature</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86363"><code>KT-86363</code></a>
KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier
found on companion blocks</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86147"><code>KT-86147</code></a>
Drop <code>kotlin.parallel.resolve.under.global.lock</code> registry
key</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85543"><code>KT-85543</code></a>
Avoid lazy resolve for the contracts phase if no constracts might be
resolved</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84914"><code>KT-84914</code></a>
Do not publish analysis-api-test-framework</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86986"><code>KT-86986</code></a>
<code>kotlin-compiler-common-for-ide</code> bundles unrelated Analysis
API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86186"><code>KT-86186</code></a>
Analysis API: Codebase tests run twice in some analysis modules — pick a
single JUnit runner and migrate</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85360"><code>KT-85360</code></a>
Drop kotlin-compiler-testdata-for-ide artifact</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85585"><code>KT-85585</code></a>
Simplify the dependencies graph for the Analysis API modules</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85381"><code>KT-85381</code></a>
Remove tests for the FE10 implementation</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84645"><code>KT-84645</code></a>
Support resolving to companion block members & extensions from Java
(light classes)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80775"><code>KT-80775</code></a>
Support PsiClass#getRecordComponents in light classes</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-57537"><code>KT-57537</code></a>
SLC: propagate default parameter value from (<code>@JvmOverloads</code>)
<code>expect</code> declarations to <code>actual</code>
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85040"><code>KT-85040</code></a>
[Analysis API] Improve Java / Kotlin interop in KMP projects</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87301"><code>KT-87301</code></a>
SymbolLightAccessorMethod#isValid returns false for delegated
properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87171"><code>KT-87171</code></a>
SLC: non-mapped Kotlin collection supertype is dropped from supertype
list</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87250"><code>KT-87250</code></a>
JvmExposeBoxed: light classes shouldn't be autogenerated for private
declarations</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70428"><code>KT-70428</code></a>
AA: good code is red when a Java class extends a Kotlin class
implementing MutableList by delegation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-63568"><code>KT-63568</code></a>
Symbol Light Classes:
KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work
incorrectly when psi is not set</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-36740"><code>KT-36740</code></a>
MPP: False-positive incompatible types in .java when using expect-class
returned by non-expect member from common when actual is actual
typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="890ac1d94f"><code>890ac1d</code></a>
Add Changelog for 2.4.20-RC3</li>
<li><a
href="8860aed4ae"><code>8860aed</code></a>
🍒 [FIR] Fix suspend conversion when expected type is nullable (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7769">#7769</a>)</li>
<li><a
href="ab5bcd9428"><code>ab5bcd9</code></a>
Edit ChangeLog for 2.4.20-RC2</li>
<li><a
href="9464edc097"><code>9464edc</code></a>
Add ChangeLog for 2.4.20-RC2</li>
<li><a
href="0261e43b78"><code>0261e43</code></a>
Cherry-pick "Fix <code>asBodyAndResultVar</code> call in
`visitInlinedLambdaInComposable...</li>
<li><a
href="0763513670"><code>0763513</code></a>
[box-tests] Workaround for klib compatibility tests (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7626">#7626</a>)</li>
<li><a
href="045aec6647"><code>045aec6</code></a>
[Wasm] Append scripts from webpack.config.d in the end of the file (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7615">#7615</a>)</li>
<li><a
href="cd7173bf0b"><code>cd7173b</code></a>
🍒 [2.4.20] [K/JS] Keep associated obj annotation only if getInstance
survives...</li>
<li><a
href="d36a2ffbcc"><code>d36a2ff</code></a>
CastsOptimizationPass: break aliases cycles (<a
href="https://redirect.github.com/JetBrains/kotlin/issues/7578">#7578</a>)</li>
<li><a
href="8664983b34"><code>8664983</code></a>
[CLI] Restore custom IC search scope creation</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [hono](https://github.com/honojs/hono) from 4.13.1 to 4.13.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/honojs/hono/releases">hono's
releases</a>.</em></p>
<blockquote>
<h2>v4.13.7</h2>
<h2>Security fixes</h2>
<p>This release includes a fix for the following security issue:</p>
<h3><code>hono/jsx</code> renders plain strings unescaped in boundary
components, leading to XSS</h3>
<p>Affects: <code>Suspense</code>, <code>ErrorBoundary</code>, and
<code>Context.Provider</code> in <code>hono/jsx</code>, and
<code>renderToString()</code> / <code>renderToReadableStream()</code> in
<code>hono/jsx/dom/server</code>. Fixes missing HTML escaping for a
plain string placed directly as a child or <code>fallback</code> of
these components, or as the root value of the server rendering
functions, so untrusted strings could be emitted as markup.
GHSA-hxh3-vqpv-xpqv</p>
<hr />
<p>Users who render untrusted strings inside <code>Suspense</code>,
<code>ErrorBoundary</code>, or <code>Context.Provider</code>, or pass
them directly to <code>hono/jsx/dom/server</code>, are strongly
encouraged to upgrade to this version.</p>
<h2>v4.13.6</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(client): keep a param value of "index" in $url() and
$path() in <a
href="https://redirect.github.com/honojs/hono/pull/5297">honojs/hono#5297</a></li>
<li>fix(client): normalize root WebSocket URLs in <a
href="https://redirect.github.com/honojs/hono/pull/5291">honojs/hono#5291</a></li>
<li>fix(types): allow symbol keys in Context<!-- raw HTML omitted -->
get and set fallbacks in <a
href="https://redirect.github.com/honojs/hono/pull/5300">honojs/hono#5300</a></li>
<li>chore: bump <code>editorconfig-checker</code> in <a
href="https://redirect.github.com/honojs/hono/pull/5336">honojs/hono#5336</a></li>
<li>refactor(on-handler): use forEach for consistent handler iteration
in <a
href="https://redirect.github.com/honojs/hono/pull/5326">honojs/hono#5326</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/honojs/hono/compare/v4.13.5...v4.13.6">https://github.com/honojs/hono/compare/v4.13.5...v4.13.6</a></p>
<h2>v4.13.5</h2>
<h2>Security fixes</h2>
<p>This release includes fixes for the following security issues:</p>
<h3>Query parser reads parameters after the URL fragment, causing
cache-key and proxy interpretation differentials</h3>
<p>Affects: Cache Middleware and applications behind a proxy, WAF, or
logging layer that inspects query strings. Fixes query parsing that did
not stop at the URL fragment, so a <code>?</code> after a <code>#</code>
was treated as the start of a query string and the application could
read parameters that the other component never saw.
GHSA-crvj-82cr-hjcx</p>
<h3>Incomplete fix for CVE-2026-39408: <code>toSSG()</code> still writes
files outside the output directory</h3>
<p>Affects: <code>toSSG()</code> for Static Site Generation. Fixes a
path normalization gap where consecutive parent-directory segments in
<code>ssgParams</code> values were not fully collapsed, bypassing the
containment check added in 4.12.12. GHSA-gqvv-2mrq-wpjv</p>
<h3>Unbounded dot-notation nesting in <code>parseBody()</code> can cause
memory exhaustion</h3>
<p>Affects: <code>parseBody()</code> when dot-notation parsing is
enabled. Fixes unbounded expansion of dot-separated field names, where a
small request body could allocate a disproportionately large object
graph and concurrent requests could exhaust the heap.
GHSA-g6gw-c38x-mqfc</p>
<hr />
<p>Users who use Cache Middleware, deploy behind a proxy or WAF that
inspects query strings, use Static Site Generation, or use
<code>parseBody({ dot: true })</code> are strongly encouraged to upgrade
to this version.</p>
<h2>v4.13.4</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(request): handle params on unmatched requests in <a
href="https://redirect.github.com/honojs/hono/pull/5268">honojs/hono#5268</a></li>
<li>fix(jsx/dom): execute previous ref cleanup when ref prop changes on
re-render in <a
href="https://redirect.github.com/honojs/hono/pull/5264">honojs/hono#5264</a></li>
<li>fix(reg-exp-router): associate wildcard middleware with matching
routes in <a
href="https://redirect.github.com/honojs/hono/pull/5266">honojs/hono#5266</a></li>
<li>perf(router): share null object creation in <a
href="https://redirect.github.com/honojs/hono/pull/5267">honojs/hono#5267</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="eebdf7be39"><code>eebdf7b</code></a>
4.13.7</li>
<li><a
href="2b8ed402cd"><code>2b8ed40</code></a>
Merge commit from fork</li>
<li><a
href="cac0c4d3fe"><code>cac0c4d</code></a>
4.13.6</li>
<li><a
href="dac5d5794c"><code>dac5d57</code></a>
refactor(on-handler): use forEach for consistent handler iteration (<a
href="https://redirect.github.com/honojs/hono/issues/5326">#5326</a>)</li>
<li><a
href="ec648d6837"><code>ec648d6</code></a>
chore: bump <code>editorconfig-checker</code> (<a
href="https://redirect.github.com/honojs/hono/issues/5336">#5336</a>)</li>
<li><a
href="e2740d5a1b"><code>e2740d5</code></a>
fix(types): allow symbol keys in Context<any> get and set
fallbacks (<a
href="https://redirect.github.com/honojs/hono/issues/5300">#5300</a>)</li>
<li><a
href="499c35ebda"><code>499c35e</code></a>
fix(client): normalize root WebSocket URLs (<a
href="https://redirect.github.com/honojs/hono/issues/5291">#5291</a>)</li>
<li><a
href="50b8788cf5"><code>50b8788</code></a>
fix(client): keep a param value of "index" in $url() and
$path() (<a
href="https://redirect.github.com/honojs/hono/issues/5297">#5297</a>)</li>
<li><a
href="06880c4a2b"><code>06880c4</code></a>
4.13.5</li>
<li><a
href="531e9c5a3a"><code>531e9c5</code></a>
Merge commit from fork</li>
<li>Additional commits viewable in <a
href="https://github.com/honojs/hono/compare/v4.13.1...v4.13.7">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the all-dependencies group with 3 updates in the
/integration-test/src/jvmTest/typescript directory:
[zod](https://github.com/colinhacks/zod),
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
and [tsx](https://github.com/privatenumber/tsx).
Updates `zod` from 4.5.2 to 4.5.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/colinhacks/zod/releases">zod's
releases</a>.</em></p>
<blockquote>
<h2>v4.5.4</h2>
<h2>Commits:</h2>
<ul>
<li>84e416fbf4740527bbc8f319634f4e1b065bb42c fix(v4): stop the cycle
walk from firing a default factory (<a
href="https://redirect.github.com/colinhacks/zod/issues/6500">#6500</a>)</li>
<li>e8e206fa33ac5fe7ce20a2beb12d57b1cb3df653 4.5.4</li>
</ul>
<h2>v4.5.3</h2>
<h2>Commits:</h2>
<ul>
<li>e6b6ab347675cd2bd54b1bdbed16f98c59be82a9 docs(blog): widen the
z.compile example to a 20-property schema</li>
<li>87d6464418582bb96fc665a01f852ca6da324ad0 fix(docs): drop the OG
description when the title wraps past two lines</li>
<li>99fce394a026823e602b9c30d8d5d9f5f1932ce7 bench(v4): z.compile()
against zod-compiler (<a
href="https://redirect.github.com/colinhacks/zod/issues/6499">#6499</a>)</li>
<li>e3a695b6bf3f0d591ea682816e3cdaea04b0f967 docs(v4): record the email
regex and container output-shape findings under Open</li>
<li>7e24a24288183ce02554f1ded7775d0650a7b7e6 docs(blog): drop the
reading time and put a GitHub link in the navbar</li>
<li>eab51ff3592b2d11d863f4ee4d5452f31a3de1b6 fix(v4): emit record
numeric keys as strings in toJSONSchema (<a
href="https://redirect.github.com/colinhacks/zod/issues/6497">#6497</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e8e206fa33"><code>e8e206f</code></a>
4.5.4</li>
<li><a
href="84e416fbf4"><code>84e416f</code></a>
fix(v4): stop the cycle walk from firing a default factory (<a
href="https://redirect.github.com/colinhacks/zod/issues/6500">#6500</a>)</li>
<li><a
href="1a16102a49"><code>1a16102</code></a>
4.5.3</li>
<li><a
href="eab51ff359"><code>eab51ff</code></a>
fix(v4): emit record numeric keys as strings in toJSONSchema (<a
href="https://redirect.github.com/colinhacks/zod/issues/6497">#6497</a>)</li>
<li><a
href="7e24a24288"><code>7e24a24</code></a>
docs(blog): drop the reading time and put a GitHub link in the
navbar</li>
<li><a
href="e3a695b6bf"><code>e3a695b</code></a>
docs(v4): record the email regex and container output-shape findings
under Open</li>
<li><a
href="99fce394a0"><code>99fce39</code></a>
bench(v4): z.compile() against zod-compiler (<a
href="https://redirect.github.com/colinhacks/zod/issues/6499">#6499</a>)</li>
<li><a
href="87d6464418"><code>87d6464</code></a>
fix(docs): drop the OG description when the title wraps past two
lines</li>
<li><a
href="e6b6ab3476"><code>e6b6ab3</code></a>
docs(blog): widen the z.compile example to a 20-property schema</li>
<li>See full diff in <a
href="https://github.com/colinhacks/zod/compare/v4.5.2...v4.5.4">compare
view</a></li>
</ul>
</details>
<br />
Updates `@types/node` from 26.4.0 to 26.4.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />
Updates `tsx` from 4.23.12 to 4.23.13
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/privatenumber/tsx/releases">tsx's
releases</a>.</em></p>
<blockquote>
<h2>v4.23.13</h2>
<h2><a
href="https://github.com/privatenumber/tsx/compare/v4.23.12...v4.23.13">4.23.13</a>
(2026-08-30)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>cache:</strong> bound shared transform cache memory (<a
href="https://redirect.github.com/privatenumber/tsx/issues/835">#835</a>)
(<a
href="28e1f12d04">28e1f12</a>)</li>
</ul>
<hr />
<p>This release is also available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/tsx/v/4.23.13"><code>npm
package (@latest dist-tag)</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="28e1f12d04"><code>28e1f12</code></a>
fix(cache): bound shared transform cache memory (<a
href="https://redirect.github.com/privatenumber/tsx/issues/835">#835</a>)</li>
<li>See full diff in <a
href="https://github.com/privatenumber/tsx/compare/v4.23.12...v4.23.13">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Problem
`prompts/get` for a name that is not registered responds with JSON-RPC
`-32603` (INTERNAL_ERROR).
`handleGetPrompt` in `Server.kt` throws a bare
`IllegalArgumentException` when the prompt is missing.
`Protocol.respondWithError` maps any non-`McpException` cause to
`INTERNAL_ERROR`, so the client receives `-32603` for what is a
client-side bad parameter.
The sibling handler `handleReadResource` in the same file already throws
a typed `McpException(RESOURCE_NOT_FOUND)` for the equivalent not-found
case, which reaches the client as `-32002`. The two not-found paths are
inconsistent.
In JSON-RPC, `-32603` means the server hit an internal fault. Requesting
a prompt name that does not exist is a client error (an invalid `name`
parameter), so a client cannot tell "the prompt does not exist" apart
from "the server failed" and may retry a request that can never succeed.
## Change
Throw a typed `McpException(INVALID_PARAMS)` from `handleGetPrompt`,
consistent with `handleReadResource`. The message is unchanged.
`AbstractPromptIntegrationTest.testNonExistentPrompt` asserted `-32603`;
it now asserts `INVALID_PARAMS`.
If you would prefer a dedicated error code for this case instead of
`INVALID_PARAMS`, I am glad to adjust.
Bumps the other-dependencies group with 1 update in the
/samples/kotlin-mcp-client directory:
[com.anthropic:anthropic-java](https://github.com/anthropics/anthropic-sdk-java).
Updates `com.anthropic:anthropic-java` from 2.59.0 to 2.60.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/releases">com.anthropic:anthropic-java's
releases</a>.</em></p>
<blockquote>
<h2>v2.60.0</h2>
<h2>2.60.0 (2026-09-01)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.59.0...v2.60.0">v2.59.0...v2.60.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add external_user_onboarded_at to user
profiles (<a
href="2aa81c05e5">2aa81c0</a>)</li>
<li><strong>api:</strong> add support for claude-fable-5-1 and
claude-mythos-5-1 (<a
href="f41a324564">f41a324</a>)</li>
<li><strong>api:</strong> add support for organization compliance
settings in the Admin API (<a
href="4b64a841b6">4b64a84</a>)</li>
<li><strong>api:</strong> support pagination on organization rate limit
list endpoints (<a
href="2aa81c05e5">2aa81c0</a>)</li>
<li><strong>user_profiles:</strong> sort the user profile list by name
with order_by=name (<a
href="931543ef60">931543e</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>api:</strong> mark the beta header required on Admin API
Tunnel operations (<a
href="898dabf8ac">898dabf</a>)</li>
<li><strong>api:</strong> remove unsupported allowed_callers from the
toolset entries (<a
href="53bd597bcd">53bd597</a>)</li>
<li><strong>client:</strong> include non-JSON error response bodies in
API errors (<a
href="04045b50ac">04045b5</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>api:</strong> remove unreleased thinking
prefix_mismatched_behavior param (<a
href="e01193ad4e">e01193a</a>)</li>
<li><strong>api:</strong> remove user profile relationship in favor of
access_type (<a
href="e01193ad4e">e01193a</a>)</li>
<li><strong>ci:</strong> keep the Maven artifact upload steps under stlc
(<a
href="7437d73702">7437d73</a>)</li>
<li><strong>docs:</strong> clarify disallowed characters in memory paths
(<a
href="20582c1f6e">20582c1</a>)</li>
<li><strong>internal:</strong> add browser-stubbed internal/node module
and lint rule for Node built-in imports (<a
href="2aa81c05e5">2aa81c0</a>)</li>
<li><strong>internal:</strong> pin JAVA_HOME for detekt-rules tests and
relax UnusedPrivateProperty for tests/examples (<a
href="2aa81c05e5">2aa81c0</a>)</li>
<li><strong>internal:</strong> read the request id shown in Terraform
error diagnostics from the response header (<a
href="2aa81c05e5">2aa81c0</a>)</li>
<li><strong>internal:</strong> remove discriminator support from
PropertyInfo (<a
href="4b64a841b6">4b64a84</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><strong>api:</strong> backtick identifiers in managed-agents API
descriptions (<a
href="db40558f3b">db40558</a>)</li>
<li><strong>api:</strong> describe external_key_id and compartment_id
behavior on Claude Platform on AWS (<a
href="5eefbe1b52">5eefbe1</a>)</li>
<li><strong>changelog:</strong> detail the beta files/skills GA-shape
change (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/398">#398</a>)
(<a
href="010593670e">0105936</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/blob/main/CHANGELOG.md">com.anthropic:anthropic-java's
changelog</a>.</em></p>
<blockquote>
<h2>2.60.0 (2026-09-01)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.59.0...v2.60.0">v2.59.0...v2.60.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add external_user_onboarded_at to user
profiles (<a
href="2aa81c05e5">2aa81c0</a>)</li>
<li><strong>api:</strong> add support for claude-fable-5-1 and
claude-mythos-5-1 (<a
href="f41a324564">f41a324</a>)</li>
<li><strong>api:</strong> add support for organization compliance
settings in the Admin API (<a
href="4b64a841b6">4b64a84</a>)</li>
<li><strong>api:</strong> support pagination on organization rate limit
list endpoints (<a
href="2aa81c05e5">2aa81c0</a>)</li>
<li><strong>user_profiles:</strong> sort the user profile list by name
with order_by=name (<a
href="931543ef60">931543e</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>api:</strong> mark the beta header required on Admin API
Tunnel operations (<a
href="898dabf8ac">898dabf</a>)</li>
<li><strong>api:</strong> remove unsupported allowed_callers from the
toolset entries (<a
href="53bd597bcd">53bd597</a>)</li>
<li><strong>client:</strong> include non-JSON error response bodies in
API errors (<a
href="04045b50ac">04045b5</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>api:</strong> remove unreleased thinking
prefix_mismatched_behavior param (<a
href="e01193ad4e">e01193a</a>)</li>
<li><strong>api:</strong> remove user profile relationship in favor of
access_type (<a
href="e01193ad4e">e01193a</a>)</li>
<li><strong>ci:</strong> keep the Maven artifact upload steps under stlc
(<a
href="7437d73702">7437d73</a>)</li>
<li><strong>docs:</strong> clarify disallowed characters in memory paths
(<a
href="20582c1f6e">20582c1</a>)</li>
<li><strong>internal:</strong> add browser-stubbed internal/node module
and lint rule for Node built-in imports (<a
href="2aa81c05e5">2aa81c0</a>)</li>
<li><strong>internal:</strong> pin JAVA_HOME for detekt-rules tests and
relax UnusedPrivateProperty for tests/examples (<a
href="2aa81c05e5">2aa81c0</a>)</li>
<li><strong>internal:</strong> read the request id shown in Terraform
error diagnostics from the response header (<a
href="2aa81c05e5">2aa81c0</a>)</li>
<li><strong>internal:</strong> remove discriminator support from
PropertyInfo (<a
href="4b64a841b6">4b64a84</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><strong>api:</strong> backtick identifiers in managed-agents API
descriptions (<a
href="db40558f3b">db40558</a>)</li>
<li><strong>api:</strong> describe external_key_id and compartment_id
behavior on Claude Platform on AWS (<a
href="5eefbe1b52">5eefbe1</a>)</li>
<li><strong>changelog:</strong> detail the beta files/skills GA-shape
change (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/398">#398</a>)
(<a
href="010593670e">0105936</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1dfef96487"><code>1dfef96</code></a>
Merge pull request <a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/397">#397</a>
from anthropics/release-please--branches--main--chang...</li>
<li><a
href="110af9e0eb"><code>110af9e</code></a>
release: 2.60.0</li>
<li><a
href="f41a324564"><code>f41a324</code></a>
feat(api): add support for claude-fable-5-1 and claude-mythos-5-1</li>
<li><a
href="04045b50ac"><code>04045b5</code></a>
fix(client): include non-JSON error response bodies in API errors</li>
<li><a
href="5eefbe1b52"><code>5eefbe1</code></a>
docs(api): describe external_key_id and compartment_id behavior on
Claude Pla...</li>
<li><a
href="841463e335"><code>841463e</code></a>
Merge branch 'main' into next</li>
<li><a
href="010593670e"><code>0105936</code></a>
docs(changelog): detail the beta files/skills GA-shape change (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/398">#398</a>)</li>
<li><a
href="53bd597bcd"><code>53bd597</code></a>
fix(api): remove unsupported allowed_callers from the toolset
entries</li>
<li><a
href="20582c1f6e"><code>20582c1</code></a>
chore(docs): clarify disallowed characters in memory paths</li>
<li><a
href="db40558f3b"><code>db40558</code></a>
docs(api): backtick identifiers in managed-agents API descriptions</li>
<li>Additional commits viewable in <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.59.0...v2.60.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [qs](https://github.com/ljharb/qs) from 6.15.2 to 6.16.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ljharb/qs/blob/main/CHANGELOG.md">qs's
changelog</a>.</em></p>
<blockquote>
<h2><strong>6.16.0</strong></h2>
<ul>
<li>[New] <code>stringify</code>: add a <code>depth</code> option to
bound recursion depth (default <code>Infinity</code>)</li>
<li>[Fix] stringify: serialize Date values when a filter is
provided</li>
<li>[Fix] <code>parse</code>: enforce <code>arrayLimit</code> on comma
groups under <code>[]=</code> when <code>throwOnLimitExceeded</code> is
set</li>
<li>[Fix] <code>parse</code>: flatten a collection appended to an
overflowed array (<a
href="https://redirect.github.com/ljharb/qs/issues/571">#571</a>)</li>
<li>[Fix] <code>utils</code>: <code>isBuffer</code>: do not invoke a
non-callable <code>constructor.isBuffer</code></li>
<li>[Fix] <code>stringify</code>: do not let
<code>allowEmptyArrays</code> skip cycle detection (or drop own keys) on
an empty array with own properties</li>
<li>[Fix] <code>stringify</code>: encode dots in a top-level key with a
primitive value when encodeDotInKeys is set (<a
href="https://redirect.github.com/ljharb/qs/issues/562">#562</a>)</li>
<li>[Docs] threat model: clarify <code>stringify</code> deep-nesting DoS
is caller-bounded</li>
<li>[Docs] clarify <code>arrayLimit</code> is a representation
threshold, not an element-count cap</li>
<li>[Tests] <code>parse</code>: remove a test that pinned
<code>[]=</code> comma groups escaping <code>arrayLimit</code></li>
<li>[Tests] <code>stringify</code>: pin current
<code>encodeDotInKeys</code> separator-dot behavior</li>
<li>[Dev Deps] update <code>@ljharb/eslint-config</code>,
<code>eslint</code></li>
<li>[Dev Deps] update <code>eslint</code>, <code>evalmd</code></li>
</ul>
<h2><strong>6.15.3</strong></h2>
<ul>
<li>[Fix] <code>parse</code>: enforce <code>throwOnLimitExceeded</code>
for cumulative array growth via
<code>combine</code>/<code>merge</code></li>
<li>[Fix] <code>utils</code>: respect encoding of surrogate pairs across
chunks (<a
href="https://redirect.github.com/ljharb/qs/issues/559">#559</a>)</li>
<li>[Robustness] <code>parse</code>: throw the <code>arrayLimit</code>
error before splitting oversized comma values</li>
<li>[Robustness] <code>utils.merge</code> / <code>utils.assign</code>:
avoid invoking <code>__proto__</code> setter when copying own
properties</li>
<li>[Robustness] <code>utils</code>: enforce <code>arrayLimit</code>
consistently across <code>merge</code>'s array paths</li>
<li>[Perf] <code>utils</code>: make <code>compact</code> O(n) via a
side-channel visited-set instead of <code>Array.indexOf</code></li>
<li>[Deps] update <code>side-channel</code></li>
<li>[Dev Deps] update <code>eslint</code>, <code>mock-property</code>,
<code>tape</code></li>
<li>[Tests] <code>parse</code>: characterize current lenient handling of
unbalanced bracket keys (<a
href="https://redirect.github.com/ljharb/qs/issues/558">#558</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="bb9379e01f"><code>bb9379e</code></a>
v6.16.0</li>
<li><a
href="62fd25480b"><code>62fd254</code></a>
[Fix] stringify: serialize Date values when a filter is provided</li>
<li><a
href="8859c37470"><code>8859c37</code></a>
[Fix] <code>parse</code>: enforce <code>arrayLimit</code> on comma
groups under <code>[]=</code> when `throwOn...</li>
<li><a
href="8079adc7e7"><code>8079adc</code></a>
[Tests] <code>parse</code>: remove a test that pinned <code>[]=</code>
comma groups escaping `array...</li>
<li><a
href="d56f48ca13"><code>d56f48c</code></a>
[Fix] <code>parse</code>: flatten a collection appended to an overflowed
array</li>
<li><a
href="e83d321ffa"><code>e83d321</code></a>
[Fix] <code>utils</code>: <code>isBuffer</code>: do not invoke a
non-callable <code>constructor.isBuffer</code></li>
<li><a
href="7e87a07c2c"><code>7e87a07</code></a>
[Dev Deps] update <code>@ljharb/eslint-config</code>,
<code>eslint</code></li>
<li><a
href="9a76af2160"><code>9a76af2</code></a>
[Dev Deps] update <code>eslint</code>, <code>evalmd</code></li>
<li><a
href="3a890d4ecd"><code>3a890d4</code></a>
[Dev Deps] update <code>eslint</code>, <code>evalmd</code></li>
<li><a
href="b433a9b163"><code>b433a9b</code></a>
[Fix] <code>stringify</code>: do not let <code>allowEmptyArrays</code>
skip cycle detection (or dro...</li>
<li>Additional commits viewable in <a
href="https://github.com/ljharb/qs/compare/v6.15.2...v6.16.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the other-dependencies group with 1 update in the
/samples/kotlin-mcp-client directory:
[com.anthropic:anthropic-java](https://github.com/anthropics/anthropic-sdk-java).
Bumps the other-dependencies group with 1 update in the
/samples/kotlin-mcp-server directory:
[gradle-wrapper](https://github.com/gradle/gradle).
Bumps the other-dependencies group with 1 update in the
/samples/weather-stdio-server directory:
[gradle-wrapper](https://github.com/gradle/gradle).
Updates `com.anthropic:anthropic-java` from 2.57.0 to 2.59.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/releases">com.anthropic:anthropic-java's
releases</a>.</em></p>
<blockquote>
<h2>v2.59.0</h2>
<h2>2.59.0 (2026-08-27)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.58.0...v2.59.0">v2.58.0...v2.59.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> beta files/skills namespaces use GA shapes;
drop dated beta header pins (<a
href="e4e0e25fec">e4e0e25</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>aws,bedrock:</strong> don't consume the request body while
SigV4 signing (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/257">#257</a>)
(<a
href="95238b1cdc">95238b1</a>)</li>
<li><strong>client:</strong> page backward via before_id and stop on
has_more=false (<a
href="81f16e718b">81f16e7</a>)</li>
<li><strong>webhooks:</strong> require headers to be passed to
<code>unwrap()</code> (<a
href="4b43e22ce0">4b43e22</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><strong>api:</strong> clarify pagination on the organization
rate-limit list endpoints (<a
href="1d0e9877c2">1d0e987</a>)</li>
</ul>
<h2>v2.58.0</h2>
<h2>2.58.0 (2026-08-26)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.57.0...v2.58.0">v2.57.0...v2.58.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add <code>updates</code> thinking display mode
(beta) (<a
href="792b318a9b">792b318</a>)</li>
<li><strong>api:</strong> add missing anthropic-beta values (<a
href="60cc62afc6">60cc62a</a>)</li>
<li><strong>api:</strong> add support for Organization API endpoints (<a
href="3adde69133">3adde69</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>bedrock:</strong> stop clobbering body anthropic_beta with
header betas (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/58">#58</a>)
(<a
href="e2609a9346">e2609a9</a>)</li>
<li><strong>client:</strong> let explicit and ANTHROPIC_BASE_URL base
URLs override profile base_url (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/241">#241</a>)
(<a
href="7486e65be4">7486e65</a>)</li>
<li><strong>client:</strong> resolve base URL in ClientOptions instead
of the transport (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/242">#242</a>)
(<a
href="a3e988ac85">a3e988a</a>)</li>
<li><strong>tools:</strong> keep the tool runner going on pause_turn (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/196">#196</a>)
(<a
href="557c72df30">557c72d</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>docs:</strong> clarify skill version <code>latest</code>
support and memory version retention (<a
href="cc7fc00777">cc7fc00</a>)</li>
<li><strong>internal:</strong> cancel superseded CI runs (<a
href="ae7cc8f98e">ae7cc8f</a>)</li>
<li><strong>internal:</strong> minor workflow reformat (<a
href="36b5b98a15">36b5b98</a>)</li>
</ul>
<h3>Documentation</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/blob/main/CHANGELOG.md">com.anthropic:anthropic-java's
changelog</a>.</em></p>
<blockquote>
<h2>2.59.0 (2026-08-27)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.58.0...v2.59.0">v2.58.0...v2.59.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> beta files/skills namespaces use GA shapes;
drop dated beta header pins (<a
href="e4e0e25fec">e4e0e25</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>aws,bedrock:</strong> don't consume the request body while
SigV4 signing (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/257">#257</a>)
(<a
href="95238b1cdc">95238b1</a>)</li>
<li><strong>client:</strong> page backward via before_id and stop on
has_more=false (<a
href="81f16e718b">81f16e7</a>)</li>
<li><strong>webhooks:</strong> require headers to be passed to
<code>unwrap()</code> (<a
href="4b43e22ce0">4b43e22</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><strong>api:</strong> clarify pagination on the organization
rate-limit list endpoints (<a
href="1d0e9877c2">1d0e987</a>)</li>
</ul>
<h2>2.58.0 (2026-08-26)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.57.0...v2.58.0">v2.57.0...v2.58.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add <code>updates</code> thinking display mode
(beta) (<a
href="792b318a9b">792b318</a>)</li>
<li><strong>api:</strong> add missing anthropic-beta values (<a
href="60cc62afc6">60cc62a</a>)</li>
<li><strong>api:</strong> add support for Organization API endpoints (<a
href="3adde69133">3adde69</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>bedrock:</strong> stop clobbering body anthropic_beta with
header betas (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/58">#58</a>)
(<a
href="e2609a9346">e2609a9</a>)</li>
<li><strong>client:</strong> let explicit and ANTHROPIC_BASE_URL base
URLs override profile base_url (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/241">#241</a>)
(<a
href="7486e65be4">7486e65</a>)</li>
<li><strong>client:</strong> resolve base URL in ClientOptions instead
of the transport (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/242">#242</a>)
(<a
href="a3e988ac85">a3e988a</a>)</li>
<li><strong>tools:</strong> keep the tool runner going on pause_turn (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/196">#196</a>)
(<a
href="557c72df30">557c72d</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>docs:</strong> clarify skill version <code>latest</code>
support and memory version retention (<a
href="cc7fc00777">cc7fc00</a>)</li>
<li><strong>internal:</strong> cancel superseded CI runs (<a
href="ae7cc8f98e">ae7cc8f</a>)</li>
<li><strong>internal:</strong> minor workflow reformat (<a
href="36b5b98a15">36b5b98</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><strong>api:</strong> clarify session thread agent and
usage.iterations compaction descriptions (beta) (<a
href="2283253bf6">2283253</a>)</li>
<li><strong>examples:</strong> use adaptive thinking in thinking
examples (<a
href="da9aabae51">da9aaba</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8722270844"><code>8722270</code></a>
release: 2.59.0</li>
<li><a
href="bc1e1995f1"><code>bc1e199</code></a>
docs(api): clarify pagination on the organization rate-limit list
endpoints</li>
<li><a
href="4da20e1818"><code>4da20e1</code></a>
fix(client): page backward via before_id and stop on has_more=false</li>
<li><a
href="b7046bca8d"><code>b7046bc</code></a>
feat(api): beta files/skills namespaces use GA shapes; drop dated beta
header...</li>
<li><a
href="6531a27dc1"><code>6531a27</code></a>
fix(webhooks): require headers to be passed to
<code>unwrap()</code></li>
<li><a
href="8786a4500d"><code>8786a45</code></a>
fix(aws,bedrock): don't consume the request body while SigV4 signing (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/257">#257</a>)</li>
<li><a
href="accd19e373"><code>accd19e</code></a>
codegen metadata</li>
<li><a
href="51bd4922ec"><code>51bd492</code></a>
release: 2.58.0</li>
<li><a
href="82b254480b"><code>82b2544</code></a>
codegen metadata</li>
<li><a
href="7bec4e1e67"><code>7bec4e1</code></a>
feat(api): add support for Organization API endpoints</li>
<li>Additional commits viewable in <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.57.0...v2.59.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `gradle-wrapper` from 9.7.0 to 9.7.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gradle/gradle/releases">gradle-wrapper's
releases</a>.</em></p>
<blockquote>
<h2>9.7.1</h2>
<p>The Gradle team is excited to announce Gradle 9.7.1.</p>
<p>This is a patch release for 9.7.0. We recommend using 9.7.1 instead
of 9.7.0.</p>
<p>Here are the highlights of 9.7.0 release:</p>
<ul>
<li>Isolated Projects graduates to incubating</li>
<li>Broader Configuration Cache compatibility</li>
<li>Resilient Sync helps you fix broken builds</li>
<li>More source locations in problem reports</li>
</ul>
<p><a href="https://docs.gradle.org/9.7.1/release-notes.html">Read the
Release Notes</a></p>
<p>We would like to thank the following community members for their
contributions to this release of Gradle:
<a href="https://github.com/aSemy">Adam</a>,
<a href="https://github.com/Gautam-aman">Aman Gautam</a>,
<a href="https://github.com/YukiCodepth">Aman Kumar</a>,
<a href="https://github.com/adubrouski">Anton Dubrouski</a>,
<a href="https://github.com/liutikas">Aurimas</a>,
<a href="https://github.com/gbhavya07">gbhavya07</a>,
<a href="https://github.com/joshfriend">Josh Friend</a>,
<a href="https://github.com/nicklauslittle-gov">nicklauslittle-gov</a>,
<a href="https://github.com/psoni674">Pragati</a>,
<a href="https://github.com/Project516">project516</a>,
<a href="https://github.com/Uomocapra">Qin Mi</a>,
<a href="https://github.com/rkdfx">Ravi</a>,
<a href="https://github.com/sk-reddy17">sk-reddy17</a>,
<a href="https://github.com/Suvrat1629">Suvrat Acharya</a>,
<a href="https://github.com/ShreckYe">Yongshun Ye</a>.</p>
<h2>Upgrade instructions</h2>
<p>Switch your build to use Gradle 9.7.1 by updating your wrapper:</p>
<pre><code>./gradlew :wrapper --gradle-version=9.7.1 &&
./gradlew :wrapper
</code></pre>
<p>See the Gradle <a
href="https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html">9.x
upgrade guide</a> to learn about deprecations, breaking changes and
other considerations when upgrading.</p>
<p>For Java, Groovy, Kotlin and Android compatibility, see the <a
href="https://docs.gradle.org/9.7.1/userguide/compatibility.html">full
compatibility notes</a>.</p>
<h2>Reporting problems</h2>
<p>If you find a problem with this release, please file a bug on <a
href="https://github.com/gradle/gradle/issues">GitHub Issues</a>
adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the <a
href="https://discuss.gradle.org/c/help-discuss">forum</a>.</p>
<p>We hope you will build happiness with Gradle, and we look forward to
your feedback via <a href="https://twitter.com/gradle">Twitter</a> or on
<a href="https://github.com/gradle">GitHub</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="92f0512e7f"><code>92f0512</code></a>
update fixed issues for 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38892">#38892</a>)</li>
<li><a
href="820ee75a99"><code>820ee75</code></a>
update fixed issues for 9.7.1</li>
<li><a
href="82c23f9bd2"><code>82c23f9</code></a>
Fix annotation parameter ordering problem in KTS (<a
href="https://redirect.github.com/gradle/gradle/issues/38878">#38878</a>)</li>
<li><a
href="ef11a7268f"><code>ef11a72</code></a>
Fix annotation parameter ordering issue</li>
<li><a
href="bb0d8a974a"><code>bb0d8a9</code></a>
Make relevant tests polyglot (run for multiple DSLs)</li>
<li><a
href="336e129d7f"><code>336e129</code></a>
Update signing configuration (<a
href="https://redirect.github.com/gradle/gradle/issues/38874">#38874</a>)</li>
<li><a
href="4bdf0da2da"><code>4bdf0da</code></a>
Update signing configuration</li>
<li><a
href="cd9b92c1b8"><code>cd9b92c</code></a>
List issues resolved in 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38839">#38839</a>)</li>
<li><a
href="5f4e381964"><code>5f4e381</code></a>
List issues resolved in 9.7.1</li>
<li><a
href="1e08ab5513"><code>1e08ab5</code></a>
Keep type-use annotations in extracted ABI classes (<a
href="https://redirect.github.com/gradle/gradle/issues/38810">#38810</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/gradle/gradle/compare/v9.7.0...v9.7.1">compare
view</a></li>
</ul>
</details>
<br />
Updates `gradle-wrapper` from 9.7.0 to 9.7.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gradle/gradle/releases">gradle-wrapper's
releases</a>.</em></p>
<blockquote>
<h2>9.7.1</h2>
<p>The Gradle team is excited to announce Gradle 9.7.1.</p>
<p>This is a patch release for 9.7.0. We recommend using 9.7.1 instead
of 9.7.0.</p>
<p>Here are the highlights of 9.7.0 release:</p>
<ul>
<li>Isolated Projects graduates to incubating</li>
<li>Broader Configuration Cache compatibility</li>
<li>Resilient Sync helps you fix broken builds</li>
<li>More source locations in problem reports</li>
</ul>
<p><a href="https://docs.gradle.org/9.7.1/release-notes.html">Read the
Release Notes</a></p>
<p>We would like to thank the following community members for their
contributions to this release of Gradle:
<a href="https://github.com/aSemy">Adam</a>,
<a href="https://github.com/Gautam-aman">Aman Gautam</a>,
<a href="https://github.com/YukiCodepth">Aman Kumar</a>,
<a href="https://github.com/adubrouski">Anton Dubrouski</a>,
<a href="https://github.com/liutikas">Aurimas</a>,
<a href="https://github.com/gbhavya07">gbhavya07</a>,
<a href="https://github.com/joshfriend">Josh Friend</a>,
<a href="https://github.com/nicklauslittle-gov">nicklauslittle-gov</a>,
<a href="https://github.com/psoni674">Pragati</a>,
<a href="https://github.com/Project516">project516</a>,
<a href="https://github.com/Uomocapra">Qin Mi</a>,
<a href="https://github.com/rkdfx">Ravi</a>,
<a href="https://github.com/sk-reddy17">sk-reddy17</a>,
<a href="https://github.com/Suvrat1629">Suvrat Acharya</a>,
<a href="https://github.com/ShreckYe">Yongshun Ye</a>.</p>
<h2>Upgrade instructions</h2>
<p>Switch your build to use Gradle 9.7.1 by updating your wrapper:</p>
<pre><code>./gradlew :wrapper --gradle-version=9.7.1 &&
./gradlew :wrapper
</code></pre>
<p>See the Gradle <a
href="https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html">9.x
upgrade guide</a> to learn about deprecations, breaking changes and
other considerations when upgrading.</p>
<p>For Java, Groovy, Kotlin and Android compatibility, see the <a
href="https://docs.gradle.org/9.7.1/userguide/compatibility.html">full
compatibility notes</a>.</p>
<h2>Reporting problems</h2>
<p>If you find a problem with this release, please file a bug on <a
href="https://github.com/gradle/gradle/issues">GitHub Issues</a>
adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the <a
href="https://discuss.gradle.org/c/help-discuss">forum</a>.</p>
<p>We hope you will build happiness with Gradle, and we look forward to
your feedback via <a href="https://twitter.com/gradle">Twitter</a> or on
<a href="https://github.com/gradle">GitHub</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="92f0512e7f"><code>92f0512</code></a>
update fixed issues for 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38892">#38892</a>)</li>
<li><a
href="820ee75a99"><code>820ee75</code></a>
update fixed issues for 9.7.1</li>
<li><a
href="82c23f9bd2"><code>82c23f9</code></a>
Fix annotation parameter ordering problem in KTS (<a
href="https://redirect.github.com/gradle/gradle/issues/38878">#38878</a>)</li>
<li><a
href="ef11a7268f"><code>ef11a72</code></a>
Fix annotation parameter ordering issue</li>
<li><a
href="bb0d8a974a"><code>bb0d8a9</code></a>
Make relevant tests polyglot (run for multiple DSLs)</li>
<li><a
href="336e129d7f"><code>336e129</code></a>
Update signing configuration (<a
href="https://redirect.github.com/gradle/gradle/issues/38874">#38874</a>)</li>
<li><a
href="4bdf0da2da"><code>4bdf0da</code></a>
Update signing configuration</li>
<li><a
href="cd9b92c1b8"><code>cd9b92c</code></a>
List issues resolved in 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38839">#38839</a>)</li>
<li><a
href="5f4e381964"><code>5f4e381</code></a>
List issues resolved in 9.7.1</li>
<li><a
href="1e08ab5513"><code>1e08ab5</code></a>
Keep type-use annotations in extracted ABI classes (<a
href="https://redirect.github.com/gradle/gradle/issues/38810">#38810</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/gradle/gradle/compare/v9.7.0...v9.7.1">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from
1.6.1 to 1.6.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/qos-ch/logback/releases">ch.qos.logback:logback-classic's
releases</a>.</em></p>
<blockquote>
<h2>Logback 1.6.3</h2>
<h1>2026-08-14 Release of logback version 1.6.3</h1>
<ul>
<li>
<p>In response <a
href="https://www.cve.org/cverecord?id=CVE-2026-19880">CVE-2026-19880</a>,
<code>MDCBasedDiscriminator</code> (used by
<code>SiftingAppender</code>) now strips forward and backward slashes
(<code>/</code>, <code>\</code>) from MDC values before they are used as
discriminating keys. This prevents path segments from escaping into
destinations controlled by an attacker. When sanitisation actually
changes a value, a warning is emitted; the warning is rate-limited (a
small batch, then a lull of about ten minutes).</p>
</li>
<li>
<p>Colour console support is split out into a dedicated <a
href="https://logback.qos.ch/manual/appenders.html#JansiConsoleAppender"><code>JansiConsoleAppender</code></a>.
It wraps stdout or stderr with Jansi so ANSI escape sequences (for
example coloured patterns) render correctly on terminals that need it,
notably Windows. Prefer this class over the older path described next.
See the <a
href="https://logback.qos.ch/manual/appenders.html#JansiConsoleAppender">appenders
documentation</a>.</p>
</li>
<li>
<p>The <code>withJansi</code> property on <code>ConsoleAppender</code>
is <strong>deprecated</strong>. Existing configurations that still set
<code><withJansi>true</withJansi></code> continue to work
for compatibility, but new setups should use
<code>JansiConsoleAppender</code> instead.</p>
</li>
<li>
<p><code>ConsoleAppender</code> no longer treats the process console as
an exclusive resource: stopping it does not close
<code>System.out</code> / <code>System.err</code>.
<code>JansiConsoleAppender</code> pairs each
<code>AnsiConsole.systemInstall()</code> with
<code>systemUninstall()</code> on stop, so repeated start/stop cycles do
not leave Jansi installed or tear down streams shared with the rest of
the JVM. Related behavior is covered by tests for <a
href="https://redirect.github.com/qos-ch/logback/issues/1063">issues/1063</a>.</p>
</li>
<li>
<p>Invocation throttling helpers were reworked:
<code>SimpleInvocationGate</code> is renamed
<code>FixedIntervalInvocationGate</code>, and
<code>BatchedFixedIntervalInvocationGate</code> allows a short burst of
invocations before applying a fixed lull. The sanitisation
warning above uses the batched gate.</p>
</li>
<li>
<p>The JPMS <code>module-info</code> for logback-core now exports the
<code>ch.qos.logback.core.property</code> package, which had been
missing from the module descriptor.</p>
</li>
<li>
<p>A bit-wise identical binary of this version can be reproduced by
building from <a href="https://github.com/qos-ch/logback">source
code</a> at commit <code>e8e824dede022a6d7208b36cfa875b0d1b7772f3</code>
associated with the tag <code>v_1.6.3</code>. The release was built
using Java "21" 2023-10-17 LTS build 21.0.1.+12-LTS-29 under
Linux Debian 11.6.</p>
</li>
</ul>
<p>--
Sponsoring SLF4J/logback/reload4j at <a
href="https://github.com/sponsors/qos-ch">https://github.com/sponsors/qos-ch</a></p>
<h2>Logback 1.6.2</h2>
<p><a
href="https://github.com/user-attachments/assets/9ceaf157-b758-4188-815d-edfe4e1b4edd">https://github.com/user-attachments/assets/9ceaf157-b758-4188-815d-edfe4e1b4edd</a></p>
<h1>2026-08-10 Release of logback version 1.6.2</h1>
<ul>
<li>
<p>Configuration analysis now detects <em>contradictory caller-data
inclusion instructions</em>. For example, an <code>AsyncAppender</code>,
<code>SocketAppender</code> or <code>SMTPAppender</code> with
<code>includeCallerData</code> left at the default <code>false</code> is
incompatible with a layout or encoder pattern that uses a caller-data
converter such as <code>%C</code>, <code>%M</code>, <code>%L</code>,
<code>%F</code>, <code>%l</code> or <code>%caller</code>. At runtime
those converters would print question marks and still incur extraction
cost on a worker thread. Logback now emits a configuration-time warning
when such instructions disagree. See <a
href="https://logback.qos.ch/codes.html#callerContradiction">codes.html#callerContradiction</a>
for details. This issue was reported in <a
href="https://redirect.github.com/qos-ch/logback/issues/1059">issues/1059</a>
by <a href="https://github.com/leeychee">leeychee</a>. The initial
analysis was contributed by <a
href="https://github.com/seonwooj0810">seonwoo_jung</a>.</p>
</li>
<li>
<p>Caller-contradiction analysis can be turned off by setting the
<code>logback.skipCallerContradictionAnalysis</code> variable to
<code>true</code>, either as a system property
(<code>-Dlogback.skipCallerContradictionAnalysis=true</code>) or as a
property in the configuration file:</p>
<pre lang="xml"><code><property
name="logback.skipCallerContradictionAnalysis"
value="true"/>
</code></pre>
</li>
<li>
<p><code>SimpleSocketServer</code> and
<code>SimpleSSLSocketServer</code> now require an explicit client IP
whitelist. On the command line, pass one or more allowed addresses
(single IPs or CIDR ranges) after the configuration file. An empty
whitelist means no clients are accepted. When embedding the server
programmatically, register allowed addresses with
<code>addAllowedClientAddress(String)</code> or
<code>setAllowedClientAddresses(Collection)</code> before clients
connect. See the documentation on <a
href="https://logback.qos.ch/manual/appenders.html#simpleSocketServerClientAccess">restricting
client access</a>.</p>
</li>
<li>
<p>Added <code>ThrowableProxyVOBuilder</code> for assembling a
<code>ThrowableProxyVO</code> field by field, with a corresponding
<code>ThrowableProxyVO.builder()</code> entry point.</p>
</li>
<li>
<p>Dependency analysis handlers now run their <code>postHandle</code>
method after child models have been processed, so checks that depend on
nested appenders (such as caller-contradiction analysis) see a complete
picture.</p>
</li>
<li>
<p>Updated several dependencies, including Angus Mail to 2.0.4 and Jetty
(test) to 12.1.12.</p>
</li>
<li>
<p>A bit-wise identical binary of this version can be reproduced by
building from <a href="https://github.com/qos-ch/logback">source
code</a> at commit e3d78330ad1ba024fd987fd00c3ffb9cfcdb07dc associated
with the tag <code>v_1.6.2</code>. The release was built using Java
"21" 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian
11.6.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e8e824dede"><code>e8e824d</code></a>
prepare release 1.6.3</li>
<li><a
href="761821bfaa"><code>761821b</code></a>
MDCBasedDiscriminator has a gated warning mechanism</li>
<li><a
href="53ed122900"><code>53ed122</code></a>
update copyright year</li>
<li><a
href="c7e2db2446"><code>c7e2db2</code></a>
rename SimpleInvocationGate as FixedIntervalInvocationGate</li>
<li><a
href="b5aa931b09"><code>b5aa931</code></a>
added BatchedSimpleInvocationGate</li>
<li><a
href="1f22af7686"><code>1f22af7</code></a>
add javadocs to SimpleInvocationGate</li>
<li><a
href="638ffa7e78"><code>638ffa7</code></a>
prevent forward and backward slashes to escape to other directories</li>
<li><a
href="7d6b9a4f8c"><code>7d6b9a4</code></a>
add missing ch.qos.logback.core.property package</li>
<li><a
href="fa25930346"><code>fa25930</code></a>
add an extension path in ConsoleAppender for JansiConsoleAppender</li>
<li><a
href="c73b43f201"><code>c73b43f</code></a>
deprecate the withJansi path</li>
<li>Additional commits viewable in <a
href="https://github.com/qos-ch/logback/compare/v_1.6.1...v_1.6.3">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the other-dependencies group with 2 updates in the
/samples/kotlin-mcp-client directory:
[gradle-wrapper](https://github.com/gradle/gradle) and
[com.anthropic:anthropic-java](https://github.com/anthropics/anthropic-sdk-java).
Bumps the other-dependencies group with 2 updates in the
/samples/kotlinlang-mcp-server directory:
[gradle-wrapper](https://github.com/gradle/gradle) and
[ch.qos.logback:logback-classic](https://github.com/qos-ch/logback).
Bumps the other-dependencies group with 2 updates in the
/samples/simple-streamable-server directory:
[gradle-wrapper](https://github.com/gradle/gradle) and
[org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework).
Updates `gradle-wrapper` from 9.7.0 to 9.7.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gradle/gradle/releases">gradle-wrapper's
releases</a>.</em></p>
<blockquote>
<h2>9.7.1</h2>
<p>The Gradle team is excited to announce Gradle 9.7.1.</p>
<p>This is a patch release for 9.7.0. We recommend using 9.7.1 instead
of 9.7.0.</p>
<p>Here are the highlights of 9.7.0 release:</p>
<ul>
<li>Isolated Projects graduates to incubating</li>
<li>Broader Configuration Cache compatibility</li>
<li>Resilient Sync helps you fix broken builds</li>
<li>More source locations in problem reports</li>
</ul>
<p><a href="https://docs.gradle.org/9.7.1/release-notes.html">Read the
Release Notes</a></p>
<p>We would like to thank the following community members for their
contributions to this release of Gradle:
<a href="https://github.com/aSemy">Adam</a>,
<a href="https://github.com/Gautam-aman">Aman Gautam</a>,
<a href="https://github.com/YukiCodepth">Aman Kumar</a>,
<a href="https://github.com/adubrouski">Anton Dubrouski</a>,
<a href="https://github.com/liutikas">Aurimas</a>,
<a href="https://github.com/gbhavya07">gbhavya07</a>,
<a href="https://github.com/joshfriend">Josh Friend</a>,
<a href="https://github.com/nicklauslittle-gov">nicklauslittle-gov</a>,
<a href="https://github.com/psoni674">Pragati</a>,
<a href="https://github.com/Project516">project516</a>,
<a href="https://github.com/Uomocapra">Qin Mi</a>,
<a href="https://github.com/rkdfx">Ravi</a>,
<a href="https://github.com/sk-reddy17">sk-reddy17</a>,
<a href="https://github.com/Suvrat1629">Suvrat Acharya</a>,
<a href="https://github.com/ShreckYe">Yongshun Ye</a>.</p>
<h2>Upgrade instructions</h2>
<p>Switch your build to use Gradle 9.7.1 by updating your wrapper:</p>
<pre><code>./gradlew :wrapper --gradle-version=9.7.1 &&
./gradlew :wrapper
</code></pre>
<p>See the Gradle <a
href="https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html">9.x
upgrade guide</a> to learn about deprecations, breaking changes and
other considerations when upgrading.</p>
<p>For Java, Groovy, Kotlin and Android compatibility, see the <a
href="https://docs.gradle.org/9.7.1/userguide/compatibility.html">full
compatibility notes</a>.</p>
<h2>Reporting problems</h2>
<p>If you find a problem with this release, please file a bug on <a
href="https://github.com/gradle/gradle/issues">GitHub Issues</a>
adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the <a
href="https://discuss.gradle.org/c/help-discuss">forum</a>.</p>
<p>We hope you will build happiness with Gradle, and we look forward to
your feedback via <a href="https://twitter.com/gradle">Twitter</a> or on
<a href="https://github.com/gradle">GitHub</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="92f0512e7f"><code>92f0512</code></a>
update fixed issues for 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38892">#38892</a>)</li>
<li><a
href="820ee75a99"><code>820ee75</code></a>
update fixed issues for 9.7.1</li>
<li><a
href="82c23f9bd2"><code>82c23f9</code></a>
Fix annotation parameter ordering problem in KTS (<a
href="https://redirect.github.com/gradle/gradle/issues/38878">#38878</a>)</li>
<li><a
href="ef11a7268f"><code>ef11a72</code></a>
Fix annotation parameter ordering issue</li>
<li><a
href="bb0d8a974a"><code>bb0d8a9</code></a>
Make relevant tests polyglot (run for multiple DSLs)</li>
<li><a
href="336e129d7f"><code>336e129</code></a>
Update signing configuration (<a
href="https://redirect.github.com/gradle/gradle/issues/38874">#38874</a>)</li>
<li><a
href="4bdf0da2da"><code>4bdf0da</code></a>
Update signing configuration</li>
<li><a
href="cd9b92c1b8"><code>cd9b92c</code></a>
List issues resolved in 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38839">#38839</a>)</li>
<li><a
href="5f4e381964"><code>5f4e381</code></a>
List issues resolved in 9.7.1</li>
<li><a
href="1e08ab5513"><code>1e08ab5</code></a>
Keep type-use annotations in extracted ABI classes (<a
href="https://redirect.github.com/gradle/gradle/issues/38810">#38810</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/gradle/gradle/compare/v9.7.0...v9.7.1">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.anthropic:anthropic-java` from 2.52.0 to 2.57.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/releases">com.anthropic:anthropic-java's
releases</a>.</em></p>
<blockquote>
<h2>v2.57.0</h2>
<h2>2.57.0 (2026-08-19)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.56.0...v2.57.0">v2.56.0...v2.57.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> managed agents web search config and self
hosted sandbox memory (<a
href="83b03c0423">83b03c0</a>)</li>
</ul>
<h2>v2.56.0</h2>
<h2>2.56.0 (2026-08-19)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.55.0...v2.56.0">v2.55.0...v2.56.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> Files and Skills APIs are now GA; add computer
use and browser use toolsets (<a
href="762f3423d1">762f342</a>)</li>
</ul>
<h2>v2.55.0</h2>
<h2>2.55.0 (2026-08-18)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.54.0...v2.55.0">v2.54.0...v2.55.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> additions to files and memory stores (<a
href="1f89b9b41e">1f89b9b</a>)</li>
<li><strong>api:</strong> updates to skill, files, and user profiles (<a
href="a5febdadd6">a5febda</a>)</li>
<li><strong>client:</strong> add helpers for accessing the workspace ID
in response headers (<a
href="718d5c180e">718d5c1</a>)</li>
<li><strong>internal:</strong> upgrade to Gradle 9 and Kotlin 2.3 with a
shared version catalog (<a
href="596395e1bd">596395e</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>api:</strong> remove unsupported mid_conv_system content
block (<a
href="89bf90137d">89bf901</a>)</li>
<li><strong>client:</strong> don't let null usage fields in
message_delta overwrite accumulated usage (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/226">#226</a>)
(<a
href="603d2f5474">603d2f5</a>)</li>
<li><strong>client:</strong> keep unknown content block and delta types
when accumulating a message stream (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/225">#225</a>)
(<a
href="9bf944db26">9bf944d</a>)</li>
<li><strong>tool-runner:</strong> forward the server-assigned container
on follow-up requests (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/216">#216</a>)
(<a
href="b754c459b5">b754c45</a>)</li>
<li><strong>tool-runner:</strong> send the BetaToolRunner helper header
(<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/220">#220</a>)
(<a
href="95b359c5f9">95b359c</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>internal:</strong> lint and format build logic sources with
ktfmt (<a
href="9b52a2afc0">9b52a2a</a>)</li>
<li><strong>internal:</strong> remove leftover prism references (<a
href="76245235cb">7624523</a>)</li>
</ul>
<h2>v2.54.0</h2>
<h2>2.54.0 (2026-08-13)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.53.0...v2.54.0">v2.53.0...v2.54.0</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/blob/main/CHANGELOG.md">com.anthropic:anthropic-java's
changelog</a>.</em></p>
<blockquote>
<h2>2.57.0 (2026-08-19)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.56.0...v2.57.0">v2.56.0...v2.57.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> managed agents web search config and self
hosted sandbox memory (<a
href="83b03c0423">83b03c0</a>)</li>
</ul>
<h2>2.56.0 (2026-08-19)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.55.0...v2.56.0">v2.55.0...v2.56.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> Files and Skills APIs are now GA; add computer
use and browser use toolsets (<a
href="762f3423d1">762f342</a>)</li>
</ul>
<h2>2.55.0 (2026-08-18)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.54.0...v2.55.0">v2.54.0...v2.55.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> additions to files and memory stores (<a
href="1f89b9b41e">1f89b9b</a>)</li>
<li><strong>api:</strong> updates to skill, files, and user profiles (<a
href="a5febdadd6">a5febda</a>)</li>
<li><strong>client:</strong> add helpers for accessing the workspace ID
in response headers (<a
href="718d5c180e">718d5c1</a>)</li>
<li><strong>internal:</strong> upgrade to Gradle 9 and Kotlin 2.3 with a
shared version catalog (<a
href="596395e1bd">596395e</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>api:</strong> remove unsupported mid_conv_system content
block (<a
href="89bf90137d">89bf901</a>)</li>
<li><strong>client:</strong> don't let null usage fields in
message_delta overwrite accumulated usage (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/226">#226</a>)
(<a
href="603d2f5474">603d2f5</a>)</li>
<li><strong>client:</strong> keep unknown content block and delta types
when accumulating a message stream (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/225">#225</a>)
(<a
href="9bf944db26">9bf944d</a>)</li>
<li><strong>tool-runner:</strong> forward the server-assigned container
on follow-up requests (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/216">#216</a>)
(<a
href="b754c459b5">b754c45</a>)</li>
<li><strong>tool-runner:</strong> send the BetaToolRunner helper header
(<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/220">#220</a>)
(<a
href="95b359c5f9">95b359c</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>internal:</strong> lint and format build logic sources with
ktfmt (<a
href="9b52a2afc0">9b52a2a</a>)</li>
<li><strong>internal:</strong> remove leftover prism references (<a
href="76245235cb">7624523</a>)</li>
</ul>
<h2>2.54.0 (2026-08-13)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.53.0...v2.54.0">v2.53.0...v2.54.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add output_behavior to dream creation (create
a new memory store or update the input store in place) (<a
href="a49ea9a1e9">a49ea9a</a>)</li>
<li><strong>client:</strong> add StructuredOutputConfig for combining
Class<T> structured outputs with other output options (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/192">#192</a>)
(<a
href="8caead30a1">8caead3</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8f5861c883"><code>8f5861c</code></a>
release: 2.57.0</li>
<li><a
href="71074ed7e3"><code>71074ed</code></a>
feat(api): managed agents web search config and self hosted sandbox
memory</li>
<li><a
href="76e0cfae22"><code>76e0cfa</code></a>
release: 2.56.0</li>
<li><a
href="ce2a502726"><code>ce2a502</code></a>
feat(api): Files and Skills APIs are now GA; add computer use and
browser use...</li>
<li><a
href="8752d28a57"><code>8752d28</code></a>
release: 2.55.0</li>
<li><a
href="fb3146713c"><code>fb31467</code></a>
feat(api): updates to skill, files, and user profiles</li>
<li><a
href="ddaf1ec146"><code>ddaf1ec</code></a>
fix(client): don't let null usage fields in message_delta overwrite
accumulat...</li>
<li><a
href="a544b28fb5"><code>a544b28</code></a>
fix(client): keep unknown content block and delta types when
accumulating a m...</li>
<li><a
href="27a08d0761"><code>27a08d0</code></a>
fix(tool-runner): send the BetaToolRunner helper header (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/220">#220</a>)</li>
<li><a
href="df22a5933b"><code>df22a59</code></a>
chore(internal): lint and format build logic sources with ktfmt</li>
<li>Additional commits viewable in <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.52.0...v2.57.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `gradle-wrapper` from 9.7.0 to 9.7.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gradle/gradle/releases">gradle-wrapper's
releases</a>.</em></p>
<blockquote>
<h2>9.7.1</h2>
<p>The Gradle team is excited to announce Gradle 9.7.1.</p>
<p>This is a patch release for 9.7.0. We recommend using 9.7.1 instead
of 9.7.0.</p>
<p>Here are the highlights of 9.7.0 release:</p>
<ul>
<li>Isolated Projects graduates to incubating</li>
<li>Broader Configuration Cache compatibility</li>
<li>Resilient Sync helps you fix broken builds</li>
<li>More source locations in problem reports</li>
</ul>
<p><a href="https://docs.gradle.org/9.7.1/release-notes.html">Read the
Release Notes</a></p>
<p>We would like to thank the following community members for their
contributions to this release of Gradle:
<a href="https://github.com/aSemy">Adam</a>,
<a href="https://github.com/Gautam-aman">Aman Gautam</a>,
<a href="https://github.com/YukiCodepth">Aman Kumar</a>,
<a href="https://github.com/adubrouski">Anton Dubrouski</a>,
<a href="https://github.com/liutikas">Aurimas</a>,
<a href="https://github.com/gbhavya07">gbhavya07</a>,
<a href="https://github.com/joshfriend">Josh Friend</a>,
<a href="https://github.com/nicklauslittle-gov">nicklauslittle-gov</a>,
<a href="https://github.com/psoni674">Pragati</a>,
<a href="https://github.com/Project516">project516</a>,
<a href="https://github.com/Uomocapra">Qin Mi</a>,
<a href="https://github.com/rkdfx">Ravi</a>,
<a href="https://github.com/sk-reddy17">sk-reddy17</a>,
<a href="https://github.com/Suvrat1629">Suvrat Acharya</a>,
<a href="https://github.com/ShreckYe">Yongshun Ye</a>.</p>
<h2>Upgrade instructions</h2>
<p>Switch your build to use Gradle 9.7.1 by updating your wrapper:</p>
<pre><code>./gradlew :wrapper --gradle-version=9.7.1 &&
./gradlew :wrapper
</code></pre>
<p>See the Gradle <a
href="https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html">9.x
upgrade guide</a> to learn about deprecations, breaking changes and
other considerations when upgrading.</p>
<p>For Java, Groovy, Kotlin and Android compatibility, see the <a
href="https://docs.gradle.org/9.7.1/userguide/compatibility.html">full
compatibility notes</a>.</p>
<h2>Reporting problems</h2>
<p>If you find a problem with this release, please file a bug on <a
href="https://github.com/gradle/gradle/issues">GitHub Issues</a>
adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the <a
href="https://discuss.gradle.org/c/help-discuss">forum</a>.</p>
<p>We hope you will build happiness with Gradle, and we look forward to
your feedback via <a href="https://twitter.com/gradle">Twitter</a> or on
<a href="https://github.com/gradle">GitHub</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="92f0512e7f"><code>92f0512</code></a>
update fixed issues for 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38892">#38892</a>)</li>
<li><a
href="820ee75a99"><code>820ee75</code></a>
update fixed issues for 9.7.1</li>
<li><a
href="82c23f9bd2"><code>82c23f9</code></a>
Fix annotation parameter ordering problem in KTS (<a
href="https://redirect.github.com/gradle/gradle/issues/38878">#38878</a>)</li>
<li><a
href="ef11a7268f"><code>ef11a72</code></a>
Fix annotation parameter ordering issue</li>
<li><a
href="bb0d8a974a"><code>bb0d8a9</code></a>
Make relevant tests polyglot (run for multiple DSLs)</li>
<li><a
href="336e129d7f"><code>336e129</code></a>
Update signing configuration (<a
href="https://redirect.github.com/gradle/gradle/issues/38874">#38874</a>)</li>
<li><a
href="4bdf0da2da"><code>4bdf0da</code></a>
Update signing configuration</li>
<li><a
href="cd9b92c1b8"><code>cd9b92c</code></a>
List issues resolved in 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38839">#38839</a>)</li>
<li><a
href="5f4e381964"><code>5f4e381</code></a>
List issues resolved in 9.7.1</li>
<li><a
href="1e08ab5513"><code>1e08ab5</code></a>
Keep type-use annotations in extracted ABI classes (<a
href="https://redirect.github.com/gradle/gradle/issues/38810">#38810</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/gradle/gradle/compare/v9.7.0...v9.7.1">compare
view</a></li>
</ul>
</details>
<br />
Updates `gradle-wrapper` from 9.7.0 to 9.7.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gradle/gradle/releases">gradle-wrapper's
releases</a>.</em></p>
<blockquote>
<h2>9.7.1</h2>
<p>The Gradle team is excited to announce Gradle 9.7.1.</p>
<p>This is a patch release for 9.7.0. We recommend using 9.7.1 instead
of 9.7.0.</p>
<p>Here are the highlights of 9.7.0 release:</p>
<ul>
<li>Isolated Projects graduates to incubating</li>
<li>Broader Configuration Cache compatibility</li>
<li>Resilient Sync helps you fix broken builds</li>
<li>More source locations in problem reports</li>
</ul>
<p><a href="https://docs.gradle.org/9.7.1/release-notes.html">Read the
Release Notes</a></p>
<p>We would like to thank the following community members for their
contributions to this release of Gradle:
<a href="https://github.com/aSemy">Adam</a>,
<a href="https://github.com/Gautam-aman">Aman Gautam</a>,
<a href="https://github.com/YukiCodepth">Aman Kumar</a>,
<a href="https://github.com/adubrouski">Anton Dubrouski</a>,
<a href="https://github.com/liutikas">Aurimas</a>,
<a href="https://github.com/gbhavya07">gbhavya07</a>,
<a href="https://github.com/joshfriend">Josh Friend</a>,
<a href="https://github.com/nicklauslittle-gov">nicklauslittle-gov</a>,
<a href="https://github.com/psoni674">Pragati</a>,
<a href="https://github.com/Project516">project516</a>,
<a href="https://github.com/Uomocapra">Qin Mi</a>,
<a href="https://github.com/rkdfx">Ravi</a>,
<a href="https://github.com/sk-reddy17">sk-reddy17</a>,
<a href="https://github.com/Suvrat1629">Suvrat Acharya</a>,
<a href="https://github.com/ShreckYe">Yongshun Ye</a>.</p>
<h2>Upgrade instructions</h2>
<p>Switch your build to use Gradle 9.7.1 by updating your wrapper:</p>
<pre><code>./gradlew :wrapper --gradle-version=9.7.1 &&
./gradlew :wrapper
</code></pre>
<p>See the Gradle <a
href="https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html">9.x
upgrade guide</a> to learn about deprecations, breaking changes and
other considerations when upgrading.</p>
<p>For Java, Groovy, Kotlin and Android compatibility, see the <a
href="https://docs.gradle.org/9.7.1/userguide/compatibility.html">full
compatibility notes</a>.</p>
<h2>Reporting problems</h2>
<p>If you find a problem with this release, please file a bug on <a
href="https://github.com/gradle/gradle/issues">GitHub Issues</a>
adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the <a
href="https://discuss.gradle.org/c/help-discuss">forum</a>.</p>
<p>We hope you will build happiness with Gradle, and we look forward to
your feedback via <a href="https://twitter.com/gradle">Twitter</a> or on
<a href="https://github.com/gradle">GitHub</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="92f0512e7f"><code>92f0512</code></a>
update fixed issues for 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38892">#38892</a>)</li>
<li><a
href="820ee75a99"><code>820ee75</code></a>
update fixed issues for 9.7.1</li>
<li><a
href="82c23f9bd2"><code>82c23f9</code></a>
Fix annotation parameter ordering problem in KTS (<a
href="https://redirect.github.com/gradle/gradle/issues/38878">#38878</a>)</li>
<li><a
href="ef11a7268f"><code>ef11a72</code></a>
Fix annotation parameter ordering issue</li>
<li><a
href="bb0d8a974a"><code>bb0d8a9</code></a>
Make relevant tests polyglot (run for multiple DSLs)</li>
<li><a
href="336e129d7f"><code>336e129</code></a>
Update signing configuration (<a
href="https://redirect.github.com/gradle/gradle/issues/38874">#38874</a>)</li>
<li><a
href="4bdf0da2da"><code>4bdf0da</code></a>
Update signing configuration</li>
<li><a
href="cd9b92c1b8"><code>cd9b92c</code></a>
List issues resolved in 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38839">#38839</a>)</li>
<li><a
href="5f4e381964"><code>5f4e381</code></a>
List issues resolved in 9.7.1</li>
<li><a
href="1e08ab5513"><code>1e08ab5</code></a>
Keep type-use annotations in extracted ABI classes (<a
href="https://redirect.github.com/gradle/gradle/issues/38810">#38810</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/gradle/gradle/compare/v9.7.0...v9.7.1">compare
view</a></li>
</ul>
</details>
<br />
Updates `gradle-wrapper` from 9.7.0 to 9.7.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gradle/gradle/releases">gradle-wrapper's
releases</a>.</em></p>
<blockquote>
<h2>9.7.1</h2>
<p>The Gradle team is excited to announce Gradle 9.7.1.</p>
<p>This is a patch release for 9.7.0. We recommend using 9.7.1 instead
of 9.7.0.</p>
<p>Here are the highlights of 9.7.0 release:</p>
<ul>
<li>Isolated Projects graduates to incubating</li>
<li>Broader Configuration Cache compatibility</li>
<li>Resilient Sync helps you fix broken builds</li>
<li>More source locations in problem reports</li>
</ul>
<p><a href="https://docs.gradle.org/9.7.1/release-notes.html">Read the
Release Notes</a></p>
<p>We would like to thank the following community members for their
contributions to this release of Gradle:
<a href="https://github.com/aSemy">Adam</a>,
<a href="https://github.com/Gautam-aman">Aman Gautam</a>,
<a href="https://github.com/YukiCodepth">Aman Kumar</a>,
<a href="https://github.com/adubrouski">Anton Dubrouski</a>,
<a href="https://github.com/liutikas">Aurimas</a>,
<a href="https://github.com/gbhavya07">gbhavya07</a>,
<a href="https://github.com/joshfriend">Josh Friend</a>,
<a href="https://github.com/nicklauslittle-gov">nicklauslittle-gov</a>,
<a href="https://github.com/psoni674">Pragati</a>,
<a href="https://github.com/Project516">project516</a>,
<a href="https://github.com/Uomocapra">Qin Mi</a>,
<a href="https://github.com/rkdfx">Ravi</a>,
<a href="https://github.com/sk-reddy17">sk-reddy17</a>,
<a href="https://github.com/Suvrat1629">Suvrat Acharya</a>,
<a href="https://github.com/ShreckYe">Yongshun Ye</a>.</p>
<h2>Upgrade instructions</h2>
<p>Switch your build to use Gradle 9.7.1 by updating your wrapper:</p>
<pre><code>./gradlew :wrapper --gradle-version=9.7.1 &&
./gradlew :wrapper
</code></pre>
<p>See the Gradle <a
href="https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html">9.x
upgrade guide</a> to learn about deprecations, breaking changes and
other considerations when upgrading.</p>
<p>For Java, Groovy, Kotlin and Android compatibility, see the <a
href="https://docs.gradle.org/9.7.1/userguide/compatibility.html">full
compatibility notes</a>.</p>
<h2>Reporting problems</h2>
<p>If you find a problem with this release, please file a bug on <a
href="https://github.com/gradle/gradle/issues">GitHub Issues</a>
adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the <a
href="https://discuss.gradle.org/c/help-discuss">forum</a>.</p>
<p>We hope you will build happiness with Gradle, and we look forward to
your feedback via <a href="https://twitter.com/gradle">Twitter</a> or on
<a href="https://github.com/gradle">GitHub</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="92f0512e7f"><code>92f0512</code></a>
update fixed issues for 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38892">#38892</a>)</li>
<li><a
href="820ee75a99"><code>820ee75</code></a>
update fixed issues for 9.7.1</li>
<li><a
href="82c23f9bd2"><code>82c23f9</code></a>
Fix annotation parameter ordering problem in KTS (<a
href="https://redirect.github.com/gradle/gradle/issues/38878">#38878</a>)</li>
<li><a
href="ef11a7268f"><code>ef11a72</code></a>
Fix annotation parameter ordering issue</li>
<li><a
href="bb0d8a974a"><code>bb0d8a9</code></a>
Make relevant tests polyglot (run for multiple DSLs)</li>
<li><a
href="336e129d7f"><code>336e129</code></a>
Update signing configuration (<a
href="https://redirect.github.com/gradle/gradle/issues/38874">#38874</a>)</li>
<li><a
href="4bdf0da2da"><code>4bdf0da</code></a>
Update signing configuration</li>
<li><a
href="cd9b92c1b8"><code>cd9b92c</code></a>
List issues resolved in 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38839">#38839</a>)</li>
<li><a
href="5f4e381964"><code>5f4e381</code></a>
List issues resolved in 9.7.1</li>
<li><a
href="1e08ab5513"><code>1e08ab5</code></a>
Keep type-use annotations in extracted ABI classes (<a
href="https://redirect.github.com/gradle/gradle/issues/38810">#38810</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/gradle/gradle/compare/v9.7.0...v9.7.1">compare
view</a></li>
</ul>
</details>
<br />
Updates `gradle-wrapper` from 9.7.0 to 9.7.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gradle/gradle/releases">gradle-wrapper's
releases</a>.</em></p>
<blockquote>
<h2>9.7.1</h2>
<p>The Gradle team is excited to announce Gradle 9.7.1.</p>
<p>This is a patch release for 9.7.0. We recommend using 9.7.1 instead
of 9.7.0.</p>
<p>Here are the highlights of 9.7.0 release:</p>
<ul>
<li>Isolated Projects graduates to incubating</li>
<li>Broader Configuration Cache compatibility</li>
<li>Resilient Sync helps you fix broken builds</li>
<li>More source locations in problem reports</li>
</ul>
<p><a href="https://docs.gradle.org/9.7.1/release-notes.html">Read the
Release Notes</a></p>
<p>We would like to thank the following community members for their
contributions to this release of Gradle:
<a href="https://github.com/aSemy">Adam</a>,
<a href="https://github.com/Gautam-aman">Aman Gautam</a>,
<a href="https://github.com/YukiCodepth">Aman Kumar</a>,
<a href="https://github.com/adubrouski">Anton Dubrouski</a>,
<a href="https://github.com/liutikas">Aurimas</a>,
<a href="https://github.com/gbhavya07">gbhavya07</a>,
<a href="https://github.com/joshfriend">Josh Friend</a>,
<a href="https://github.com/nicklauslittle-gov">nicklauslittle-gov</a>,
<a href="https://github.com/psoni674">Pragati</a>,
<a href="https://github.com/Project516">project516</a>,
<a href="https://github.com/Uomocapra">Qin Mi</a>,
<a href="https://github.com/rkdfx">Ravi</a>,
<a href="https://github.com/sk-reddy17">sk-reddy17</a>,
<a href="https://github.com/Suvrat1629">Suvrat Acharya</a>,
<a href="https://github.com/ShreckYe">Yongshun Ye</a>.</p>
<h2>Upgrade instructions</h2>
<p>Switch your build to use Gradle 9.7.1 by updating your wrapper:</p>
<pre><code>./gradlew :wrapper --gradle-version=9.7.1 &&
./gradlew :wrapper
</code></pre>
<p>See the Gradle <a
href="https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html">9.x
upgrade guide</a> to learn about deprecations, breaking changes and
other considerations when upgrading.</p>
<p>For Java, Groovy, Kotlin and Android compatibility, see the <a
href="https://docs.gradle.org/9.7.1/userguide/compatibility.html">full
compatibility notes</a>.</p>
<h2>Reporting problems</h2>
<p>If you find a problem with this release, please file a bug on <a
href="https://github.com/gradle/gradle/issues">GitHub Issues</a>
adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the <a
href="https://discuss.gradle.org/c/help-discuss">forum</a>.</p>
<p>We hope you will build happiness with Gradle, and we look forward to
your feedback via <a href="https://twitter.com/gradle">Twitter</a> or on
<a href="https://github.com/gradle">GitHub</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="92f0512e7f"><code>92f0512</code></a>
update fixed issues for 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38892">#38892</a>)</li>
<li><a
href="820ee75a99"><code>820ee75</code></a>
update fixed issues for 9.7.1</li>
<li><a
href="82c23f9bd2"><code>82c23f9</code></a>
Fix annotation parameter ordering problem in KTS (<a
href="https://redirect.github.com/gradle/gradle/issues/38878">#38878</a>)</li>
<li><a
href="ef11a7268f"><code>ef11a72</code></a>
Fix annotation parameter ordering issue</li>
<li><a
href="bb0d8a974a"><code>bb0d8a9</code></a>
Make relevant tests polyglot (run for multiple DSLs)</li>
<li><a
href="336e129d7f"><code>336e129</code></a>
Update signing configuration (<a
href="https://redirect.github.com/gradle/gradle/issues/38874">#38874</a>)</li>
<li><a
href="4bdf0da2da"><code>4bdf0da</code></a>
Update signing configuration</li>
<li><a
href="cd9b92c1b8"><code>cd9b92c</code></a>
List issues resolved in 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38839">#38839</a>)</li>
<li><a
href="5f4e381964"><code>5f4e381</code></a>
List issues resolved in 9.7.1</li>
<li><a
href="1e08ab5513"><code>1e08ab5</code></a>
Keep type-use annotations in extracted ABI classes (<a
href="https://redirect.github.com/gradle/gradle/issues/38810">#38810</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/gradle/gradle/compare/v9.7.0...v9.7.1">compare
view</a></li>
</ul>
</details>
<br />
Updates `ch.qos.logback:logback-classic` from 1.6.1 to 1.6.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/qos-ch/logback/releases">ch.qos.logback:logback-classic's
releases</a>.</em></p>
<blockquote>
<h2>Logback 1.6.3</h2>
<h1>2026-08-14 Release of logback version 1.6.3</h1>
<ul>
<li>
<p>In response <a
href="https://www.cve.org/cverecord?id=CVE-2026-19880">CVE-2026-19880</a>,
<code>MDCBasedDiscriminator</code> (used by
<code>SiftingAppender</code>) now strips forward and backward slashes
(<code>/</code>, <code>\</code>) from MDC values before they are used as
discriminating keys. This prevents path segments from escaping into
destinations controlled by an attacker. When sanitisation actually
changes a value, a warning is emitted; the warning is rate-limited (a
small batch, then a lull of about ten minutes).</p>
</li>
<li>
<p>Colour console support is split out into a dedicated <a
href="https://logback.qos.ch/manual/appenders.html#JansiConsoleAppender"><code>JansiConsoleAppender</code></a>.
It wraps stdout or stderr with Jansi so ANSI escape sequences (for
example coloured patterns) render correctly on terminals that need it,
notably Windows. Prefer this class over the older path described next.
See the <a
href="https://logback.qos.ch/manual/appenders.html#JansiConsoleAppender">appenders
documentation</a>.</p>
</li>
<li>
<p>The <code>withJansi</code> property on <code>ConsoleAppender</code>
is <strong>deprecated</strong>. Existing configurations that still set
<code><withJansi>true</withJansi></code> continue to work
for compatibility, but new setups should use
<code>JansiConsoleAppender</code> instead.</p>
</li>
<li>
<p><code>ConsoleAppender</code> no longer treats the process console as
an exclusive resource: stopping it does not close
<code>System.out</code> / <code>System.err</code>.
<code>JansiConsoleAppender</code> pairs each
<code>AnsiConsole.systemInstall()</code> with
<code>systemUninstall()</code> on stop, so repeated start/stop cycles do
not leave Jansi installed or tear down streams shared with the rest of
the JVM. Related behavior is covered by tests for <a
href="https://redirect.github.com/qos-ch/logback/issues/1063">issues/1063</a>.</p>
</li>
<li>
<p>Invocation throttling helpers were reworked:
<code>SimpleInvocationGate</code> is renamed
<code>FixedIntervalInvocationGate</code>, and
<code>BatchedFixedIntervalInvocationGate</code> allows a short burst of
invocations before applying a fixed lull. The sanitisation
warning above uses the batched gate.</p>
</li>
<li>
<p>The JPMS <code>module-info</code> for logback-core now exports the
<code>ch.qos.logback.core.property</code> package, which had been
missing from the module descriptor.</p>
</li>
<li>
<p>A bit-wise identical binary of this version can be reproduced by
building from <a href="https://github.com/qos-ch/logback">source
code</a> at commit <code>e8e824dede022a6d7208b36cfa875b0d1b7772f3</code>
associated with the tag <code>v_1.6.3</code>. The release was built
using Java "21" 2023-10-17 LTS build 21.0.1.+12-LTS-29 under
Linux Debian 11.6.</p>
</li>
</ul>
<p>--
Sponsoring SLF4J/logback/reload4j at <a
href="https://github.com/sponsors/qos-ch">https://github.com/sponsors/qos-ch</a></p>
<h2>Logback 1.6.2</h2>
<p><a
href="https://github.com/user-attachments/assets/9ceaf157-b758-4188-815d-edfe4e1b4edd">https://github.com/user-attachments/assets/9ceaf157-b758-4188-815d-edfe4e1b4edd</a></p>
<h1>2026-08-10 Release of logback version 1.6.2</h1>
<ul>
<li>
<p>Configuration analysis now detects <em>contradictory caller-data
inclusion instructions</em>. For example, an <code>AsyncAppender</code>,
<code>SocketAppender</code> or <code>SMTPAppender</code> with
<code>includeCallerData</code> left at the default <code>false</code> is
incompatible with a layout or encoder pattern that uses a caller-data
converter such as <code>%C</code>, <code>%M</code>, <code>%L</code>,
<code>%F</code>, <code>%l</code> or <code>%caller</code>. At runtime
those converters would print question marks and still incur extraction
cost on a worker thread. Logback now emits a configuration-time warning
when such instructions disagree. See <a
href="https://logback.qos.ch/codes.html#callerContradiction">codes.html#callerContradiction</a>
for details. This issue was reported in <a
href="https://redirect.github.com/qos-ch/logback/issues/1059">issues/1059</a>
by <a href="https://github.com/leeychee">leeychee</a>. The initial
analysis was contributed by <a
href="https://github.com/seonwooj0810">seonwoo_jung</a>.</p>
</li>
<li>
<p>Caller-contradiction analysis can be turned off by setting the
<code>logback.skipCallerContradictionAnalysis</code> variable to
<code>true</code>, either as a system property
(<code>-Dlogback.skipCallerContradictionAnalysis=true</code>) or as a
property in the configuration file:</p>
<pre lang="xml"><code><property
name="logback.skipCallerContradictionAnalysis"
value="true"/>
</code></pre>
</li>
<li>
<p><code>SimpleSocketServer</code> and
<code>SimpleSSLSocketServer</code> now require an explicit client IP
whitelist. On the command line, pass one or more allowed addresses
(single IPs or CIDR ranges) after the configuration file. An empty
whitelist means no clients are accepted. When embedding the server
programmatically, register allowed addresses with
<code>addAllowedClientAddress(String)</code> or
<code>setAllowedClientAddresses(Collection)</code> before clients
connect. See the documentation on <a
href="https://logback.qos.ch/manual/appenders.html#simpleSocketServerClientAccess">restricting
client access</a>.</p>
</li>
<li>
<p>Added <code>ThrowableProxyVOBuilder</code> for assembling a
<code>ThrowableProxyVO</code> field by field, with a corresponding
<code>ThrowableProxyVO.builder()</code> entry point.</p>
</li>
<li>
<p>Dependency analysis handlers now run their <code>postHandle</code>
method after child models have been processed, so checks that depend on
nested appenders (such as caller-contradiction analysis) see a complete
picture.</p>
</li>
<li>
<p>Updated several dependencies, including Angus Mail to 2.0.4 and Jetty
(test) to 12.1.12.</p>
</li>
<li>
<p>A bit-wise identical binary of this version can be reproduced by
building from <a href="https://github.com/qos-ch/logback">source
code</a> at commit e3d78330ad1ba024fd987fd00c3ffb9cfcdb07dc associated
with the tag <code>v_1.6.2</code>. The release was built using Java
"21" 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian
11.6.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e8e824dede"><code>e8e824d</code></a>
prepare release 1.6.3</li>
<li><a
href="761821bfaa"><code>761821b</code></a>
MDCBasedDiscriminator has a gated warning mechanism</li>
<li><a
href="53ed122900"><code>53ed122</code></a>
update copyright year</li>
<li><a
href="c7e2db2446"><code>c7e2db2</code></a>
rename SimpleInvocationGate as FixedIntervalInvocationGate</li>
<li><a
href="b5aa931b09"><code>b5aa931</code></a>
added BatchedSimpleInvocationGate</li>
<li><a
href="1f22af7686"><code>1f22af7</code></a>
add javadocs to SimpleInvocationGate</li>
<li><a
href="638ffa7e78"><code>638ffa7</code></a>
prevent forward and backward slashes to escape to other directories</li>
<li><a
href="7d6b9a4f8c"><code>7d6b9a4</code></a>
add missing ch.qos.logback.core.property package</li>
<li><a
href="fa25930346"><code>fa25930</code></a>
add an extension path in ConsoleAppender for JansiConsoleAppender</li>
<li><a
href="c73b43f201"><code>c73b43f</code></a>
deprecate the withJansi path</li>
<li>Additional commits viewable in <a
href="https://github.com/qos-ch/logback/compare/v_1.6.1...v_1.6.3">compare
view</a></li>
</ul>
</details>
<br />
Updates `gradle-wrapper` from 9.7.0 to 9.7.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gradle/gradle/releases">gradle-wrapper's
releases</a>.</em></p>
<blockquote>
<h2>9.7.1</h2>
<p>The Gradle team is excited to announce Gradle 9.7.1.</p>
<p>This is a patch release for 9.7.0. We recommend using 9.7.1 instead
of 9.7.0.</p>
<p>Here are the highlights of 9.7.0 release:</p>
<ul>
<li>Isolated Projects graduates to incubating</li>
<li>Broader Configuration Cache compatibility</li>
<li>Resilient Sync helps you fix broken builds</li>
<li>More source locations in problem reports</li>
</ul>
<p><a href="https://docs.gradle.org/9.7.1/release-notes.html">Read the
Release Notes</a></p>
<p>We would like to thank the following community members for their
contributions to this release of Gradle:
<a href="https://github.com/aSemy">Adam</a>,
<a href="https://github.com/Gautam-aman">Aman Gautam</a>,
<a href="https://github.com/YukiCodepth">Aman Kumar</a>,
<a href="https://github.com/adubrouski">Anton Dubrouski</a>,
<a href="https://github.com/liutikas">Aurimas</a>,
<a href="https://github.com/gbhavya07">gbhavya07</a>,
<a href="https://github.com/joshfriend">Josh Friend</a>,
<a href="https://github.com/nicklauslittle-gov">nicklauslittle-gov</a>,
<a href="https://github.com/psoni674">Pragati</a>,
<a href="https://github.com/Project516">project516</a>,
<a href="https://github.com/Uomocapra">Qin Mi</a>,
<a href="https://github.com/rkdfx">Ravi</a>,
<a href="https://github.com/sk-reddy17">sk-reddy17</a>,
<a href="https://github.com/Suvrat1629">Suvrat Acharya</a>,
<a href="https://github.com/ShreckYe">Yongshun Ye</a>.</p>
<h2>Upgrade instructions</h2>
<p>Switch your build to use Gradle 9.7.1 by updating your wrapper:</p>
<pre><code>./gradlew :wrapper --gradle-version=9.7.1 &&
./gradlew :wrapper
</code></pre>
<p>See the Gradle <a
href="https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html">9.x
upgrade guide</a> to learn about deprecations, breaking changes and
other considerations when upgrading.</p>
<p>For Java, Groovy, Kotlin and Android compatibility, see the <a
href="https://docs.gradle.org/9.7.1/userguide/compatibility.html">full
compatibility notes</a>.</p>
<h2>Reporting problems</h2>
<p>If you find a problem with this release, please file a bug on <a
href="https://github.com/gradle/gradle/issues">GitHub Issues</a>
adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the <a
href="https://discuss.gradle.org/c/help-discuss">forum</a>.</p>
<p>We hope you will build happiness with Gradle, and we look forward to
your feedback via <a href="https://twitter.com/gradle">Twitter</a> or on
<a href="https://github.com/gradle">GitHub</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="92f0512e7f"><code>92f0512</code></a>
update fixed issues for 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38892">#38892</a>)</li>
<li><a
href="820ee75a99"><code>820ee75</code></a>
update fixed issues for 9.7.1</li>
<li><a
href="82c23f9bd2"><code>82c23f9</code></a>
Fix annotation parameter ordering problem in KTS (<a
href="https://redirect.github.com/gradle/gradle/issues/38878">#38878</a>)</li>
<li><a
href="ef11a7268f"><code>ef11a72</code></a>
Fix annotation parameter ordering issue</li>
<li><a
href="bb0d8a974a"><code>bb0d8a9</code></a>
Make relevant tests polyglot (run for multiple DSLs)</li>
<li><a
href="336e129d7f"><code>336e129</code></a>
Update signing configuration (<a
href="https://redirect.github.com/gradle/gradle/issues/38874">#38874</a>)</li>
<li><a
href="4bdf0da2da"><code>4bdf0da</code></a>
Update signing configuration</li>
<li><a
href="cd9b92c1b8"><code>cd9b92c</code></a>
List issues resolved in 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38839">#38839</a>)</li>
<li><a
href="5f4e381964"><code>5f4e381</code></a>
List issues resolved in 9.7.1</li>
<li><a
href="1e08ab5513"><code>1e08ab5</code></a>
Keep type-use annotations in extracted ABI classes (<a
href="https://redirect.github.com/gradle/gradle/issues/38810">#38810</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/gradle/gradle/compare/v9.7.0...v9.7.1">compare
view</a></li>
</ul>
</details>
<br />
Updates `gradle-wrapper` from 9.7.0 to 9.7.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gradle/gradle/releases">gradle-wrapper's
releases</a>.</em></p>
<blockquote>
<h2>9.7.1</h2>
<p>The Gradle team is excited to announce Gradle 9.7.1.</p>
<p>This is a patch release for 9.7.0. We recommend using 9.7.1 instead
of 9.7.0.</p>
<p>Here are the highlights of 9.7.0 release:</p>
<ul>
<li>Isolated Projects graduates to incubating</li>
<li>Broader Configuration Cache compatibility</li>
<li>Resilient Sync helps you fix broken builds</li>
<li>More source locations in problem reports</li>
</ul>
<p><a href="https://docs.gradle.org/9.7.1/release-notes.html">Read the
Release Notes</a></p>
<p>We would like to thank the following community members for their
contributions to this release of Gradle:
<a href="https://github.com/aSemy">Adam</a>,
<a href="https://github.com/Gautam-aman">Aman Gautam</a>,
<a href="https://github.com/YukiCodepth">Aman Kumar</a>,
<a href="https://github.com/adubrouski">Anton Dubrouski</a>,
<a href="https://github.com/liutikas">Aurimas</a>,
<a href="https://github.com/gbhavya07">gbhavya07</a>,
<a href="https://github.com/joshfriend">Josh Friend</a>,
<a href="https://github.com/nicklauslittle-gov">nicklauslittle-gov</a>,
<a href="https://github.com/psoni674">Pragati</a>,
<a href="https://github.com/Project516">project516</a>,
<a href="https://github.com/Uomocapra">Qin Mi</a>,
<a href="https://github.com/rkdfx">Ravi</a>,
<a href="https://github.com/sk-reddy17">sk-reddy17</a>,
<a href="https://github.com/Suvrat1629">Suvrat Acharya</a>,
<a href="https://github.com/ShreckYe">Yongshun Ye</a>.</p>
<h2>Upgrade instructions</h2>
<p>Switch your build to use Gradle 9.7.1 by updating your wrapper:</p>
<pre><code>./gradlew :wrapper --gradle-version=9.7.1 &&
./gradlew :wrapper
</code></pre>
<p>See the Gradle <a
href="https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html">9.x
upgrade guide</a> to learn about deprecations, breaking changes and
other considerations when upgrading.</p>
<p>For Java, Groovy, Kotlin and Android compatibility, see the <a
href="https://docs.gradle.org/9.7.1/userguide/compatibility.html">full
compatibility notes</a>.</p>
<h2>Reporting problems</h2>
<p>If you find a problem with this release, please file a bug on <a
href="https://github.com/gradle/gradle/issues">GitHub Issues</a>
adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the <a
href="https://discuss.gradle.org/c/help-discuss">forum</a>.</p>
<p>We hope you will build happiness with Gradle, and we look forward to
your feedback via <a href="https://twitter.com/gradle">Twitter</a> or on
<a href="https://github.com/gradle">GitHub</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="92f0512e7f"><code>92f0512</code></a>
update fixed issues for 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38892">#38892</a>)</li>
<li><a
href="820ee75a99"><code>820ee75</code></a>
update fixed issues for 9.7.1</li>
<li><a
href="82c23f9bd2"><code>82c23f9</code></a>
Fix annotation parameter ordering problem in KTS (<a
href="https://redirect.github.com/gradle/gradle/issues/38878">#38878</a>)</li>
<li><a
href="ef11a7268f"><code>ef11a72</code></a>
Fix annotation parameter ordering issue</li>
<li><a
href="bb0d8a974a"><code>bb0d8a9</code></a>
Make relevant tests polyglot (run for multiple DSLs)</li>
<li><a
href="336e129d7f"><code>336e129</code></a>
Update signing configuration (<a
href="https://redirect.github.com/gradle/gradle/issues/38874">#38874</a>)</li>
<li><a
href="4bdf0da2da"><code>4bdf0da</code></a>
Update signing configuration</li>
<li><a
href="cd9b92c1b8"><code>cd9b92c</code></a>
List issues resolved in 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38839">#38839</a>)</li>
<li><a
href="5f4e381964"><code>5f4e381</code></a>
List issues resolved in 9.7.1</li>
<li><a
href="1e08ab5513"><code>1e08ab5</code></a>
Keep type-use annotations in extracted ABI classes (<a
href="https://redirect.github.com/gradle/gradle/issues/38810">#38810</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/gradle/gradle/compare/v9.7.0...v9.7.1">compare
view</a></li>
</ul>
</details>
<br />
Updates `gradle-wrapper` from 9.7.0 to 9.7.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gradle/gradle/releases">gradle-wrapper's
releases</a>.</em></p>
<blockquote>
<h2>9.7.1</h2>
<p>The Gradle team is excited to announce Gradle 9.7.1.</p>
<p>This is a patch release for 9.7.0. We recommend using 9.7.1 instead
of 9.7.0.</p>
<p>Here are the highlights of 9.7.0 release:</p>
<ul>
<li>Isolated Projects graduates to incubating</li>
<li>Broader Configuration Cache compatibility</li>
<li>Resilient Sync helps you fix broken builds</li>
<li>More source locations in problem reports</li>
</ul>
<p><a href="https://docs.gradle.org/9.7.1/release-notes.html">Read the
Release Notes</a></p>
<p>We would like to thank the following community members for their
contributions to this release of Gradle:
<a href="https://github.com/aSemy">Adam</a>,
<a href="https://github.com/Gautam-aman">Aman Gautam</a>,
<a href="https://github.com/YukiCodepth">Aman Kumar</a>,
<a href="https://github.com/adubrouski">Anton Dubrouski</a>,
<a href="https://github.com/liutikas">Aurimas</a>,
<a href="https://github.com/gbhavya07">gbhavya07</a>,
<a href="https://github.com/joshfriend">Josh Friend</a>,
<a href="https://github.com/nicklauslittle-gov">nicklauslittle-gov</a>,
<a href="https://github.com/psoni674">Pragati</a>,
<a href="https://github.com/Project516">project516</a>,
<a href="https://github.com/Uomocapra">Qin Mi</a>,
<a href="https://github.com/rkdfx">Ravi</a>,
<a href="https://github.com/sk-reddy17">sk-reddy17</a>,
<a href="https://github.com/Suvrat1629">Suvrat Acharya</a>,
<a href="https://github.com/ShreckYe">Yongshun Ye</a>.</p>
<h2>Upgrade instructions</h2>
<p>Switch your build to use Gradle 9.7.1 by updating your wrapper:</p>
<pre><code>./gradlew :wrapper --gradle-version=9.7.1 &&
./gradlew :wrapper
</code></pre>
<p>See the Gradle <a
href="https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html">9.x
upgrade guide</a> to learn about deprecations, breaking changes and
other considerations when upgrading.</p>
<p>For Java, Groovy, Kotlin and Android compatibility, see the <a
href="https://docs.gradle.org/9.7.1/userguide/compatibility.html">full
compatibility notes</a>.</p>
<h2>Reporting problems</h2>
<p>If you find a problem with this release, please file a bug on <a
href="https://github.com/gradle/gradle/issues">GitHub Issues</a>
adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the <a
href="https://discuss.gradle.org/c/help-discuss">forum</a>.</p>
<p>We hope you will build happiness with Gradle, and we look forward to
your feedback via <a href="https://twitter.com/gradle">Twitter</a> or on
<a href="https://github.com/gradle">GitHub</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="92f0512e7f"><code>92f0512</code></a>
update fixed issues for 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38892">#38892</a>)</li>
<li><a
href="820ee75a99"><code>820ee75</code></a>
update fixed issues for 9.7.1</li>
<li><a
href="82c23f9bd2"><code>82c23f9</code></a>
Fix annotation parameter ordering problem in KTS (<a
href="https://redirect.github.com/gradle/gradle/issues/38878">#38878</a>)</li>
<li><a
href="ef11a7268f"><code>ef11a72</code></a>
Fix annotation parameter ordering issue</li>
<li><a
href="bb0d8a974a"><code>bb0d8a9</code></a>
Make relevant tests polyglot (run for multiple DSLs)</li>
<li><a
href="336e129d7f"><code>336e129</code></a>
Update signing configuration (<a
href="https://redirect.github.com/gradle/gradle/issues/38874">#38874</a>)</li>
<li><a
href="4bdf0da2da"><code>4bdf0da</code></a>
Update signing configuration</li>
<li><a
href="cd9b92c1b8"><code>cd9b92c</code></a>
List issues resolved in 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38839">#38839</a>)</li>
<li><a
href="5f4e381964"><code>5f4e381</code></a>
List issues resolved in 9.7.1</li>
<li><a
href="1e08ab5513"><code>1e08ab5</code></a>
Keep type-use annotations in extracted ABI classes (<a
href="https://redirect.github.com/gradle/gradle/issues/38810">#38810</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/gradle/gradle/compare/v9.7.0...v9.7.1">compare
view</a></li>
</ul>
</details>
<br />
Updates `gradle-wrapper` from 9.7.0 to 9.7.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gradle/gradle/releases">gradle-wrapper's
releases</a>.</em></p>
<blockquote>
<h2>9.7.1</h2>
<p>The Gradle team is excited to announce Gradle 9.7.1.</p>
<p>This is a patch release for 9.7.0. We recommend using 9.7.1 instead
of 9.7.0.</p>
<p>Here are the highlights of 9.7.0 release:</p>
<ul>
<li>Isolated Projects graduates to incubating</li>
<li>Broader Configuration Cache compatibility</li>
<li>Resilient Sync helps you fix broken builds</li>
<li>More source locations in problem reports</li>
</ul>
<p><a href="https://docs.gradle.org/9.7.1/release-notes.html">Read the
Release Notes</a></p>
<p>We would like to thank the following community members for their
contributions to this release of Gradle:
<a href="https://github.com/aSemy">Adam</a>,
<a href="https://github.com/Gautam-aman">Aman Gautam</a>,
<a href="https://github.com/YukiCodepth">Aman Kumar</a>,
<a href="https://github.com/adubrouski">Anton Dubrouski</a>,
<a href="https://github.com/liutikas">Aurimas</a>,
<a href="https://github.com/gbhavya07">gbhavya07</a>,
<a href="https://github.com/joshfriend">Josh Friend</a>,
<a href="https://github.com/nicklauslittle-gov">nicklauslittle-gov</a>,
<a href="https://github.com/psoni674">Pragati</a>,
<a href="https://github.com/Project516">project516</a>,
<a href="https://github.com/Uomocapra">Qin Mi</a>,
<a href="https://github.com/rkdfx">Ravi</a>,
<a href="https://github.com/sk-reddy17">sk-reddy17</a>,
<a href="https://github.com/Suvrat1629">Suvrat Acharya</a>,
<a href="https://github.com/ShreckYe">Yongshun Ye</a>.</p>
<h2>Upgrade instructions</h2>
<p>Switch your build to use Gradle 9.7.1 by updating your wrapper:</p>
<pre><code>./gradlew :wrapper --gradle-version=9.7.1 &&
./gradlew :wrapper
</code></pre>
<p>See the Gradle <a
href="https://docs.gradle.org/9.7.1/userguide/upgrading_version_9.html">9.x
upgrade guide</a> to learn about deprecations, breaking changes and
other considerations when upgrading.</p>
<p>For Java, Groovy, Kotlin and Android compatibility, see the <a
href="https://docs.gradle.org/9.7.1/userguide/compatibility.html">full
compatibility notes</a>.</p>
<h2>Reporting problems</h2>
<p>If you find a problem with this release, please file a bug on <a
href="https://github.com/gradle/gradle/issues">GitHub Issues</a>
adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the <a
href="https://discuss.gradle.org/c/help-discuss">forum</a>.</p>
<p>We hope you will build happiness with Gradle, and we look forward to
your feedback via <a href="https://twitter.com/gradle">Twitter</a> or on
<a href="https://github.com/gradle">GitHub</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="92f0512e7f"><code>92f0512</code></a>
update fixed issues for 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38892">#38892</a>)</li>
<li><a
href="820ee75a99"><code>820ee75</code></a>
update fixed issues for 9.7.1</li>
<li><a
href="82c23f9bd2"><code>82c23f9</code></a>
Fix annotation parameter ordering problem in KTS (<a
href="https://redirect.github.com/gradle/gradle/issues/38878">#38878</a>)</li>
<li><a
href="ef11a7268f"><code>ef11a72</code></a>
Fix annotation parameter ordering issue</li>
<li><a
href="bb0d8a974a"><code>bb0d8a9</code></a>
Make relevant tests polyglot (run for multiple DSLs)</li>
<li><a
href="336e129d7f"><code>336e129</code></a>
Update signing configuration (<a
href="https://redirect.github.com/gradle/gradle/issues/38874">#38874</a>)</li>
<li><a
href="4bdf0da2da"><code>4bdf0da</code></a>
Update signing configuration</li>
<li><a
href="cd9b92c1b8"><code>cd9b92c</code></a>
List issues resolved in 9.7.1 (<a
href="https://redirect.github.com/gradle/gradle/issues/38839">#38839</a>)</li>
<li><a
href="5f4e381964"><code>5f4e381</code></a>
List issues resolved in 9.7.1</li>
<li><a
href="1e08ab5513"><code>1e08ab5</code></a>
Keep type-use annotations in extracted ABI classes (<a
href="https://redirect.github.com/gradle/gradle/issues/38810">#38810</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/gradle/gradle/compare/v9.7.0...v9.7.1">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.junit.jupiter:junit-jupiter`...
_Description has been truncated_
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the all-dependencies group in
/integration-test/src/jvmTest/typescript with 1 update:
[tsx](https://github.com/privatenumber/tsx).
Updates `tsx` from 4.23.11 to 4.23.12
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/privatenumber/tsx/releases">tsx's
releases</a>.</em></p>
<blockquote>
<h2>v4.23.12</h2>
<h2><a
href="https://github.com/privatenumber/tsx/compare/v4.23.11...v4.23.12">4.23.12</a>
(2026-08-10)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>shim <code>import.meta</code> when tokens are split by comments or
newlines (<a
href="https://redirect.github.com/privatenumber/tsx/issues/829">#829</a>)
(<a
href="ed9d33046a">ed9d330</a>),
closes <a
href="https://redirect.github.com/privatenumber/tsx/issues/828">#828</a></li>
</ul>
<hr />
<p>This release is also available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/tsx/v/4.23.12"><code>npm
package (@latest dist-tag)</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ed9d33046a"><code>ed9d330</code></a>
fix: shim <code>import.meta</code> when tokens are split by comments or
newlines (<a
href="https://redirect.github.com/privatenumber/tsx/issues/829">#829</a>)</li>
<li><a
href="651f5bec70"><code>651f5be</code></a>
test: cover CommonJS TypeScript import.meta paths</li>
<li>See full diff in <a
href="https://github.com/privatenumber/tsx/compare/v4.23.11...v4.23.12">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the all-actions group with 2 updates in the / directory:
[gradle/actions](https://github.com/gradle/actions) and
[github/codeql-action](https://github.com/github/codeql-action).
Updates `gradle/actions` from 6.2.0 to 6.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gradle/actions/releases">gradle/actions's
releases</a>.</em></p>
<blockquote>
<h2>v6.3.0</h2>
<h2>Highlights</h2>
<h3>Enhanced Caching: Windows fixes and a cache-protocol bump</h3>
<p>This release updates <code>gradle-actions-caching</code> to
<strong>v1.0.0</strong> (up from v0.7.0), which fixes two significant
caching defects, both most visible on Windows:</p>
<ul>
<li>
<p><strong>Cache entries failed to store at all on Windows.</strong>.
Every entry failed
with <code>Path Validation Error: Path(s) specified in the action for
caching do(es) not exist</code>, even though the Gradle User Home was
fully intact. Nothing was stored, so
every downstream job ran against an empty Gradle User Home. The cause
was a nested,
unpatched copy of <code>@actions/glob</code> combined with a silently
swallowed <code>require()</code> in
the bundle, which left Windows path separators unnormalized.</p>
</li>
<li>
<p><strong>Cache cleanup deleted instrumented jars that were in
use.</strong> A bug in key
hashing for paths shorter than 64 characters made cleanup judge freshly
created
<code>caches/jars-9</code> entries as unused and remove them, so the
<code>instrumented-jars</code> entry
was never saved and every job re-instrumented its classpaths.</p>
<p>Also included: cache entry names are now consistent between the save
and restore
reports — restore previously fell back to showing the raw glob pattern
(e.g.
<code>/home/runner/.gradle/caches/modules-*/files-*/*/*/*/*/</code>)
instead of <code>dependencies</code>.</p>
</li>
</ul>
<blockquote>
<p>[!IMPORTANT]
<strong>Existing cache entries are invalidated by this release.</strong>
The cache protocol
version was bumped to <code>v2</code>, so the first run after upgrading
will be a cache miss
and will repopulate the cache. No configuration changes are
required.</p>
</blockquote>
<h3>Basic caching warns instead of failing silently</h3>
<p>The basic (open-source) caching provider now emits a warning and
reports
<code>(Entry not saved: save failed)</code> in the Job Summary when a
cache save fails, rather
than reporting success (<a
href="https://redirect.github.com/gradle/actions/issues/1028">#1028</a>).</p>
<h3>Dependency submission works with Isolated Projects</h3>
<p><code>dependency-submission</code> now disables Isolated Projects via
a promoted property, so
dependency graph generation works on builds that enable it (<a
href="https://redirect.github.com/gradle/actions/issues/1025">#1025</a>).
Thanks to <a
href="https://github.com/reinsch82"><code>@reinsch82</code></a> for the
contribution.</p>
<h3>Updated defaults</h3>
<ul>
<li>Injected Develocity Gradle plugin: <strong>4.4.2 →
4.5.0</strong></li>
<li>36 new known-good wrapper checksums added for
<code>wrapper-validation</code></li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>Render configuration-cache status in the caching Job Summary by <a
href="https://github.com/bigdaz"><code>@bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/989">gradle/actions#989</a></li>
<li>Update gradle-actions-caching library to v0.8.0 by <a
href="https://github.com/bot-githubaction"><code>@bot-githubaction</code></a>
in <a
href="https://redirect.github.com/gradle/actions/pull/993">gradle/actions#993</a></li>
<li>Support experimental project-entry caching (configuration-cache +
build-logic) by <a
href="https://github.com/bigdaz"><code>@bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/994">gradle/actions#994</a></li>
<li>Update gradle-actions-caching library to v0.9.0 by <a
href="https://github.com/bot-githubaction"><code>@bot-githubaction</code></a>
in <a
href="https://redirect.github.com/gradle/actions/pull/996">gradle/actions#996</a></li>
<li>Disable Isolated Projects via promoted property in
dependency-submission by <a
href="https://github.com/reinsch82"><code>@reinsch82</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/1025">gradle/actions#1025</a></li>
<li>Add Windows coverage for caching via a new smoke-test suite by <a
href="https://github.com/bigdaz"><code>@bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/1027">gradle/actions#1027</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9c971963be"><code>9c97196</code></a>
Bump the github-actions group across 2 directories with 9 updates (<a
href="https://redirect.github.com/gradle/actions/issues/1024">#1024</a>)</li>
<li><a
href="760e4a476b"><code>760e4a4</code></a>
Bump the npm-dependencies group across 1 directory with 2 updates (<a
href="https://redirect.github.com/gradle/actions/issues/1037">#1037</a>)</li>
<li><a
href="73e4c4222b"><code>73e4c42</code></a>
Update gradle-actions-caching library to v1.0.0 (<a
href="https://redirect.github.com/gradle/actions/issues/1029">#1029</a>)</li>
<li><a
href="a9d14388b4"><code>a9d1438</code></a>
Add dependabot ignore rules for TypeScript 7.x and
<code>@types/node</code> 25.x/26.x</li>
<li><a
href="68f37005d7"><code>68f3700</code></a>
[bot] Update dist directory</li>
<li><a
href="5971332a8f"><code>5971332</code></a>
Bump Gradle Wrapper to 9.6.1, wrapper checksums, and Develocity plugin
to 4.5...</li>
<li><a
href="b5bc804016"><code>b5bc804</code></a>
[bot] Update dist directory</li>
<li><a
href="dcbab4e919"><code>dcbab4e</code></a>
Bump npm-dependencies group with TypeScript 6.0.3,
<code>@types/node</code> 24.x, and secu...</li>
<li><a
href="ca8d95717f"><code>ca8d957</code></a>
Move non-smoke restore-gradle-home tests back to the integ-test suite
(<a
href="https://redirect.github.com/gradle/actions/issues/1032">#1032</a>)</li>
<li><a
href="4318659b28"><code>4318659</code></a>
[bot] Update dist directory</li>
<li>Additional commits viewable in <a
href="https://github.com/gradle/actions/compare/v6.2.0...v6.3.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `github/codeql-action` from 4.37.4 to 4.37.6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v4.37.6</h2>
<ul>
<li>Changed the default filepath for the new remote file address format
that was introduced in CodeQL Action 4.37.0 / 3.37.0 to
<code>.github/codeql-config.yml</code> to align it with the suggested
path that is used elsewhere. <a
href="https://redirect.github.com/github/codeql-action/pull/4070">#4070</a></li>
</ul>
<h2>v4.37.5</h2>
<ul>
<li>Fixed a bug where a network error while streaming the download of
the CodeQL bundle could terminate the <code>init</code> Action instead
of falling back to downloading the bundle before extracting it. <a
href="https://redirect.github.com/github/codeql-action/pull/4061">#4061</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h2>4.37.6 - 04 Aug 2026</h2>
<ul>
<li>Changed the default filepath for the new remote file address format
that was introduced in CodeQL Action 4.37.0 / 3.37.0 to
<code>.github/codeql-config.yml</code> to align it with the suggested
path that is used elsewhere. <a
href="https://redirect.github.com/github/codeql-action/pull/4070">#4070</a></li>
</ul>
<h2>4.37.5 - 03 Aug 2026</h2>
<ul>
<li>Fixed a bug where a network error while streaming the download of
the CodeQL bundle could terminate the <code>init</code> Action instead
of falling back to downloading the bundle before extracting it. <a
href="https://redirect.github.com/github/codeql-action/pull/4061">#4061</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5595ccaf91"><code>5595cca</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/4071">#4071</a>
from github/update-v4.37.6-6a9359a1b</li>
<li><a
href="ec9c75796a"><code>ec9c757</code></a>
Add change note for PR 4070</li>
<li><a
href="45c8742e17"><code>45c8742</code></a>
Update changelog for v4.37.6</li>
<li><a
href="6a9359a1bd"><code>6a9359a</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/4070">#4070</a>
from github/mbg/remote-address/change-file-default</li>
<li><a
href="065cdc0394"><code>065cdc0</code></a>
Change <code>DEFAULT_CONFIG_FILE_NAME</code></li>
<li><a
href="f99dd5aeee"><code>f99dd5a</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/4066">#4066</a>
from github/dependabot/npm_and_yarn/js-yaml-5.2.2</li>
<li><a
href="1804b211a3"><code>1804b21</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/4068">#4068</a>
from github/mergeback/v4.37.5-to-main-d1ba80a1</li>
<li><a
href="3020a2f462"><code>3020a2f</code></a>
Rebuild</li>
<li><a
href="93c3a5a40b"><code>93c3a5a</code></a>
Update changelog and version after v4.37.5</li>
<li><a
href="d1ba80a13d"><code>d1ba80a</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/4067">#4067</a>
from github/update-v4.37.5-1cd4d01d5</li>
<li>Additional commits viewable in <a
href="https://github.com/github/codeql-action/compare/v4.37.4...v4.37.6">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the all-dependencies group with 2 updates in the
/integration-test/src/jvmTest/typescript directory:
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
and [tsx](https://github.com/privatenumber/tsx).
Updates `@types/node` from 26.1.2 to 26.2.0
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />
Updates `tsx` from 4.23.4 to 4.23.11
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/privatenumber/tsx/releases">tsx's
releases</a>.</em></p>
<blockquote>
<h2>v4.23.11</h2>
<h2><a
href="https://github.com/privatenumber/tsx/compare/v4.23.10...v4.23.11">4.23.11</a>
(2026-08-07)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>preserve async ESM require fallback (<a
href="55cbecef8e">55cbece</a>)</li>
</ul>
<hr />
<p>This release is also available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/tsx/v/4.23.11"><code>npm
package (@latest dist-tag)</code></a></li>
</ul>
<h2>v4.23.10</h2>
<h2><a
href="https://github.com/privatenumber/tsx/compare/v4.23.9...v4.23.10">4.23.10</a>
(2026-08-07)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>support nyc coverage discovery (<a
href="https://redirect.github.com/privatenumber/tsx/issues/710">#710</a>)
(<a
href="ec1bcd5f71">ec1bcd5</a>)</li>
</ul>
<hr />
<p>This release is also available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/tsx/v/4.23.10"><code>npm
package (@latest dist-tag)</code></a></li>
</ul>
<h2>v4.23.9</h2>
<h2><a
href="https://github.com/privatenumber/tsx/compare/v4.23.8...v4.23.9">4.23.9</a>
(2026-08-06)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>map Node test locations (<a
href="2f55884195">2f55884</a>)</li>
<li>support data URLs in tsImport (<a
href="b94f46f6b6">b94f46f</a>)</li>
</ul>
<hr />
<p>This release is also available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/tsx/v/4.23.9"><code>npm
package (@latest dist-tag)</code></a></li>
</ul>
<h2>v4.23.8</h2>
<h2><a
href="https://github.com/privatenumber/tsx/compare/v4.23.7...v4.23.8">4.23.8</a>
(2026-08-05)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>preserve package subpath resolution (<a
href="be1315e3f3">be1315e</a>)</li>
<li>preserve typeless ESM dependency exports (<a
href="70dfc5e3db">70dfc5e</a>)</li>
</ul>
<hr />
<p>This release is also available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/tsx/v/4.23.8"><code>npm
package (@latest dist-tag)</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="bd3bc6448e"><code>bd3bc64</code></a>
test: cover CommonJS loader source fallback</li>
<li><a
href="55cbecef8e"><code>55cbece</code></a>
fix: preserve async ESM require fallback</li>
<li><a
href="6c5ba85f7a"><code>6c5ba85</code></a>
docs: document CommonJS default interop</li>
<li><a
href="ec1bcd5f71"><code>ec1bcd5</code></a>
fix: support nyc coverage discovery (<a
href="https://redirect.github.com/privatenumber/tsx/issues/710">#710</a>)</li>
<li><a
href="b6e5b48a7b"><code>b6e5b48</code></a>
docs: clarify CommonJS default imports</li>
<li><a
href="2f55884195"><code>2f55884</code></a>
fix: map Node test locations</li>
<li><a
href="de935d588b"><code>de935d5</code></a>
docs: document Node source-map stack formatting</li>
<li><a
href="b94f46f6b6"><code>b94f46f</code></a>
fix: support data URLs in tsImport</li>
<li><a
href="be1315e3f3"><code>be1315e</code></a>
fix: preserve package subpath resolution</li>
<li><a
href="5efba41e14"><code>5efba41</code></a>
docs: organize transform backend research</li>
<li>Additional commits viewable in <a
href="https://github.com/privatenumber/tsx/compare/v4.23.4...v4.23.11">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [hono](https://github.com/honojs/hono) from 4.12.27 to 4.13.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/honojs/hono/releases">hono's
releases</a>.</em></p>
<blockquote>
<h2>v4.13.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(trie-router): count every slash a pattern consumes by <a
href="https://github.com/Jaybhade"><code>@Jaybhade</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/5189">honojs/hono#5189</a></li>
<li>fix(utils/stream): re-acquire writer lock when pipe() throws by <a
href="https://github.com/Sriharsha-dev369"><code>@Sriharsha-dev369</code></a>
in <a
href="https://redirect.github.com/honojs/hono/pull/4988">honojs/hono#4988</a></li>
<li>fix(etag): skip unsafe methods or error responses on non-* case by
<a
href="https://github.com/na-trium-144"><code>@na-trium-144</code></a>
in <a
href="https://redirect.github.com/honojs/hono/pull/5196">honojs/hono#5196</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Jaybhade"><code>@Jaybhade</code></a>
made their first contribution in <a
href="https://redirect.github.com/honojs/hono/pull/5189">honojs/hono#5189</a></li>
<li><a
href="https://github.com/Sriharsha-dev369"><code>@Sriharsha-dev369</code></a>
made their first contribution in <a
href="https://redirect.github.com/honojs/hono/pull/4988">honojs/hono#4988</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/honojs/hono/compare/v4.13.0...v4.13.1">https://github.com/honojs/hono/compare/v4.13.0...v4.13.1</a></p>
<h2>v4.13.0</h2>
<p>Hono v4.13.0 is now available!</p>
<p>The highlight of this release is performance: a batch of low-level
optimizations makes the core request/response path significantly faster
— up to 1.25x on common routes in our benchmark. This release also adds
first-class support for the HTTP QUERY method, defined in <a
href="https://www.rfc-editor.org/rfc/rfc10008.html">RFC 10008</a>, a new
Method Not Allowed middleware, and more.</p>
<h2>Performance improvements</h2>
<p>This release includes a series of small optimizations: skipping
unnecessary <code>Headers</code> allocations, replacing regex tests with
<code>indexOf</code>, allocating internal state lazily, and more.</p>
<p>Here is <a
href="https://github.com/honojs/hono/tree/main/benchmarks/fetch"><code>benchmarks/fetch</code></a>
comparing v4.12 and v4.13 (<code>ROUNDS=5 ./compare.sh</code>, Bun
1.4.0, Apple Silicon — each measurement runs in a fresh process, and the
variant order is reversed every round to avoid warm-up bias):</p>
<table>
<thead>
<tr>
<th>Benchmark</th>
<th align="right">v4.12</th>
<th align="right">v4.13</th>
<th align="right">Speedup</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>ping</code> — <code>GET /</code></td>
<td align="right">165.83 ns</td>
<td align="right">163.99 ns</td>
<td align="right">1.01x</td>
</tr>
<tr>
<td><code>query</code> — <code>GET /id/1?name=bun</code></td>
<td align="right">674.40 ns</td>
<td align="right">616.99 ns</td>
<td align="right"><strong>1.09x</strong></td>
</tr>
<tr>
<td><code>json</code> — <code>GET /user</code></td>
<td align="right">528.99 ns</td>
<td align="right">422.44 ns</td>
<td align="right"><strong>1.25x</strong></td>
</tr>
<tr>
<td><code>body</code> — <code>POST /json</code></td>
<td align="right">1.16 µs</td>
<td align="right">1.00 µs</td>
<td align="right"><strong>1.15x</strong></td>
</tr>
</tbody>
</table>
<p>The individual changes:</p>
<ul>
<li>perf(context): iterate the header record with <code>for..in</code>
<a
href="https://redirect.github.com/honojs/hono/pull/5118">honojs/hono#5118</a></li>
<li>perf(url): replace regex tests with <code>indexOf</code> <a
href="https://redirect.github.com/honojs/hono/pull/5121">honojs/hono#5121</a></li>
<li>perf(context): skip <code>Headers</code> creation when there are no
headers to merge <a
href="https://redirect.github.com/honojs/hono/pull/5122">honojs/hono#5122</a></li>
<li>perf(urls): refactor <code>tryDecodeURIComponent</code> <a
href="https://redirect.github.com/honojs/hono/pull/5158">honojs/hono#5158</a></li>
<li>perf(request): allocate <code>#validatedData</code> lazily <a
href="https://redirect.github.com/honojs/hono/pull/5175">honojs/hono#5175</a></li>
<li>perf(request): probe the body cache without allocating <a
href="https://redirect.github.com/honojs/hono/pull/5176">honojs/hono#5176</a></li>
</ul>
<p>In addition, the RegExpRouter rewrite described below makes route
registration plus the first match roughly 20% faster.</p>
<p>Thanks <a
href="https://github.com/kibertoad"><code>@kibertoad</code></a> for the
contributions!</p>
<h2>First-class QUERY method support</h2>
<p>The QUERY method — a safe, idempotent method that carries a request
body — is now a first-class citizen in Hono. You can define QUERY
handlers with <code>app.query()</code>:</p>
<pre lang="ts"><code>const app = new Hono()
<p></tr></table><br />
</code></pre></p>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="cf785287b5"><code>cf78528</code></a>
4.13.1</li>
<li><a
href="f6aa913c3f"><code>f6aa913</code></a>
fix(etag): skip unsafe methods or error responses on non-* case (<a
href="https://redirect.github.com/honojs/hono/issues/5196">#5196</a>)</li>
<li><a
href="cd31bc196e"><code>cd31bc1</code></a>
fix(utils/stream): re-acquire writer lock when pipe() throws (<a
href="https://redirect.github.com/honojs/hono/issues/4988">#4988</a>)</li>
<li><a
href="569b4191a2"><code>569b419</code></a>
fix(trie-router): count every slash a pattern consumes (<a
href="https://redirect.github.com/honojs/hono/issues/5189">#5189</a>)</li>
<li><a
href="192768fbaf"><code>192768f</code></a>
4.13.0</li>
<li><a
href="b0c2d90eb0"><code>b0c2d90</code></a>
Merge pull request <a
href="https://redirect.github.com/honojs/hono/issues/5154">#5154</a>
from honojs/next</li>
<li><a
href="8f07028270"><code>8f07028</code></a>
fix(compress): set Vary: Accept-Encoding on negotiated responses (<a
href="https://redirect.github.com/honojs/hono/issues/5137">#5137</a>)</li>
<li><a
href="8a0b18fd9b"><code>8a0b18f</code></a>
feat(reg-exp-router): throw UnsupportedPathError during route
registration (#...</li>
<li><a
href="3feb3551d4"><code>3feb355</code></a>
fix(jsx): allow a function component to return an array (<a
href="https://redirect.github.com/honojs/hono/issues/5179">#5179</a>)</li>
<li><a
href="5d911d2ab7"><code>5d911d2</code></a>
feat(utils/headers): add HTTP fields newly registered with IANA (<a
href="https://redirect.github.com/honojs/hono/issues/5153">#5153</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/honojs/hono/compare/v4.12.27...v4.13.1">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Summary
Part of #815.
Adds the core types and codecs needed for SEP-2575:
- experimental accessors for request-scoped metadata while preserving
legacy request shapes and unknown `_meta` entries;
- `server/discover` request/result types, cache fields, and
unsupported-version error data; and
- polymorphic request/result decoding with wire-format and
malformed-input coverage.
The discovery types match the merged draft schema in
modelcontextprotocol/modelcontextprotocol#3002: `protocolVersion` and
`clientCapabilities` are required, `clientInfo` is optional, and
optional server information remains in result `_meta`.
## Motivation and Context
SEP-2575 moves protocol and client context onto individual requests and
introduces `server/discover`. The shared `RequestMeta` accessors remain
nullable so legacy requests stay representable; `DiscoverRequestParams`
enforces the fields required by the new discovery request.
This PR stops at the core type and codec boundary. It does not add
server admission, request-scoped dispatch, Streamable HTTP,
authentication, subscriptions, MRTR, lifecycle hooks, or a discovery
DSL.
## How Has This Been Tested?
- JVM: 597/597 tests
- JS Node and Chrome: 528/528 tests per target
- WasmJS Node and Chrome: 528/528 tests per target
- iOS Simulator arm64 and macOS arm64: 528/528 tests per target
- API dump/check, ktlint, detekt, and diff checks
Coverage includes required discovery metadata, optional `clientInfo`,
required cache fields, unknown metadata round-trips, the legacy
`resultType` fallback, unsupported-version data, and polymorphic result
classification.
## Breaking Changes
This adds `DiscoverRequest` as a new `ClientRequest` subtype. Consumers
recompiling exhaustive `when` expressions over `ClientRequest` may need
to add a branch. Existing request types and wire representations are
unchanged.
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
`ttlMs` and `cacheScope` have Kotlin construction defaults but remain
required when decoding. An absent `resultType` decodes as `"complete"`
for compatibility with legacy results. Discovery result selection
requires the complete required shape so unrelated result extensions are
not misclassified.
---------
Co-authored-by: Pavel Gorgulov <devcrocod@gmail.com>
Bumps `kotlin` from 2.4.0 to 2.4.10.
Updates `org.jetbrains.kotlin.jvm` from 2.4.0 to 2.4.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.10</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
<h2>Kotlin 2.4.10-RC2</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.10</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5687445832"><code>5687445</code></a>
Add Changelog for 2.4.10-RC2</li>
<li><a
href="ba30392c45"><code>ba30392</code></a>
[Wasm] Support regenerate unchanged modules flag on KGP</li>
<li><a
href="6307e7310d"><code>6307e73</code></a>
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag</li>
<li><a
href="39d7aee847"><code>39d7aee</code></a>
Add ChangeLog for 2.4.10-RC2</li>
<li><a
href="a2956bed85"><code>a2956be</code></a>
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings</li>
<li><a
href="9b1361ce7a"><code>9b1361c</code></a>
[Gradle] KT-87223: Updated regression test</li>
<li><a
href="a4c153af52"><code>a4c153a</code></a>
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
config</li>
<li><a
href="bc04b90d24"><code>bc04b90</code></a>
Add ChangeLog for 2.4.10-RC</li>
<li><a
href="bbcb94baa2"><code>bbcb94b</code></a>
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...</li>
<li><a
href="6c2c458f1d"><code>6c2c458</code></a>
Scripting: fix jvmTarget processing from script annotations</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.0...v2.4.10">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.4.0 to 2.4.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.plugin.serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.10</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
<h2>Kotlin 2.4.10-RC2</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.10</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5687445832"><code>5687445</code></a>
Add Changelog for 2.4.10-RC2</li>
<li><a
href="ba30392c45"><code>ba30392</code></a>
[Wasm] Support regenerate unchanged modules flag on KGP</li>
<li><a
href="6307e7310d"><code>6307e73</code></a>
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag</li>
<li><a
href="39d7aee847"><code>39d7aee</code></a>
Add ChangeLog for 2.4.10-RC2</li>
<li><a
href="a2956bed85"><code>a2956be</code></a>
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings</li>
<li><a
href="9b1361ce7a"><code>9b1361c</code></a>
[Gradle] KT-87223: Updated regression test</li>
<li><a
href="a4c153af52"><code>a4c153a</code></a>
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
config</li>
<li><a
href="bc04b90d24"><code>bc04b90</code></a>
Add ChangeLog for 2.4.10-RC</li>
<li><a
href="bbcb94baa2"><code>bbcb94b</code></a>
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...</li>
<li><a
href="6c2c458f1d"><code>6c2c458</code></a>
Scripting: fix jvmTarget processing from script annotations</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.0...v2.4.10">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `kotlin` from 2.4.0 to 2.4.10.
Updates `org.jetbrains.kotlin.jvm` from 2.4.0 to 2.4.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.10</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
<h2>Kotlin 2.4.10-RC2</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.10</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5687445832"><code>5687445</code></a>
Add Changelog for 2.4.10-RC2</li>
<li><a
href="ba30392c45"><code>ba30392</code></a>
[Wasm] Support regenerate unchanged modules flag on KGP</li>
<li><a
href="6307e7310d"><code>6307e73</code></a>
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag</li>
<li><a
href="39d7aee847"><code>39d7aee</code></a>
Add ChangeLog for 2.4.10-RC2</li>
<li><a
href="a2956bed85"><code>a2956be</code></a>
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings</li>
<li><a
href="9b1361ce7a"><code>9b1361c</code></a>
[Gradle] KT-87223: Updated regression test</li>
<li><a
href="a4c153af52"><code>a4c153a</code></a>
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
config</li>
<li><a
href="bc04b90d24"><code>bc04b90</code></a>
Add ChangeLog for 2.4.10-RC</li>
<li><a
href="bbcb94baa2"><code>bbcb94b</code></a>
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...</li>
<li><a
href="6c2c458f1d"><code>6c2c458</code></a>
Scripting: fix jvmTarget processing from script annotations</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.0...v2.4.10">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.4.0 to 2.4.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.plugin.serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.10</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
<h2>Kotlin 2.4.10-RC2</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.10</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5687445832"><code>5687445</code></a>
Add Changelog for 2.4.10-RC2</li>
<li><a
href="ba30392c45"><code>ba30392</code></a>
[Wasm] Support regenerate unchanged modules flag on KGP</li>
<li><a
href="6307e7310d"><code>6307e73</code></a>
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag</li>
<li><a
href="39d7aee847"><code>39d7aee</code></a>
Add ChangeLog for 2.4.10-RC2</li>
<li><a
href="a2956bed85"><code>a2956be</code></a>
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings</li>
<li><a
href="9b1361ce7a"><code>9b1361c</code></a>
[Gradle] KT-87223: Updated regression test</li>
<li><a
href="a4c153af52"><code>a4c153a</code></a>
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
config</li>
<li><a
href="bc04b90d24"><code>bc04b90</code></a>
Add ChangeLog for 2.4.10-RC</li>
<li><a
href="bbcb94baa2"><code>bbcb94b</code></a>
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...</li>
<li><a
href="6c2c458f1d"><code>6c2c458</code></a>
Scripting: fix jvmTarget processing from script annotations</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.0...v2.4.10">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `kotlin` from 2.4.0 to 2.4.10.
Updates `org.jetbrains.kotlin.jvm` from 2.4.0 to 2.4.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.10</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
<h2>Kotlin 2.4.10-RC2</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.10</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5687445832"><code>5687445</code></a>
Add Changelog for 2.4.10-RC2</li>
<li><a
href="ba30392c45"><code>ba30392</code></a>
[Wasm] Support regenerate unchanged modules flag on KGP</li>
<li><a
href="6307e7310d"><code>6307e73</code></a>
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag</li>
<li><a
href="39d7aee847"><code>39d7aee</code></a>
Add ChangeLog for 2.4.10-RC2</li>
<li><a
href="a2956bed85"><code>a2956be</code></a>
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings</li>
<li><a
href="9b1361ce7a"><code>9b1361c</code></a>
[Gradle] KT-87223: Updated regression test</li>
<li><a
href="a4c153af52"><code>a4c153a</code></a>
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
config</li>
<li><a
href="bc04b90d24"><code>bc04b90</code></a>
Add ChangeLog for 2.4.10-RC</li>
<li><a
href="bbcb94baa2"><code>bbcb94b</code></a>
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...</li>
<li><a
href="6c2c458f1d"><code>6c2c458</code></a>
Scripting: fix jvmTarget processing from script annotations</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.0...v2.4.10">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.4.0 to 2.4.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.plugin.serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.10</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
<h2>Kotlin 2.4.10-RC2</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.10</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5687445832"><code>5687445</code></a>
Add Changelog for 2.4.10-RC2</li>
<li><a
href="ba30392c45"><code>ba30392</code></a>
[Wasm] Support regenerate unchanged modules flag on KGP</li>
<li><a
href="6307e7310d"><code>6307e73</code></a>
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag</li>
<li><a
href="39d7aee847"><code>39d7aee</code></a>
Add ChangeLog for 2.4.10-RC2</li>
<li><a
href="a2956bed85"><code>a2956be</code></a>
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings</li>
<li><a
href="9b1361ce7a"><code>9b1361c</code></a>
[Gradle] KT-87223: Updated regression test</li>
<li><a
href="a4c153af52"><code>a4c153a</code></a>
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
config</li>
<li><a
href="bc04b90d24"><code>bc04b90</code></a>
Add ChangeLog for 2.4.10-RC</li>
<li><a
href="bbcb94baa2"><code>bbcb94b</code></a>
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...</li>
<li><a
href="6c2c458f1d"><code>6c2c458</code></a>
Scripting: fix jvmTarget processing from script annotations</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.0...v2.4.10">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `kotlin` from 2.4.0 to 2.4.10.
Updates `org.jetbrains.kotlin.jvm` from 2.4.0 to 2.4.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.10</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
<h2>Kotlin 2.4.10-RC2</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.10</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5687445832"><code>5687445</code></a>
Add Changelog for 2.4.10-RC2</li>
<li><a
href="ba30392c45"><code>ba30392</code></a>
[Wasm] Support regenerate unchanged modules flag on KGP</li>
<li><a
href="6307e7310d"><code>6307e73</code></a>
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag</li>
<li><a
href="39d7aee847"><code>39d7aee</code></a>
Add ChangeLog for 2.4.10-RC2</li>
<li><a
href="a2956bed85"><code>a2956be</code></a>
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings</li>
<li><a
href="9b1361ce7a"><code>9b1361c</code></a>
[Gradle] KT-87223: Updated regression test</li>
<li><a
href="a4c153af52"><code>a4c153a</code></a>
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
config</li>
<li><a
href="bc04b90d24"><code>bc04b90</code></a>
Add ChangeLog for 2.4.10-RC</li>
<li><a
href="bbcb94baa2"><code>bbcb94b</code></a>
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...</li>
<li><a
href="6c2c458f1d"><code>6c2c458</code></a>
Scripting: fix jvmTarget processing from script annotations</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.0...v2.4.10">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.4.0 to 2.4.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.plugin.serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.10</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
<h2>Kotlin 2.4.10-RC2</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.10</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5687445832"><code>5687445</code></a>
Add Changelog for 2.4.10-RC2</li>
<li><a
href="ba30392c45"><code>ba30392</code></a>
[Wasm] Support regenerate unchanged modules flag on KGP</li>
<li><a
href="6307e7310d"><code>6307e73</code></a>
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag</li>
<li><a
href="39d7aee847"><code>39d7aee</code></a>
Add ChangeLog for 2.4.10-RC2</li>
<li><a
href="a2956bed85"><code>a2956be</code></a>
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings</li>
<li><a
href="9b1361ce7a"><code>9b1361c</code></a>
[Gradle] KT-87223: Updated regression test</li>
<li><a
href="a4c153af52"><code>a4c153a</code></a>
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
config</li>
<li><a
href="bc04b90d24"><code>bc04b90</code></a>
Add ChangeLog for 2.4.10-RC</li>
<li><a
href="bbcb94baa2"><code>bbcb94b</code></a>
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...</li>
<li><a
href="6c2c458f1d"><code>6c2c458</code></a>
Scripting: fix jvmTarget processing from script annotations</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.0...v2.4.10">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the kotlin group with 2 updates in the / directory:
[org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin)
and
[org.jetbrains.kotlin:kotlin-serialization](https://github.com/JetBrains/kotlin).
Updates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.4.0 to 2.4.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin:kotlin-gradle-plugin's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.10</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
<h2>Kotlin 2.4.10-RC2</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin:kotlin-gradle-plugin's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.10</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5687445832"><code>5687445</code></a>
Add Changelog for 2.4.10-RC2</li>
<li><a
href="ba30392c45"><code>ba30392</code></a>
[Wasm] Support regenerate unchanged modules flag on KGP</li>
<li><a
href="6307e7310d"><code>6307e73</code></a>
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag</li>
<li><a
href="39d7aee847"><code>39d7aee</code></a>
Add ChangeLog for 2.4.10-RC2</li>
<li><a
href="a2956bed85"><code>a2956be</code></a>
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings</li>
<li><a
href="9b1361ce7a"><code>9b1361c</code></a>
[Gradle] KT-87223: Updated regression test</li>
<li><a
href="a4c153af52"><code>a4c153a</code></a>
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
config</li>
<li><a
href="bc04b90d24"><code>bc04b90</code></a>
Add ChangeLog for 2.4.10-RC</li>
<li><a
href="bbcb94baa2"><code>bbcb94b</code></a>
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...</li>
<li><a
href="6c2c458f1d"><code>6c2c458</code></a>
Scripting: fix jvmTarget processing from script annotations</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.0...v2.4.10">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin:kotlin-serialization` from 2.4.0 to 2.4.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin:kotlin-serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.10</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
<h2>Kotlin 2.4.10-RC2</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin:kotlin-serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.10</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5687445832"><code>5687445</code></a>
Add Changelog for 2.4.10-RC2</li>
<li><a
href="ba30392c45"><code>ba30392</code></a>
[Wasm] Support regenerate unchanged modules flag on KGP</li>
<li><a
href="6307e7310d"><code>6307e73</code></a>
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag</li>
<li><a
href="39d7aee847"><code>39d7aee</code></a>
Add ChangeLog for 2.4.10-RC2</li>
<li><a
href="a2956bed85"><code>a2956be</code></a>
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings</li>
<li><a
href="9b1361ce7a"><code>9b1361c</code></a>
[Gradle] KT-87223: Updated regression test</li>
<li><a
href="a4c153af52"><code>a4c153a</code></a>
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
config</li>
<li><a
href="bc04b90d24"><code>bc04b90</code></a>
Add ChangeLog for 2.4.10-RC</li>
<li><a
href="bbcb94baa2"><code>bbcb94b</code></a>
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...</li>
<li><a
href="6c2c458f1d"><code>6c2c458</code></a>
Scripting: fix jvmTarget processing from script annotations</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.0...v2.4.10">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin:kotlin-serialization` from 2.4.0 to 2.4.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin:kotlin-serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.10</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
<h2>Kotlin 2.4.10-RC2</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin:kotlin-serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.10</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5687445832"><code>5687445</code></a>
Add Changelog for 2.4.10-RC2</li>
<li><a
href="ba30392c45"><code>ba30392</code></a>
[Wasm] Support regenerate unchanged modules flag on KGP</li>
<li><a
href="6307e7310d"><code>6307e73</code></a>
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag</li>
<li><a
href="39d7aee847"><code>39d7aee</code></a>
Add ChangeLog for 2.4.10-RC2</li>
<li><a
href="a2956bed85"><code>a2956be</code></a>
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings</li>
<li><a
href="9b1361ce7a"><code>9b1361c</code></a>
[Gradle] KT-87223: Updated regression test</li>
<li><a
href="a4c153af52"><code>a4c153a</code></a>
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
config</li>
<li><a
href="bc04b90d24"><code>bc04b90</code></a>
Add ChangeLog for 2.4.10-RC</li>
<li><a
href="bbcb94baa2"><code>bbcb94b</code></a>
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...</li>
<li><a
href="6c2c458f1d"><code>6c2c458</code></a>
Scripting: fix jvmTarget processing from script annotations</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.0...v2.4.10">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `mcp-kotlin` from 0.14.0 to 0.15.0.
Updates `io.modelcontextprotocol:kotlin-sdk-client` from 0.14.0 to
0.15.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-client's
releases</a>.</em></p>
<blockquote>
<h2>0.15.0</h2>
<h2>Description</h2>
<p>This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs.</p>
<h3>Breaking Changes</h3>
<p><strong>Concurrent inbound dispatch</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/884">#884</a></p>
<p>Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and <code>notifications/cancelled</code> those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.</p>
<ul>
<li><code>ProtocolOptions</code> / <code>ClientOptions</code> /
<code>ServerOptions</code> gain a <code>handlerCoroutineContext</code>
parameter (defaults to <code>Dispatchers.Default</code>). Concurrency is
bounded internally; there is no opt-out flag by design.</li>
<li><code>RequestHandlerExtra</code> is now a
<code>CoroutineContext.Element</code> and is no longer
user-constructible. It exposes <code>requestId</code>,
<code>method</code>, <code>sendRequest</code>, and
<code>sendNotification</code>, and can be read inside a handler via the
new <code>currentRequestHandlerExtra()</code>.</li>
</ul>
<pre lang="diff"><code>- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
</code></pre>
<p><strong>Duplicate feature names are rejected at registration</strong>
by <a href="https://github.com/devcrocod"><code>@devcrocod</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/883">#883</a></p>
<p><code>addTool</code>/<code>addPrompt</code>/<code>addResource</code>/<code>addResourceTemplate</code>
silently replaced an existing entry and emitted a spurious
<code>list_changed</code> notification. They now throw
<code>IllegalArgumentException</code> and leave the existing
registration intact. The batch variants
(<code>addTools</code>/<code>addPrompts</code>/<code>addResources</code>)
are all-or-nothing. To replace a feature, remove it first.</p>
<pre lang="diff"><code>- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
</code></pre>
<p><strong><code>eventStore</code> removed from
<code>mcpStatelessStreamableHttp</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/909">#909</a></p>
<p>The parameter was never read or written: a stateless endpoint answers
<code>GET</code> with <code>405</code>, so no stream exists to store or
replay events on. The old overload is retained at
<code>DeprecationLevel.ERROR</code> with a <code>ReplaceWith</code>
migration hint. Use <code>mcpStreamableHttp</code> when you need
resumability.</p>
<pre lang="diff"><code> application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
</code></pre>
<h3>Features</h3>
<ul>
<li>Optional SSE heartbeats for Streamable HTTP servers via
<code>mcpStreamableHttp(sseHeartbeatConfig = { ... })</code>, keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by <a
href="https://github.com/UnscientificJsZhai"><code>@UnscientificJsZhai</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/761">#761</a></li>
<li>Accepted form-mode elicitation content is now validated against
<code>requestedSchema</code>; a mismatch fails
<code>createElicitation</code> with <code>McpException</code>
(<code>INVALID_PARAMS</code>) instead of reaching server code unchecked,
by <a href="https://github.com/rea9r"><code>@rea9r</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/896">#896</a></li>
<li>The Streamable HTTP client now sends the standard
<code>Mcp-Method</code> and <code>Mcp-Name</code> POST headers, by <a
href="https://github.com/AndreKalberer"><code>@AndreKalberer</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/894">#894</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Stateless Streamable HTTP now closes its per-request session, fixing
unbounded growth of the session registry and notification subscriptions,
by <a
href="https://github.com/KlyneChrysler"><code>@KlyneChrysler</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/872">#872</a></li>
<li>Streamable HTTP responses keep their status and body when the client
accepts only <code>text/event-stream</code>, by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/911">#911</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="76b8e7d63a"><code>76b8e7d</code></a>
release: 0.15.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/918">#918</a>)</li>
<li><a
href="dab340f9bf"><code>dab340f</code></a>
fix(server): drop inert eventStore from stateless Streamable HTTP (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/909">#909</a>)</li>
<li><a
href="24c3cd3a69"><code>24c3cd3</code></a>
fix(server): match Accept header as media ranges (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/912">#912</a>)</li>
<li><a
href="7fa438ce00"><code>7fa438c</code></a>
feat(client): send MCP standard POST headers (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/894">#894</a>)</li>
<li><a
href="94745e617c"><code>94745e6</code></a>
chore(deps): bump the kotest group across 1 directory with 3 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/915">#915</a>)</li>
<li><a
href="2b494b7637"><code>2b494b7</code></a>
chore(deps): bump the other-dependencies group across 5 directories with
3 up...</li>
<li><a
href="82fe56e1e8"><code>82fe56e</code></a>
fix(server): preserve Streamable HTTP response status and body (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/911">#911</a>)</li>
<li><a
href="a06d699d6c"><code>a06d699</code></a>
feat: SSE heartbeat (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/761">#761</a>)</li>
<li><a
href="cab669b108"><code>cab669b</code></a>
fix: classify malformed request params as invalid params (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/886">#886</a>)</li>
<li><a
href="b6cb547d58"><code>b6cb547</code></a>
fix(server): preserve id on duplicate initialize errors (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/868">#868</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.14.0...0.15.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `io.modelcontextprotocol:kotlin-sdk-server` from 0.14.0 to
0.15.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-server's
releases</a>.</em></p>
<blockquote>
<h2>0.15.0</h2>
<h2>Description</h2>
<p>This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs.</p>
<h3>Breaking Changes</h3>
<p><strong>Concurrent inbound dispatch</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/884">#884</a></p>
<p>Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and <code>notifications/cancelled</code> those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.</p>
<ul>
<li><code>ProtocolOptions</code> / <code>ClientOptions</code> /
<code>ServerOptions</code> gain a <code>handlerCoroutineContext</code>
parameter (defaults to <code>Dispatchers.Default</code>). Concurrency is
bounded internally; there is no opt-out flag by design.</li>
<li><code>RequestHandlerExtra</code> is now a
<code>CoroutineContext.Element</code> and is no longer
user-constructible. It exposes <code>requestId</code>,
<code>method</code>, <code>sendRequest</code>, and
<code>sendNotification</code>, and can be read inside a handler via the
new <code>currentRequestHandlerExtra()</code>.</li>
</ul>
<pre lang="diff"><code>- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
</code></pre>
<p><strong>Duplicate feature names are rejected at registration</strong>
by <a href="https://github.com/devcrocod"><code>@devcrocod</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/883">#883</a></p>
<p><code>addTool</code>/<code>addPrompt</code>/<code>addResource</code>/<code>addResourceTemplate</code>
silently replaced an existing entry and emitted a spurious
<code>list_changed</code> notification. They now throw
<code>IllegalArgumentException</code> and leave the existing
registration intact. The batch variants
(<code>addTools</code>/<code>addPrompts</code>/<code>addResources</code>)
are all-or-nothing. To replace a feature, remove it first.</p>
<pre lang="diff"><code>- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
</code></pre>
<p><strong><code>eventStore</code> removed from
<code>mcpStatelessStreamableHttp</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/909">#909</a></p>
<p>The parameter was never read or written: a stateless endpoint answers
<code>GET</code> with <code>405</code>, so no stream exists to store or
replay events on. The old overload is retained at
<code>DeprecationLevel.ERROR</code> with a <code>ReplaceWith</code>
migration hint. Use <code>mcpStreamableHttp</code> when you need
resumability.</p>
<pre lang="diff"><code> application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
</code></pre>
<h3>Features</h3>
<ul>
<li>Optional SSE heartbeats for Streamable HTTP servers via
<code>mcpStreamableHttp(sseHeartbeatConfig = { ... })</code>, keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by <a
href="https://github.com/UnscientificJsZhai"><code>@UnscientificJsZhai</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/761">#761</a></li>
<li>Accepted form-mode elicitation content is now validated against
<code>requestedSchema</code>; a mismatch fails
<code>createElicitation</code> with <code>McpException</code>
(<code>INVALID_PARAMS</code>) instead of reaching server code unchecked,
by <a href="https://github.com/rea9r"><code>@rea9r</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/896">#896</a></li>
<li>The Streamable HTTP client now sends the standard
<code>Mcp-Method</code> and <code>Mcp-Name</code> POST headers, by <a
href="https://github.com/AndreKalberer"><code>@AndreKalberer</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/894">#894</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Stateless Streamable HTTP now closes its per-request session, fixing
unbounded growth of the session registry and notification subscriptions,
by <a
href="https://github.com/KlyneChrysler"><code>@KlyneChrysler</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/872">#872</a></li>
<li>Streamable HTTP responses keep their status and body when the client
accepts only <code>text/event-stream</code>, by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/911">#911</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="76b8e7d63a"><code>76b8e7d</code></a>
release: 0.15.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/918">#918</a>)</li>
<li><a
href="dab340f9bf"><code>dab340f</code></a>
fix(server): drop inert eventStore from stateless Streamable HTTP (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/909">#909</a>)</li>
<li><a
href="24c3cd3a69"><code>24c3cd3</code></a>
fix(server): match Accept header as media ranges (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/912">#912</a>)</li>
<li><a
href="7fa438ce00"><code>7fa438c</code></a>
feat(client): send MCP standard POST headers (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/894">#894</a>)</li>
<li><a
href="94745e617c"><code>94745e6</code></a>
chore(deps): bump the kotest group across 1 directory with 3 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/915">#915</a>)</li>
<li><a
href="2b494b7637"><code>2b494b7</code></a>
chore(deps): bump the other-dependencies group across 5 directories with
3 up...</li>
<li><a
href="82fe56e1e8"><code>82fe56e</code></a>
fix(server): preserve Streamable HTTP response status and body (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/911">#911</a>)</li>
<li><a
href="a06d699d6c"><code>a06d699</code></a>
feat: SSE heartbeat (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/761">#761</a>)</li>
<li><a
href="cab669b108"><code>cab669b</code></a>
fix: classify malformed request params as invalid params (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/886">#886</a>)</li>
<li><a
href="b6cb547d58"><code>b6cb547</code></a>
fix(server): preserve id on duplicate initialize errors (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/868">#868</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.14.0...0.15.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `mcp-kotlin` from 0.14.0 to 0.15.0.
Updates `io.modelcontextprotocol:kotlin-sdk-client` from 0.14.0 to
0.15.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-client's
releases</a>.</em></p>
<blockquote>
<h2>0.15.0</h2>
<h2>Description</h2>
<p>This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs.</p>
<h3>Breaking Changes</h3>
<p><strong>Concurrent inbound dispatch</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/884">#884</a></p>
<p>Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and <code>notifications/cancelled</code> those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.</p>
<ul>
<li><code>ProtocolOptions</code> / <code>ClientOptions</code> /
<code>ServerOptions</code> gain a <code>handlerCoroutineContext</code>
parameter (defaults to <code>Dispatchers.Default</code>). Concurrency is
bounded internally; there is no opt-out flag by design.</li>
<li><code>RequestHandlerExtra</code> is now a
<code>CoroutineContext.Element</code> and is no longer
user-constructible. It exposes <code>requestId</code>,
<code>method</code>, <code>sendRequest</code>, and
<code>sendNotification</code>, and can be read inside a handler via the
new <code>currentRequestHandlerExtra()</code>.</li>
</ul>
<pre lang="diff"><code>- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
</code></pre>
<p><strong>Duplicate feature names are rejected at registration</strong>
by <a href="https://github.com/devcrocod"><code>@devcrocod</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/883">#883</a></p>
<p><code>addTool</code>/<code>addPrompt</code>/<code>addResource</code>/<code>addResourceTemplate</code>
silently replaced an existing entry and emitted a spurious
<code>list_changed</code> notification. They now throw
<code>IllegalArgumentException</code> and leave the existing
registration intact. The batch variants
(<code>addTools</code>/<code>addPrompts</code>/<code>addResources</code>)
are all-or-nothing. To replace a feature, remove it first.</p>
<pre lang="diff"><code>- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
</code></pre>
<p><strong><code>eventStore</code> removed from
<code>mcpStatelessStreamableHttp</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/909">#909</a></p>
<p>The parameter was never read or written: a stateless endpoint answers
<code>GET</code> with <code>405</code>, so no stream exists to store or
replay events on. The old overload is retained at
<code>DeprecationLevel.ERROR</code> with a <code>ReplaceWith</code>
migration hint. Use <code>mcpStreamableHttp</code> when you need
resumability.</p>
<pre lang="diff"><code> application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
</code></pre>
<h3>Features</h3>
<ul>
<li>Optional SSE heartbeats for Streamable HTTP servers via
<code>mcpStreamableHttp(sseHeartbeatConfig = { ... })</code>, keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by <a
href="https://github.com/UnscientificJsZhai"><code>@UnscientificJsZhai</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/761">#761</a></li>
<li>Accepted form-mode elicitation content is now validated against
<code>requestedSchema</code>; a mismatch fails
<code>createElicitation</code> with <code>McpException</code>
(<code>INVALID_PARAMS</code>) instead of reaching server code unchecked,
by <a href="https://github.com/rea9r"><code>@rea9r</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/896">#896</a></li>
<li>The Streamable HTTP client now sends the standard
<code>Mcp-Method</code> and <code>Mcp-Name</code> POST headers, by <a
href="https://github.com/AndreKalberer"><code>@AndreKalberer</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/894">#894</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Stateless Streamable HTTP now closes its per-request session, fixing
unbounded growth of the session registry and notification subscriptions,
by <a
href="https://github.com/KlyneChrysler"><code>@KlyneChrysler</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/872">#872</a></li>
<li>Streamable HTTP responses keep their status and body when the client
accepts only <code>text/event-stream</code>, by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/911">#911</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="76b8e7d63a"><code>76b8e7d</code></a>
release: 0.15.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/918">#918</a>)</li>
<li><a
href="dab340f9bf"><code>dab340f</code></a>
fix(server): drop inert eventStore from stateless Streamable HTTP (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/909">#909</a>)</li>
<li><a
href="24c3cd3a69"><code>24c3cd3</code></a>
fix(server): match Accept header as media ranges (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/912">#912</a>)</li>
<li><a
href="7fa438ce00"><code>7fa438c</code></a>
feat(client): send MCP standard POST headers (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/894">#894</a>)</li>
<li><a
href="94745e617c"><code>94745e6</code></a>
chore(deps): bump the kotest group across 1 directory with 3 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/915">#915</a>)</li>
<li><a
href="2b494b7637"><code>2b494b7</code></a>
chore(deps): bump the other-dependencies group across 5 directories with
3 up...</li>
<li><a
href="82fe56e1e8"><code>82fe56e</code></a>
fix(server): preserve Streamable HTTP response status and body (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/911">#911</a>)</li>
<li><a
href="a06d699d6c"><code>a06d699</code></a>
feat: SSE heartbeat (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/761">#761</a>)</li>
<li><a
href="cab669b108"><code>cab669b</code></a>
fix: classify malformed request params as invalid params (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/886">#886</a>)</li>
<li><a
href="b6cb547d58"><code>b6cb547</code></a>
fix(server): preserve id on duplicate initialize errors (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/868">#868</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.14.0...0.15.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `io.modelcontextprotocol:kotlin-sdk-server` from 0.14.0 to
0.15.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-server's
releases</a>.</em></p>
<blockquote>
<h2>0.15.0</h2>
<h2>Description</h2>
<p>This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs.</p>
<h3>Breaking Changes</h3>
<p><strong>Concurrent inbound dispatch</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/884">#884</a></p>
<p>Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and <code>notifications/cancelled</code> those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.</p>
<ul>
<li><code>ProtocolOptions</code> / <code>ClientOptions</code> /
<code>ServerOptions</code> gain a <code>handlerCoroutineContext</code>
parameter (defaults to <code>Dispatchers.Default</code>). Concurrency is
bounded internally; there is no opt-out flag by design.</li>
<li><code>RequestHandlerExtra</code> is now a
<code>CoroutineContext.Element</code> and is no longer
user-constructible. It exposes <code>requestId</code>,
<code>method</code>, <code>sendRequest</code>, and
<code>sendNotification</code>, and can be read inside a handler via the
new <code>currentRequestHandlerExtra()</code>.</li>
</ul>
<pre lang="diff"><code>- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
</code></pre>
<p><strong>Duplicate feature names are rejected at registration</strong>
by <a href="https://github.com/devcrocod"><code>@devcrocod</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/883">#883</a></p>
<p><code>addTool</code>/<code>addPrompt</code>/<code>addResource</code>/<code>addResourceTemplate</code>
silently replaced an existing entry and emitted a spurious
<code>list_changed</code> notification. They now throw
<code>IllegalArgumentException</code> and leave the existing
registration intact. The batch variants
(<code>addTools</code>/<code>addPrompts</code>/<code>addResources</code>)
are all-or-nothing. To replace a feature, remove it first.</p>
<pre lang="diff"><code>- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
</code></pre>
<p><strong><code>eventStore</code> removed from
<code>mcpStatelessStreamableHttp</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/909">#909</a></p>
<p>The parameter was never read or written: a stateless endpoint answers
<code>GET</code> with <code>405</code>, so no stream exists to store or
replay events on. The old overload is retained at
<code>DeprecationLevel.ERROR</code> with a <code>ReplaceWith</code>
migration hint. Use <code>mcpStreamableHttp</code> when you need
resumability.</p>
<pre lang="diff"><code> application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
</code></pre>
<h3>Features</h3>
<ul>
<li>Optional SSE heartbeats for Streamable HTTP servers via
<code>mcpStreamableHttp(sseHeartbeatConfig = { ... })</code>, keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by <a
href="https://github.com/UnscientificJsZhai"><code>@UnscientificJsZhai</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/761">#761</a></li>
<li>Accepted form-mode elicitation content is now validated against
<code>requestedSchema</code>; a mismatch fails
<code>createElicitation</code> with <code>McpException</code>
(<code>INVALID_PARAMS</code>) instead of reaching server code unchecked,
by <a href="https://github.com/rea9r"><code>@rea9r</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/896">#896</a></li>
<li>The Streamable HTTP client now sends the standard
<code>Mcp-Method</code> and <code>Mcp-Name</code> POST headers, by <a
href="https://github.com/AndreKalberer"><code>@AndreKalberer</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/894">#894</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Stateless Streamable HTTP now closes its per-request session, fixing
unbounded growth of the session registry and notification subscriptions,
by <a
href="https://github.com/KlyneChrysler"><code>@KlyneChrysler</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/872">#872</a></li>
<li>Streamable HTTP responses keep their status and body when the client
accepts only <code>text/event-stream</code>, by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/911">#911</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="76b8e7d63a"><code>76b8e7d</code></a>
release: 0.15.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/918">#918</a>)</li>
<li><a
href="dab340f9bf"><code>dab340f</code></a>
fix(server): drop inert eventStore from stateless Streamable HTTP (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/909">#909</a>)</li>
<li><a
href="24c3cd3a69"><code>24c3cd3</code></a>
fix(server): match Accept header as media ranges (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/912">#912</a>)</li>
<li><a
href="7fa438ce00"><code>7fa438c</code></a>
feat(client): send MCP standard POST headers (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/894">#894</a>)</li>
<li><a
href="94745e617c"><code>94745e6</code></a>
chore(deps): bump the kotest group across 1 directory with 3 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/915">#915</a>)</li>
<li><a
href="2b494b7637"><code>2b494b7</code></a>
chore(deps): bump the other-dependencies group across 5 directories with
3 up...</li>
<li><a
href="82fe56e1e8"><code>82fe56e</code></a>
fix(server): preserve Streamable HTTP response status and body (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/911">#911</a>)</li>
<li><a
href="a06d699d6c"><code>a06d699</code></a>
feat: SSE heartbeat (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/761">#761</a>)</li>
<li><a
href="cab669b108"><code>cab669b</code></a>
fix: classify malformed request params as invalid params (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/886">#886</a>)</li>
<li><a
href="b6cb547d58"><code>b6cb547</code></a>
fix(server): preserve id on duplicate initialize errors (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/868">#868</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.14.0...0.15.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `mcp-kotlin` from 0.14.0 to 0.15.0.
Updates `io.modelcontextprotocol:kotlin-sdk-server` from 0.14.0 to
0.15.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-server's
releases</a>.</em></p>
<blockquote>
<h2>0.15.0</h2>
<h2>Description</h2>
<p>This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs.</p>
<h3>Breaking Changes</h3>
<p><strong>Concurrent inbound dispatch</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/884">#884</a></p>
<p>Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and <code>notifications/cancelled</code> those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.</p>
<ul>
<li><code>ProtocolOptions</code> / <code>ClientOptions</code> /
<code>ServerOptions</code> gain a <code>handlerCoroutineContext</code>
parameter (defaults to <code>Dispatchers.Default</code>). Concurrency is
bounded internally; there is no opt-out flag by design.</li>
<li><code>RequestHandlerExtra</code> is now a
<code>CoroutineContext.Element</code> and is no longer
user-constructible. It exposes <code>requestId</code>,
<code>method</code>, <code>sendRequest</code>, and
<code>sendNotification</code>, and can be read inside a handler via the
new <code>currentRequestHandlerExtra()</code>.</li>
</ul>
<pre lang="diff"><code>- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
</code></pre>
<p><strong>Duplicate feature names are rejected at registration</strong>
by <a href="https://github.com/devcrocod"><code>@devcrocod</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/883">#883</a></p>
<p><code>addTool</code>/<code>addPrompt</code>/<code>addResource</code>/<code>addResourceTemplate</code>
silently replaced an existing entry and emitted a spurious
<code>list_changed</code> notification. They now throw
<code>IllegalArgumentException</code> and leave the existing
registration intact. The batch variants
(<code>addTools</code>/<code>addPrompts</code>/<code>addResources</code>)
are all-or-nothing. To replace a feature, remove it first.</p>
<pre lang="diff"><code>- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
</code></pre>
<p><strong><code>eventStore</code> removed from
<code>mcpStatelessStreamableHttp</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/909">#909</a></p>
<p>The parameter was never read or written: a stateless endpoint answers
<code>GET</code> with <code>405</code>, so no stream exists to store or
replay events on. The old overload is retained at
<code>DeprecationLevel.ERROR</code> with a <code>ReplaceWith</code>
migration hint. Use <code>mcpStreamableHttp</code> when you need
resumability.</p>
<pre lang="diff"><code> application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
</code></pre>
<h3>Features</h3>
<ul>
<li>Optional SSE heartbeats for Streamable HTTP servers via
<code>mcpStreamableHttp(sseHeartbeatConfig = { ... })</code>, keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by <a
href="https://github.com/UnscientificJsZhai"><code>@UnscientificJsZhai</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/761">#761</a></li>
<li>Accepted form-mode elicitation content is now validated against
<code>requestedSchema</code>; a mismatch fails
<code>createElicitation</code> with <code>McpException</code>
(<code>INVALID_PARAMS</code>) instead of reaching server code unchecked,
by <a href="https://github.com/rea9r"><code>@rea9r</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/896">#896</a></li>
<li>The Streamable HTTP client now sends the standard
<code>Mcp-Method</code> and <code>Mcp-Name</code> POST headers, by <a
href="https://github.com/AndreKalberer"><code>@AndreKalberer</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/894">#894</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Stateless Streamable HTTP now closes its per-request session, fixing
unbounded growth of the session registry and notification subscriptions,
by <a
href="https://github.com/KlyneChrysler"><code>@KlyneChrysler</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/872">#872</a></li>
<li>Streamable HTTP responses keep their status and body when the client
accepts only <code>text/event-stream</code>, by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/911">#911</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="76b8e7d63a"><code>76b8e7d</code></a>
release: 0.15.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/918">#918</a>)</li>
<li><a
href="dab340f9bf"><code>dab340f</code></a>
fix(server): drop inert eventStore from stateless Streamable HTTP (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/909">#909</a>)</li>
<li><a
href="24c3cd3a69"><code>24c3cd3</code></a>
fix(server): match Accept header as media ranges (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/912">#912</a>)</li>
<li><a
href="7fa438ce00"><code>7fa438c</code></a>
feat(client): send MCP standard POST headers (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/894">#894</a>)</li>
<li><a
href="94745e617c"><code>94745e6</code></a>
chore(deps): bump the kotest group across 1 directory with 3 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/915">#915</a>)</li>
<li><a
href="2b494b7637"><code>2b494b7</code></a>
chore(deps): bump the other-dependencies group across 5 directories with
3 up...</li>
<li><a
href="82fe56e1e8"><code>82fe56e</code></a>
fix(server): preserve Streamable HTTP response status and body (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/911">#911</a>)</li>
<li><a
href="a06d699d6c"><code>a06d699</code></a>
feat: SSE heartbeat (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/761">#761</a>)</li>
<li><a
href="cab669b108"><code>cab669b</code></a>
fix: classify malformed request params as invalid params (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/886">#886</a>)</li>
<li><a
href="b6cb547d58"><code>b6cb547</code></a>
fix(server): preserve id on duplicate initialize errors (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/868">#868</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.14.0...0.15.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `io.modelcontextprotocol:kotlin-sdk-client` from 0.14.0 to
0.15.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-client's
releases</a>.</em></p>
<blockquote>
<h2>0.15.0</h2>
<h2>Description</h2>
<p>This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs.</p>
<h3>Breaking Changes</h3>
<p><strong>Concurrent inbound dispatch</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/884">#884</a></p>
<p>Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and <code>notifications/cancelled</code> those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.</p>
<ul>
<li><code>ProtocolOptions</code> / <code>ClientOptions</code> /
<code>ServerOptions</code> gain a <code>handlerCoroutineContext</code>
parameter (defaults to <code>Dispatchers.Default</code>). Concurrency is
bounded internally; there is no opt-out flag by design.</li>
<li><code>RequestHandlerExtra</code> is now a
<code>CoroutineContext.Element</code> and is no longer
user-constructible. It exposes <code>requestId</code>,
<code>method</code>, <code>sendRequest</code>, and
<code>sendNotification</code>, and can be read inside a handler via the
new <code>currentRequestHandlerExtra()</code>.</li>
</ul>
<pre lang="diff"><code>- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
</code></pre>
<p><strong>Duplicate feature names are rejected at registration</strong>
by <a href="https://github.com/devcrocod"><code>@devcrocod</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/883">#883</a></p>
<p><code>addTool</code>/<code>addPrompt</code>/<code>addResource</code>/<code>addResourceTemplate</code>
silently replaced an existing entry and emitted a spurious
<code>list_changed</code> notification. They now throw
<code>IllegalArgumentException</code> and leave the existing
registration intact. The batch variants
(<code>addTools</code>/<code>addPrompts</code>/<code>addResources</code>)
are all-or-nothing. To replace a feature, remove it first.</p>
<pre lang="diff"><code>- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
</code></pre>
<p><strong><code>eventStore</code> removed from
<code>mcpStatelessStreamableHttp</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/909">#909</a></p>
<p>The parameter was never read or written: a stateless endpoint answers
<code>GET</code> with <code>405</code>, so no stream exists to store or
replay events on. The old overload is retained at
<code>DeprecationLevel.ERROR</code> with a <code>ReplaceWith</code>
migration hint. Use <code>mcpStreamableHttp</code> when you need
resumability.</p>
<pre lang="diff"><code> application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
</code></pre>
<h3>Features</h3>
<ul>
<li>Optional SSE heartbeats for Streamable HTTP servers via
<code>mcpStreamableHttp(sseHeartbeatConfig = { ... })</code>, keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by <a
href="https://github.com/UnscientificJsZhai"><code>@UnscientificJsZhai</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/761">#761</a></li>
<li>Accepted form-mode elicitation content is now validated against
<code>requestedSchema</code>; a mismatch fails
<code>createElicitation</code> with <code>McpException</code>
(<code>INVALID_PARAMS</code>) instead of reaching server code unchecked,
by <a href="https://github.com/rea9r"><code>@rea9r</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/896">#896</a></li>
<li>The Streamable HTTP client now sends the standard
<code>Mcp-Method</code> and <code>Mcp-Name</code> POST headers, by <a
href="https://github.com/AndreKalberer"><code>@AndreKalberer</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/894">#894</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Stateless Streamable HTTP now closes its per-request session, fixing
unbounded growth of the session registry and notification subscriptions,
by <a
href="https://github.com/KlyneChrysler"><code>@KlyneChrysler</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/872">#872</a></li>
<li>Streamable HTTP responses keep their status and body when the client
accepts only <code>text/event-stream</code>, by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/911">#911</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="76b8e7d63a"><code>76b8e7d</code></a>
release: 0.15.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/918">#918</a>)</li>
<li><a
href="dab340f9bf"><code>dab340f</code></a>
fix(server): drop inert eventStore from stateless Streamable HTTP (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/909">#909</a>)</li>
<li><a
href="24c3cd3a69"><code>24c3cd3</code></a>
fix(server): match Accept header as media ranges (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/912">#912</a>)</li>
<li><a
href="7fa438ce00"><code>7fa438c</code></a>
feat(client): send MCP standard POST headers (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/894">#894</a>)</li>
<li><a
href="94745e617c"><code>94745e6</code></a>
chore(deps): bump the kotest group across 1 directory with 3 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/915">#915</a>)</li>
<li><a
href="2b494b7637"><code>2b494b7</code></a>
chore(deps): bump the other-dependencies group across 5 directories with
3 up...</li>
<li><a
href="82fe56e1e8"><code>82fe56e</code></a>
fix(server): preserve Streamable HTTP response status and body (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/911">#911</a>)</li>
<li><a
href="a06d699d6c"><code>a06d699</code></a>
feat: SSE heartbeat (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/761">#761</a>)</li>
<li><a
href="cab669b108"><code>cab669b</code></a>
fix: classify malformed request params as invalid params (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/886">#886</a>)</li>
<li><a
href="b6cb547d58"><code>b6cb547</code></a>
fix(server): preserve id on duplicate initialize errors (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/868">#868</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.14.0...0.15.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `io.modelcontextprotocol:kotlin-sdk-testing` from 0.14.0 to
0.15.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-testing's
releases</a>.</em></p>
<blockquote>
<h2>0.15.0</h2>
<h2>Description</h2>
<p>This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs.</p>
<h3>Breaking Changes</h3>
<p><strong>Concurrent inbound dispatch</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/884">#884</a></p>
<p>Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and <code>notifications/cancelled</code> those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.</p>
<ul>
<li><code>ProtocolOptions</code> / <code>ClientOptions</code> /
<code>ServerOptions</code> gain a <code>handlerCoroutineContext</code>
parameter (defaults to <code>Dispatchers.Default</code>). Concurrency is
bounded internally; there is no opt-out flag by design.</li>
<li><code>RequestHandlerExtra</code> is now a
<code>CoroutineContext.Element</code> and is no longer
user-constructible. It exposes <code>requestId</code>,
<code>method</code>, <code>sendRequest</code>, and
<code>sendNotification</code>, and can be read inside a handler via the
new <code>currentRequestHandlerExtra()</code>.</li>
</ul>
<pre lang="diff"><code>- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
</code></pre>
<p><strong>Duplicate feature names are rejected at registration</strong>
by <a href="https://github.com/devcrocod"><code>@devcrocod</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/883">#883</a></p>
<p><code>addTool</code>/<code>addPrompt</code>/<code>addResource</code>/<code>addResourceTemplate</code>
silently replaced an existing entry and emitted a spurious
<code>list_changed</code> notification. They now throw
<code>IllegalArgumentException</code> and leave the existing
registration intact. The batch variants
(<code>addTools</code>/<code>addPrompts</code>/<code>addResources</code>)
are all-or-nothing. To replace a feature, remove it first.</p>
<pre lang="diff"><code>- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
</code></pre>
<p><strong><code>eventStore</code> removed from
<code>mcpStatelessStreamableHttp</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/909">#909</a></p>
<p>The parameter was never read or written: a stateless endpoint answers
<code>GET</code> with <code>405</code>, so no stream exists to store or
replay events on. The old overload is retained at
<code>DeprecationLevel.ERROR</code> with a <code>ReplaceWith</code>
migration hint. Use <code>mcpStreamableHttp</code> when you need
resumability.</p>
<pre lang="diff"><code> application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
</code></pre>
<h3>Features</h3>
<ul>
<li>Optional SSE heartbeats for Streamable HTTP servers via
<code>mcpStreamableHttp(sseHeartbeatConfig = { ... })</code>, keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by <a
href="https://github.com/UnscientificJsZhai"><code>@UnscientificJsZhai</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/761">#761</a></li>
<li>Accepted form-mode elicitation content is now validated against
<code>requestedSchema</code>; a mismatch fails
<code>createElicitation</code> with <code>McpException</code>
(<code>INVALID_PARAMS</code>) instead of reaching server code unchecked,
by <a href="https://github.com/rea9r"><code>@rea9r</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/896">#896</a></li>
<li>The Streamable HTTP client now sends the standard
<code>Mcp-Method</code> and <code>Mcp-Name</code> POST headers, by <a
href="https://github.com/AndreKalberer"><code>@AndreKalberer</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/894">#894</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Stateless Streamable HTTP now closes its per-request session, fixing
unbounded growth of the session registry and notification subscriptions,
by <a
href="https://github.com/KlyneChrysler"><code>@KlyneChrysler</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/872">#872</a></li>
<li>Streamable HTTP responses keep their status and body when the client
accepts only <code>text/event-stream</code>, by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/911">#911</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="76b8e7d63a"><code>76b8e7d</code></a>
release: 0.15.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/918">#918</a>)</li>
<li><a
href="dab340f9bf"><code>dab340f</code></a>
fix(server): drop inert eventStore from stateless Streamable HTTP (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/909">#909</a>)</li>
<li><a
href="24c3cd3a69"><code>24c3cd3</code></a>
fix(server): match Accept header as media ranges (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/912">#912</a>)</li>
<li><a
href="7fa438ce00"><code>7fa438c</code></a>
feat(client): send MCP standard POST headers (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/894">#894</a>)</li>
<li><a
href="94745e617c"><code>94745e6</code></a>
chore(deps): bump the kotest group across 1 directory with 3 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/915">#915</a>)</li>
<li><a
href="2b494b7637"><code>2b494b7</code></a>
chore(deps): bump the other-dependencies group across 5 directories with
3 up...</li>
<li><a
href="82fe56e1e8"><code>82fe56e</code></a>
fix(server): preserve Streamable HTTP response status and body (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/911">#911</a>)</li>
<li><a
href="a06d699d6c"><code>a06d699</code></a>
feat: SSE heartbeat (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/761">#761</a>)</li>
<li><a
href="cab669b108"><code>cab669b</code></a>
fix: classify malformed request params as invalid params (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/886">#886</a>)</li>
<li><a
href="b6cb547d58"><code>b6cb547</code></a>
fix(server): preserve id on duplicate initialize errors (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/868">#868</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.14.0...0.15.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `mcp-kotlin` from 0.14.0 to 0.15.0.
Updates `io.modelcontextprotocol:kotlin-sdk-client` from 0.14.0 to
0.15.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-client's
releases</a>.</em></p>
<blockquote>
<h2>0.15.0</h2>
<h2>Description</h2>
<p>This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs.</p>
<h3>Breaking Changes</h3>
<p><strong>Concurrent inbound dispatch</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/884">#884</a></p>
<p>Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and <code>notifications/cancelled</code> those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.</p>
<ul>
<li><code>ProtocolOptions</code> / <code>ClientOptions</code> /
<code>ServerOptions</code> gain a <code>handlerCoroutineContext</code>
parameter (defaults to <code>Dispatchers.Default</code>). Concurrency is
bounded internally; there is no opt-out flag by design.</li>
<li><code>RequestHandlerExtra</code> is now a
<code>CoroutineContext.Element</code> and is no longer
user-constructible. It exposes <code>requestId</code>,
<code>method</code>, <code>sendRequest</code>, and
<code>sendNotification</code>, and can be read inside a handler via the
new <code>currentRequestHandlerExtra()</code>.</li>
</ul>
<pre lang="diff"><code>- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
</code></pre>
<p><strong>Duplicate feature names are rejected at registration</strong>
by <a href="https://github.com/devcrocod"><code>@devcrocod</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/883">#883</a></p>
<p><code>addTool</code>/<code>addPrompt</code>/<code>addResource</code>/<code>addResourceTemplate</code>
silently replaced an existing entry and emitted a spurious
<code>list_changed</code> notification. They now throw
<code>IllegalArgumentException</code> and leave the existing
registration intact. The batch variants
(<code>addTools</code>/<code>addPrompts</code>/<code>addResources</code>)
are all-or-nothing. To replace a feature, remove it first.</p>
<pre lang="diff"><code>- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
</code></pre>
<p><strong><code>eventStore</code> removed from
<code>mcpStatelessStreamableHttp</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/909">#909</a></p>
<p>The parameter was never read or written: a stateless endpoint answers
<code>GET</code> with <code>405</code>, so no stream exists to store or
replay events on. The old overload is retained at
<code>DeprecationLevel.ERROR</code> with a <code>ReplaceWith</code>
migration hint. Use <code>mcpStreamableHttp</code> when you need
resumability.</p>
<pre lang="diff"><code> application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
</code></pre>
<h3>Features</h3>
<ul>
<li>Optional SSE heartbeats for Streamable HTTP servers via
<code>mcpStreamableHttp(sseHeartbeatConfig = { ... })</code>, keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by <a
href="https://github.com/UnscientificJsZhai"><code>@UnscientificJsZhai</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/761">#761</a></li>
<li>Accepted form-mode elicitation content is now validated against
<code>requestedSchema</code>; a mismatch fails
<code>createElicitation</code> with <code>McpException</code>
(<code>INVALID_PARAMS</code>) instead of reaching server code unchecked,
by <a href="https://github.com/rea9r"><code>@rea9r</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/896">#896</a></li>
<li>The Streamable HTTP client now sends the standard
<code>Mcp-Method</code> and <code>Mcp-Name</code> POST headers, by <a
href="https://github.com/AndreKalberer"><code>@AndreKalberer</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/894">#894</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Stateless Streamable HTTP now closes its per-request session, fixing
unbounded growth of the session registry and notification subscriptions,
by <a
href="https://github.com/KlyneChrysler"><code>@KlyneChrysler</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/872">#872</a></li>
<li>Streamable HTTP responses keep their status and body when the client
accepts only <code>text/event-stream</code>, by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/911">#911</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="76b8e7d63a"><code>76b8e7d</code></a>
release: 0.15.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/918">#918</a>)</li>
<li><a
href="dab340f9bf"><code>dab340f</code></a>
fix(server): drop inert eventStore from stateless Streamable HTTP (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/909">#909</a>)</li>
<li><a
href="24c3cd3a69"><code>24c3cd3</code></a>
fix(server): match Accept header as media ranges (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/912">#912</a>)</li>
<li><a
href="7fa438ce00"><code>7fa438c</code></a>
feat(client): send MCP standard POST headers (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/894">#894</a>)</li>
<li><a
href="94745e617c"><code>94745e6</code></a>
chore(deps): bump the kotest group across 1 directory with 3 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/915">#915</a>)</li>
<li><a
href="2b494b7637"><code>2b494b7</code></a>
chore(deps): bump the other-dependencies group across 5 directories with
3 up...</li>
<li><a
href="82fe56e1e8"><code>82fe56e</code></a>
fix(server): preserve Streamable HTTP response status and body (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/911">#911</a>)</li>
<li><a
href="a06d699d6c"><code>a06d699</code></a>
feat: SSE heartbeat (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/761">#761</a>)</li>
<li><a
href="cab669b108"><code>cab669b</code></a>
fix: classify malformed request params as invalid params (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/886">#886</a>)</li>
<li><a
href="b6cb547d58"><code>b6cb547</code></a>
fix(server): preserve id on duplicate initialize errors (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/868">#868</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.14.0...0.15.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `io.modelcontextprotocol:kotlin-sdk-server` from 0.14.0 to
0.15.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-server's
releases</a>.</em></p>
<blockquote>
<h2>0.15.0</h2>
<h2>Description</h2>
<p>This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs.</p>
<h3>Breaking Changes</h3>
<p><strong>Concurrent inbound dispatch</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/884">#884</a></p>
<p>Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and <code>notifications/cancelled</code> those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.</p>
<ul>
<li><code>ProtocolOptions</code> / <code>ClientOptions</code> /
<code>ServerOptions</code> gain a <code>handlerCoroutineContext</code>
parameter (defaults to <code>Dispatchers.Default</code>). Concurrency is
bounded internally; there is no opt-out flag by design.</li>
<li><code>RequestHandlerExtra</code> is now a
<code>CoroutineContext.Element</code> and is no longer
user-constructible. It exposes <code>requestId</code>,
<code>method</code>, <code>sendRequest</code>, and
<code>sendNotification</code>, and can be read inside a handler via the
new <code>currentRequestHandlerExtra()</code>.</li>
</ul>
<pre lang="diff"><code>- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
</code></pre>
<p><strong>Duplicate feature names are rejected at registration</strong>
by <a href="https://github.com/devcrocod"><code>@devcrocod</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/883">#883</a></p>
<p><code>addTool</code>/<code>addPrompt</code>/<code>addResource</code>/<code>addResourceTemplate</code>
silently replaced an existing entry and emitted a spurious
<code>list_changed</code> notification. They now throw
<code>IllegalArgumentException</code> and leave the existing
registration intact. The batch variants
(<code>addTools</code>/<code>addPrompts</code>/<code>addResources</code>)
are all-or-nothing. To replace a feature, remove it first.</p>
<pre lang="diff"><code>- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
</code></pre>
<p><strong><code>eventStore</code> removed from
<code>mcpStatelessStreamableHttp</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/909">#909</a></p>
<p>The parameter was never read or written: a stateless endpoint answers
<code>GET</code> with <code>405</code>, so no stream exists to store or
replay events on. The old overload is retained at
<code>DeprecationLevel.ERROR</code> with a <code>ReplaceWith</code>
migration hint. Use <code>mcpStreamableHttp</code> when you need
resumability.</p>
<pre lang="diff"><code> application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
</code></pre>
<h3>Features</h3>
<ul>
<li>Optional SSE heartbeats for Streamable HTTP servers via
<code>mcpStreamableHttp(sseHeartbeatConfig = { ... })</code>, keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by <a
href="https://github.com/UnscientificJsZhai"><code>@UnscientificJsZhai</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/761">#761</a></li>
<li>Accepted form-mode elicitation content is now validated against
<code>requestedSchema</code>; a mismatch fails
<code>createElicitation</code> with <code>McpException</code>
(<code>INVALID_PARAMS</code>) instead of reaching server code unchecked,
by <a href="https://github.com/rea9r"><code>@rea9r</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/896">#896</a></li>
<li>The Streamable HTTP client now sends the standard
<code>Mcp-Method</code> and <code>Mcp-Name</code> POST headers, by <a
href="https://github.com/AndreKalberer"><code>@AndreKalberer</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/894">#894</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Stateless Streamable HTTP now closes its per-request session, fixing
unbounded growth of the session registry and notification subscriptions,
by <a
href="https://github.com/KlyneChrysler"><code>@KlyneChrysler</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/872">#872</a></li>
<li>Streamable HTTP responses keep their status and body when the client
accepts only <code>text/event-stream</code>, by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/911">#911</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="76b8e7d63a"><code>76b8e7d</code></a>
release: 0.15.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/918">#918</a>)</li>
<li><a
href="dab340f9bf"><code>dab340f</code></a>
fix(server): drop inert eventStore from stateless Streamable HTTP (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/909">#909</a>)</li>
<li><a
href="24c3cd3a69"><code>24c3cd3</code></a>
fix(server): match Accept header as media ranges (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/912">#912</a>)</li>
<li><a
href="7fa438ce00"><code>7fa438c</code></a>
feat(client): send MCP standard POST headers (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/894">#894</a>)</li>
<li><a
href="94745e617c"><code>94745e6</code></a>
chore(deps): bump the kotest group across 1 directory with 3 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/915">#915</a>)</li>
<li><a
href="2b494b7637"><code>2b494b7</code></a>
chore(deps): bump the other-dependencies group across 5 directories with
3 up...</li>
<li><a
href="82fe56e1e8"><code>82fe56e</code></a>
fix(server): preserve Streamable HTTP response status and body (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/911">#911</a>)</li>
<li><a
href="a06d699d6c"><code>a06d699</code></a>
feat: SSE heartbeat (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/761">#761</a>)</li>
<li><a
href="cab669b108"><code>cab669b</code></a>
fix: classify malformed request params as invalid params (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/886">#886</a>)</li>
<li><a
href="b6cb547d58"><code>b6cb547</code></a>
fix(server): preserve id on duplicate initialize errors (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/868">#868</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.14.0...0.15.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[io.modelcontextprotocol:kotlin-sdk-client](https://github.com/modelcontextprotocol/kotlin-sdk)
from 0.14.0 to 0.15.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-client's
releases</a>.</em></p>
<blockquote>
<h2>0.15.0</h2>
<h2>Description</h2>
<p>This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs.</p>
<h3>Breaking Changes</h3>
<p><strong>Concurrent inbound dispatch</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/884">#884</a></p>
<p>Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and <code>notifications/cancelled</code> those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.</p>
<ul>
<li><code>ProtocolOptions</code> / <code>ClientOptions</code> /
<code>ServerOptions</code> gain a <code>handlerCoroutineContext</code>
parameter (defaults to <code>Dispatchers.Default</code>). Concurrency is
bounded internally; there is no opt-out flag by design.</li>
<li><code>RequestHandlerExtra</code> is now a
<code>CoroutineContext.Element</code> and is no longer
user-constructible. It exposes <code>requestId</code>,
<code>method</code>, <code>sendRequest</code>, and
<code>sendNotification</code>, and can be read inside a handler via the
new <code>currentRequestHandlerExtra()</code>.</li>
</ul>
<pre lang="diff"><code>- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
</code></pre>
<p><strong>Duplicate feature names are rejected at registration</strong>
by <a href="https://github.com/devcrocod"><code>@devcrocod</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/883">#883</a></p>
<p><code>addTool</code>/<code>addPrompt</code>/<code>addResource</code>/<code>addResourceTemplate</code>
silently replaced an existing entry and emitted a spurious
<code>list_changed</code> notification. They now throw
<code>IllegalArgumentException</code> and leave the existing
registration intact. The batch variants
(<code>addTools</code>/<code>addPrompts</code>/<code>addResources</code>)
are all-or-nothing. To replace a feature, remove it first.</p>
<pre lang="diff"><code>- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
</code></pre>
<p><strong><code>eventStore</code> removed from
<code>mcpStatelessStreamableHttp</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/909">#909</a></p>
<p>The parameter was never read or written: a stateless endpoint answers
<code>GET</code> with <code>405</code>, so no stream exists to store or
replay events on. The old overload is retained at
<code>DeprecationLevel.ERROR</code> with a <code>ReplaceWith</code>
migration hint. Use <code>mcpStreamableHttp</code> when you need
resumability.</p>
<pre lang="diff"><code> application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
</code></pre>
<h3>Features</h3>
<ul>
<li>Optional SSE heartbeats for Streamable HTTP servers via
<code>mcpStreamableHttp(sseHeartbeatConfig = { ... })</code>, keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by <a
href="https://github.com/UnscientificJsZhai"><code>@UnscientificJsZhai</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/761">#761</a></li>
<li>Accepted form-mode elicitation content is now validated against
<code>requestedSchema</code>; a mismatch fails
<code>createElicitation</code> with <code>McpException</code>
(<code>INVALID_PARAMS</code>) instead of reaching server code unchecked,
by <a href="https://github.com/rea9r"><code>@rea9r</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/896">#896</a></li>
<li>The Streamable HTTP client now sends the standard
<code>Mcp-Method</code> and <code>Mcp-Name</code> POST headers, by <a
href="https://github.com/AndreKalberer"><code>@AndreKalberer</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/894">#894</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Stateless Streamable HTTP now closes its per-request session, fixing
unbounded growth of the session registry and notification subscriptions,
by <a
href="https://github.com/KlyneChrysler"><code>@KlyneChrysler</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/872">#872</a></li>
<li>Streamable HTTP responses keep their status and body when the client
accepts only <code>text/event-stream</code>, by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/911">#911</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="76b8e7d63a"><code>76b8e7d</code></a>
release: 0.15.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/918">#918</a>)</li>
<li><a
href="dab340f9bf"><code>dab340f</code></a>
fix(server): drop inert eventStore from stateless Streamable HTTP (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/909">#909</a>)</li>
<li><a
href="24c3cd3a69"><code>24c3cd3</code></a>
fix(server): match Accept header as media ranges (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/912">#912</a>)</li>
<li><a
href="7fa438ce00"><code>7fa438c</code></a>
feat(client): send MCP standard POST headers (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/894">#894</a>)</li>
<li><a
href="94745e617c"><code>94745e6</code></a>
chore(deps): bump the kotest group across 1 directory with 3 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/915">#915</a>)</li>
<li><a
href="2b494b7637"><code>2b494b7</code></a>
chore(deps): bump the other-dependencies group across 5 directories with
3 up...</li>
<li><a
href="82fe56e1e8"><code>82fe56e</code></a>
fix(server): preserve Streamable HTTP response status and body (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/911">#911</a>)</li>
<li><a
href="a06d699d6c"><code>a06d699</code></a>
feat: SSE heartbeat (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/761">#761</a>)</li>
<li><a
href="cab669b108"><code>cab669b</code></a>
fix: classify malformed request params as invalid params (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/886">#886</a>)</li>
<li><a
href="b6cb547d58"><code>b6cb547</code></a>
fix(server): preserve id on duplicate initialize errors (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/868">#868</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.14.0...0.15.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the other-dependencies group with 1 update in the
/samples/kotlinlang-mcp-server directory:
[ch.qos.logback:logback-classic](https://github.com/qos-ch/logback).
Updates `ch.qos.logback:logback-classic` from 1.6.0 to 1.6.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/qos-ch/logback/releases">ch.qos.logback:logback-classic's
releases</a>.</em></p>
<blockquote>
<h2>Logback 1.6.1</h2>
<p><strong>2026-07-28 Release of logback version 1.6.1</strong></p>
<p>• In TimeBasedRollingPolicy, when the file option is set, the
intermediate file renamed before asynchronous compression now receives
the target archive name without the compression suffix (e.g.
<code>.gz</code>, <code>.zip</code>, <code>.xz</code>). Previously it
used a nanotime-based <code>.tmp</code> suffix. This makes the file
easier to identify if compression fails during rollover. (See also the
following paragraph.)</p>
<p>• On GZ, ZIP, or XZ compression failure, the original (uncompressed)
log file is no longer deleted. Compression strategies now delete the
source file only after successful compression and emit a warning that
the original was left intact.</p>
<p>• ConsoleAppender with <!-- raw HTML omitted --> now probes JLine's
org.jline.jansi.AnsiConsole first and falls back to the legacy
FuseSource org.fusesource.jansi.AnsiConsole class. This keeps ANSI
coloring working after Jansi moved under the JLine project. The optional
org.jline:jansi-core artifact is declared as a dependency alongside the
existing FuseSource jansi dependency. A preferredJansiClassName property
was added for tests. This issue was reported in <a
href="https://redirect.github.com/qos-ch/logback/issues/1043">issues/1043</a>
by <a href="https://github.com/seonwooj0810">seonwoo_jung</a> who also
provided the relevant PR.</p>
<p>• LayoutWrappingEncoder now reports an error at start() when no
layout is set and guards encode() against a null layout. Previously, a
missing layout (for example after an ignored <!-- raw HTML omitted
-->/<!-- raw HTML omitted -->/<!-- raw HTML omitted --> branch) allowed
the encoder to start and then fail with a NullPointerException on every
event, resulting in silent log loss. This issue was reported in <a
href="https://redirect.github.com/qos-ch/logback/issues/1046">issues/1046</a>
by <a href="https://github.com/seonwooj0810">seonwoo_jung</a> who also
provided the relevant PR.</p>
<p>• FileCollisionAnalyser now detects file collisions involving nested
appenders of SiftingAppender. When the nested file or fileNamePattern
does not textually reference the discriminator key (e.g. ${userId}), a
warning is issued at configuration time naming the appender, the key,
and the shared target. This closes a gap where statically declared file
appenders were checked but sifted nested appenders were not. This
enhancement was contributed in [PR <a
href="https://redirect.github.com/qos-ch/logback/issues/1041">#1041</a>](<a
href="https://redirect.github.com/qos-ch/logback/issues/1041">qos-ch/logback#1041</a>)
by <a href="https://github.com/seonwooj0810">seonwoo_jung</a>.</p>
<p>• More defensive handling in SyslogOutputStream and
SyslogAppenderBase: the close() method now ensures that resources are
closed, writes and flushes check that the underlying resources are in a
valid state and fallback to no-op otherwise.</p>
<p>• A bit-wise identical binary of this version can be reproduced by
building from source code at commit
57759f433000a133088ef0441038963134437fbd associated with the tag
v_1.6.1. The release was built using Java "21" 2023-10-17 LTS
build 21.0.1.+12-LTS-29 under Linux Debian 11.6.</p>
<p>• See <a
href="https://logback.qos.ch/news.html#1.6.1">https://logback.qos.ch/news.html#1.6.1</a>
for the original text.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="57759f4330"><code>57759f4</code></a>
prepare release 1.6.1</li>
<li><a
href="175f99f209"><code>175f99f</code></a>
fix imports</li>
<li><a
href="4b8773ed12"><code>4b8773e</code></a>
add compressionFailureLeavesOriginalFileIntact test for XZ
compression</li>
<li><a
href="cafaf1115f"><code>cafaf11</code></a>
do not delete original file if compression fails</li>
<li><a
href="ee50125b29"><code>ee50125</code></a>
let the temporary file before compression be target file without the .gz
or ....</li>
<li><a
href="5626acc301"><code>5626acc</code></a>
minor refactoring</li>
<li><a
href="d97da4fbc0"><code>d97da4f</code></a>
minor refactoring</li>
<li><a
href="159c045d8f"><code>159c045</code></a>
more defensive coding in SyslogOutputStream and in
SyslogAppenderBase</li>
<li><a
href="9427d6b23d"><code>9427d6b</code></a>
slight refactoring for clarity</li>
<li><a
href="79c4179c0b"><code>79c4179</code></a>
slight refactoring</li>
<li>Additional commits viewable in <a
href="https://github.com/qos-ch/logback/compare/v_1.6.0...v_1.6.1">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from
1.5.38 to 1.6.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/qos-ch/logback/releases">ch.qos.logback:logback-classic's
releases</a>.</em></p>
<blockquote>
<h2>Logback 1.6.1</h2>
<p><strong>2026-07-28 Release of logback version 1.6.1</strong></p>
<p>• In TimeBasedRollingPolicy, when the file option is set, the
intermediate file renamed before asynchronous compression now receives
the target archive name without the compression suffix (e.g.
<code>.gz</code>, <code>.zip</code>, <code>.xz</code>). Previously it
used a nanotime-based <code>.tmp</code> suffix. This makes the file
easier to identify if compression fails during rollover. (See also the
following paragraph.)</p>
<p>• On GZ, ZIP, or XZ compression failure, the original (uncompressed)
log file is no longer deleted. Compression strategies now delete the
source file only after successful compression and emit a warning that
the original was left intact.</p>
<p>• ConsoleAppender with <!-- raw HTML omitted --> now probes JLine's
org.jline.jansi.AnsiConsole first and falls back to the legacy
FuseSource org.fusesource.jansi.AnsiConsole class. This keeps ANSI
coloring working after Jansi moved under the JLine project. The optional
org.jline:jansi-core artifact is declared as a dependency alongside the
existing FuseSource jansi dependency. A preferredJansiClassName property
was added for tests. This issue was reported in <a
href="https://redirect.github.com/qos-ch/logback/issues/1043">issues/1043</a>
by <a href="https://github.com/seonwooj0810">seonwoo_jung</a> who also
provided the relevant PR.</p>
<p>• LayoutWrappingEncoder now reports an error at start() when no
layout is set and guards encode() against a null layout. Previously, a
missing layout (for example after an ignored <!-- raw HTML omitted
-->/<!-- raw HTML omitted -->/<!-- raw HTML omitted --> branch) allowed
the encoder to start and then fail with a NullPointerException on every
event, resulting in silent log loss. This issue was reported in <a
href="https://redirect.github.com/qos-ch/logback/issues/1046">issues/1046</a>
by <a href="https://github.com/seonwooj0810">seonwoo_jung</a> who also
provided the relevant PR.</p>
<p>• FileCollisionAnalyser now detects file collisions involving nested
appenders of SiftingAppender. When the nested file or fileNamePattern
does not textually reference the discriminator key (e.g. ${userId}), a
warning is issued at configuration time naming the appender, the key,
and the shared target. This closes a gap where statically declared file
appenders were checked but sifted nested appenders were not. This
enhancement was contributed in [PR <a
href="https://redirect.github.com/qos-ch/logback/issues/1041">#1041</a>](<a
href="https://redirect.github.com/qos-ch/logback/issues/1041">qos-ch/logback#1041</a>)
by <a href="https://github.com/seonwooj0810">seonwoo_jung</a>.</p>
<p>• More defensive handling in SyslogOutputStream and
SyslogAppenderBase: the close() method now ensures that resources are
closed, writes and flushes check that the underlying resources are in a
valid state and fallback to no-op otherwise.</p>
<p>• A bit-wise identical binary of this version can be reproduced by
building from source code at commit
57759f433000a133088ef0441038963134437fbd associated with the tag
v_1.6.1. The release was built using Java "21" 2023-10-17 LTS
build 21.0.1.+12-LTS-29 under Linux Debian 11.6.</p>
<p>• See <a
href="https://logback.qos.ch/news.html#1.6.1">https://logback.qos.ch/news.html#1.6.1</a>
for the original text.</p>
<h2>Logback 1.6.0</h2>
<p><strong>2026-07-23 Release of logback version 1.6.0</strong></p>
<p>• Removed certain deprecated variables, methods, and classes. For the
list of removed members see <a
href="https://logback.qos.ch/notes/release_1.6.0.txt">release_1.6.0.txt.</a></p>
<p>• In <code>AsyncAppenderBase</code>, the
<code>put(ILoggingEvent)</code> method now has the protected modifier to
allow access from derived classes. This change was requested by Thomas
Skjølberg in <a
href="https://redirect.github.com/qos-ch/logback/pull/1053">pr#1053</a>.</p>
<p>• Bump SLF4J dependency to version 2.0.18.</p>
<p>• <strong>See also the overview of the <a
href="https://logback.qos.ch/news.html#latest_stable">1.6.x
series</a>.</strong></p>
<p>• A bit-wise identical binary of this version can be reproduced by
building from source code at commit
b07adf36019b51a10f824fdd94009985c587b1d3 associated with the tag
v_1.6.0. The release was built using Java "21" 2023-10-17 LTS
build 21.0.1.+12-LTS-29 under Linux Debian 11.6.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="57759f4330"><code>57759f4</code></a>
prepare release 1.6.1</li>
<li><a
href="175f99f209"><code>175f99f</code></a>
fix imports</li>
<li><a
href="4b8773ed12"><code>4b8773e</code></a>
add compressionFailureLeavesOriginalFileIntact test for XZ
compression</li>
<li><a
href="cafaf1115f"><code>cafaf11</code></a>
do not delete original file if compression fails</li>
<li><a
href="ee50125b29"><code>ee50125</code></a>
let the temporary file before compression be target file without the .gz
or ....</li>
<li><a
href="5626acc301"><code>5626acc</code></a>
minor refactoring</li>
<li><a
href="d97da4fbc0"><code>d97da4f</code></a>
minor refactoring</li>
<li><a
href="159c045d8f"><code>159c045</code></a>
more defensive coding in SyslogOutputStream and in
SyslogAppenderBase</li>
<li><a
href="9427d6b23d"><code>9427d6b</code></a>
slight refactoring for clarity</li>
<li><a
href="79c4179c0b"><code>79c4179</code></a>
slight refactoring</li>
<li>Additional commits viewable in <a
href="https://github.com/qos-ch/logback/compare/v_1.5.38...v_1.6.1">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Removes the `eventStore` parameter from `mcpStatelessStreamableHttp`,
where it was never read or written.
closes#908
## Breaking Changes
Source-breaking only
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
The header is now parsed into media ranges (`parseHeaderValue` +
`ContentType.match`)
## Breaking Changes
none
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Problem
SEP-2243 requires Streamable HTTP clients to mirror applicable JSON-RPC
request metadata into standard HTTP headers. The Kotlin client currently
sends `Mcp-Protocol-Version` and session metadata but does not emit
`Mcp-Method` or `Mcp-Name`.
## Solution
- Add `Mcp-Method` for JSON-RPC requests and notifications.
- Add `Mcp-Name` from a string `params.name`, falling back to a string
`params.uri`.
- Omit both headers for JSON-RPC responses.
- Add focused transport tests for name-, URI-, notification-, and
response-based behavior.
## Validation
- `.\gradlew.bat :kotlin-sdk-client:jvmTest --tests
"io.modelcontextprotocol.kotlin.sdk.client.streamable.http.StreamableHttpClientTransportTest"`
- `.\gradlew.bat :kotlin-sdk-client:ktlintCheck
:kotlin-sdk-client:detekt :kotlin-sdk-client:apiCheck`
- `git diff --check`
Closes#787
AI assistance was used while preparing this PR. I reviewed the final
change, ran the validation listed above, and take responsibility for it.
---------
Co-authored-by: Pavel Gorgulov <devcrocod@gmail.com>
Streamable HTTP responses now keep their status when the client accepts
only `text/event-stream`.
## How Has This Been Tested?
New `StreamableHttpResponseDeliveryTest`
## Breaking Changes
None
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Summary
Adds optional SSE heartbeat configuration for streamable HTTP MCP server
connections.
This lets `Application.mcpStreamableHttp` callers pass Ktor's
`Heartbeat` configuration for SSE streams, including heartbeat period
and event payload. Heartbeats remain disabled by default, preserving the
existing stream behavior unless the new option is explicitly provided.
## Motivation and Context
Some MCP clients need heartbeat messages on SSE connections to keep the
connection alive. Without those heartbeats, the client may proactively
disconnect from the MCP server. MCP server developers need a way to
configure an SSE heartbeat mechanism so they can avoid unexpected client
disconnects.
In my case, my MCP server was consistently disconnected by Gemini CLI. I
worked around the issue with some fallback approaches, but I believe the
best implementation is to add heartbeat support by using Ktor's built-in
API.
## Implementation Notes
- Added a function overload of `Application.mcpStreamableHttp` to
introduce heartbeat parameter `sseHeartbeatConfig: (Heartbeat.() ->
Unit)?`.
- Applied the configuration inside the Ktor `sse { ... }` block before
handling the existing streamable HTTP transport request.
- Updated the server API dump for the new public API surface.
## How Has This Been Tested?
Added `StreamableHttpHeartbeatIntegrationTest` covering:
- Configured GET SSE streams apply the provided heartbeat configuration.
- GET SSE streams do not send default heartbeats when
`sseHeartbeatConfig` is omitted.
- Configured GET SSE streams emit heartbeat events repeatedly.
- Legacy MCP over SSE APIs do not expose the new heartbeat
configuration.
Verified locally with:
```bash
./gradlew :integration-test:jvmTest --tests "io.modelcontextprotocol.kotlin.sdk.integration.streamablehttp.StreamableHttpHeartbeatIntegrationTest"
```
Result: `BUILD SUCCESSFUL`.
## Breaking Changes
None.
This change adds a new `Application.mcpStreamableHttp` overload that
accepts
`sseHeartbeatConfig: (Heartbeat.() -> Unit)?` while keeping the existing
overload
unchanged. Existing callers continue to compile and keep the previous
behavior:
SSE heartbeats are not sent unless the new overload is used with an
explicit
heartbeat configuration.
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
Heartbeat behavior is delegated to Ktor's SSE heartbeat support, so
applications can use the same configuration semantics they would use in
native Ktor SSE routes.
Related issue: [SSE needs a heartbeat #344
](https://github.com/modelcontextprotocol/kotlin-sdk/issues/344)
---------
Co-authored-by: Pavel Gorgulov <devcrocod@gmail.com>
## Summary
Fixes#866.
## Changes
- Preserve the parsed JSON-RPC request id when Streamable HTTP rejects a
duplicate `initialize` request.
- Keep pre-parse and transport-level rejection paths unchanged when the
request id is not available.
- Extend the duplicate-initialize regression test to assert the error
response id as well as the HTTP status.
## Verification
```bash
./gradlew :kotlin-sdk-server:jvmTest --tests 'io.modelcontextprotocol.kotlin.sdk.server.StreamableHttpServerTransportTest.second initialization request returns JSON-RPC error with request id'
./gradlew :kotlin-sdk-server:jvmTest --tests 'io.modelcontextprotocol.kotlin.sdk.server.StreamableHttpServerTransportTest'
./gradlew :kotlin-sdk-server:jvmTest
./gradlew :kotlin-sdk-server:ktlintCheck :kotlin-sdk-server:detekt
```
Co-authored-by: Pavel Gorgulov <devcrocod@gmail.com>
Reject duplicate feature registration instead of silently overwriting
the existing entry.
## Motivation and Context
`FeatureRegistry.add`/`addAll` silently replaced a feature registered
under the same key and emitted a spurious `list_changed` notification.
Tool/prompt names and resource URIs are unique identifiers in MCP, and
the TypeScript SDK already rejects duplicates at registration time
(`Tool X is already registered`).
- `addTool`/`addPrompt`/`addResource`/`addResourceTemplate` now throw
`IllegalArgumentException` on a duplicate name/URI; the existing
registration stays intact and no notification is emitted.
- `addTools`/`addPrompts`/`addResources` are all-or-nothing: batches
with intra-batch duplicates or conflicts with existing keys are rejected
without registering anything.
- To replace a feature, remove it first (`removeTool` + `addTool`),
matching the TypeScript SDK's remove-then-re-register path. No new
public API.
## How Has This Been Tested?
New `FeatureRegistryTest` unit suite (duplicate rejection, batch
atomicity, no notification on rejection, re-add after remove) plus
integration tests for tools, prompts, resources, and resource templates.
The check also surfaced a real duplicate `addResource` in
`AbstractResourceIntegrationTest`, fixed here. `jvmTest` (all modules),
`apiCheck`, `ktlintCheck`, and `detekt` pass locally.
## Breaking Changes
No public API signature changes (`apiCheck` passes against the existing
dump). Behavioral: registering a duplicate name/URI now throws
`IllegalArgumentException` instead of silently overwriting; remove the
feature first to replace it.
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Validate accepted form-mode elicitation `content` against the
`requestedSchema` on the server, rejecting mismatches with an
`INVALID_PARAMS` error.
fixes#895
<!-- Provide a brief summary of your changes -->
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
`createElicitation` returned accepted content to server code as-is. The
specification's
form-mode security guidance says "Servers SHOULD validate received data
matches the requested
schema" ([2025-11-25, Form Mode
Security](https://modelcontextprotocol.io/specification/2025-11-25/client/elicitation#form-mode-security)).
Comparable validation already exists in the TypeScript SDK's
`elicitInput` and Python's `elicit_with_validation` helper. Details and
design notes are in #895.
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
New unit tests for the validator and integration tests over an in-memory
client–server pair.
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
No API changes. Behavioral note: an accepted form-mode response that
does not match the requested schema now fails `createElicitation` with
`McpException` (`INVALID_PARAMS`) instead of being returned to the
caller.
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Co-authored-by: Pavel Gorgulov <devcrocod@gmail.com>
Bumps [org.jetbrains.kotlin.jvm](https://github.com/JetBrains/kotlin)
from 2.4.0 to 2.4.10.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.10</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
<h2>Kotlin 2.4.10-RC2</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.10</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a>
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilation</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a>
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a>
K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for
annotation arguments referencing a const val</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a>
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operator</li>
</ul>
<h3>Compose Compiler</h3>
<ul>
<li><a
href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a>
Compose Compiler 2.4: classes previously inferred <code>stable</code>
now reported <code>runtime</code>/<code>Uncertain</code></li>
</ul>
<h3>Klibs</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a>
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a>
Introduce <code>kotlinr</code> in the Kotlin distribution</li>
</ul>
<h3>Tools. Gradle. BCV</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a>
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a>
jsBrowserTest fails with "exited with errors (exit code:
1)"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a>
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to fail</li>
</ul>
<h3>Tools. Gradle. Multiplatform</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a>
False positive warning for JS and Wasm compilations when CRI is
enabled</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a>
<code>@file</code>:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a>
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scripts</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5687445832"><code>5687445</code></a>
Add Changelog for 2.4.10-RC2</li>
<li><a
href="ba30392c45"><code>ba30392</code></a>
[Wasm] Support regenerate unchanged modules flag on KGP</li>
<li><a
href="6307e7310d"><code>6307e73</code></a>
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag</li>
<li><a
href="39d7aee847"><code>39d7aee</code></a>
Add ChangeLog for 2.4.10-RC2</li>
<li><a
href="a2956bed85"><code>a2956be</code></a>
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings</li>
<li><a
href="9b1361ce7a"><code>9b1361c</code></a>
[Gradle] KT-87223: Updated regression test</li>
<li><a
href="a4c153af52"><code>a4c153a</code></a>
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
config</li>
<li><a
href="bc04b90d24"><code>bc04b90</code></a>
Add ChangeLog for 2.4.10-RC</li>
<li><a
href="bbcb94baa2"><code>bbcb94b</code></a>
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...</li>
<li><a
href="6c2c458f1d"><code>6c2c458</code></a>
Scripting: fix jvmTarget processing from script annotations</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.4.0...v2.4.10">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Clear the recently-cancelled request id buffer in `doClose` so
connection teardown fully resets per-request bookkeeping.
## Motivation and Context
Follow-up to #884. `doClose` already resets `_responseHandlers`,
`_progressHandlers`, and `inFlightRequestJobs`, but left
`recentlyCancelledRequestIds` populated across a close. This aligns
teardown to clear all Protocol-scoped per-request state.
Not a correctness bug: the buffer is bounded (256) and self-evicting,
request ids are random UUIDs so stale entries cannot false-match a new
connection, and the post-close `onMessage` guard drops late messages
from the old transport before the buffer is consulted. The change
removes the lone asymmetry in `doClose`.
## How Has This Been Tested?
- `./gradlew :kotlin-sdk-core:compileKotlinJvm`
- `./gradlew :kotlin-sdk-core:jvmTest --tests "*ProtocolTest*"`
## Breaking Changes
None.
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
`recentlyCancelledRequestIds` is Protocol-scoped (like
`_responseHandlers`/`_progressHandlers`), so it is reset in `doClose`
rather than on the per-connection `Connection` object.
Bumps
[ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from
1.5.37 to 1.5.38.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/qos-ch/logback/releases">ch.qos.logback:logback-classic's
releases</a>.</em></p>
<blockquote>
<h2>Logback 1.5.38</h2>
<p><strong>2026-07-09 Release of logback version 1.5.38</strong></p>
<p>• In <code>HardenedObjectInputStream</code>, fixed a typo preventing
<code>Throwable</code> objects from being white-filtered. This issue was
reported in [PR <a
href="https://redirect.github.com/qos-ch/logback/issues/1045">#1045</a>](<a
href="https://redirect.github.com/qos-ch/logback/pull/1045">qos-ch/logback#1045</a>)
by <a href="https://github.com/t0rchwo0d">t0rchwo0d</a>.</p>
<p>• A bitwise identical binary of this version can be reproduced by
building from source code at commit
d04984a41fce42977466f45a2f076f0ee5cc4207 associated with the tag
v_1.5.38. Release built using Java "21" 2023-10-17 LTS build
21.0.1.+12-LTS-29 under Linux Debian 11.6.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d04984a41f"><code>d04984a</code></a>
prepare release 1.5.38</li>
<li><a
href="4fffda6549"><code>4fffda6</code></a>
updateversion of maven-gpg-plugin</li>
<li><a
href="7ee48a17be"><code>7ee48a1</code></a>
Fixed a typo where java,lang.Throwable was written with a comma instead
of a ...</li>
<li><a
href="84580a24e6"><code>84580a2</code></a>
remove license profile</li>
<li><a
href="f817c8de7d"><code>f817c8d</code></a>
start work on 1.5.28-SNAPSHOT</li>
<li>See full diff in <a
href="https://github.com/qos-ch/logback/compare/v_1.5.37...v_1.5.38">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
fixes#786
stateless streamable http endpoint never closed its per request session,
so the session registry and notification subscriptions grew forever. now
the session is closed in a finally block after each request, which
triggers the existing cleanup. also removed the per request
server.onClose logging callback that accumulated on shared servers.
added tests proving sessions are removed after normal and rejected
requests. jvmTest, ktlint, detekt, apiCheck all pass. no public api
changes.
Co-authored-by: Pavel Gorgulov <devcrocod@gmail.com>
Make inbound message handling concurrent after the initialization
handshake, so a slow or peer-awaiting handler no longer blocks other
messages on the same connection
fixes#176, #572
## Motivation and Context
Inbound messages were processed serially on the transport read loop. One
slow or peer-awaiting request handler (sampling, elicitation, roots)
blocked every later message on that connection, including the responses
and `notifications/cancelled` those handlers depend on which could
deadlock request/response flows.
## How Has This Been Tested?
New and old tests
## Breaking Changes
- after the handshake, inbound handlers may run concurrently (processing
stays serial during initialization). There is no opt-out flag by design,
concurrency is bounded by `maxConcurrentHandlers` /
`maxInFlightHandlers`.
- `ProtocolOptions` / `ClientOptions` / `ServerOptions` gain new
parameters with defaults
- `RequestHandlerExtra` is now a coroutine-context element and is no
longer user-constructible
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
`ChannelTransportTest` connected both sides concurrently, which is racy.
`ChannelTransport` starts delivering inbound messages when its read loop
launches, which happens before `start()` marks the transport
`Operational`. The two run on different dispatchers, so the client's
`initialize` could reach the server read loop first and the session's
`InitializeResult` was then rejected by the send state gate with
`Transport is not ready`. Measured ~3 failures in 600 rounds.
`createSession()` does not await the handshake, so creating the session
first is enough to order the two. This also matches the usage shown in
`createLinkedPair()`'s KDoc.
Not addressed here: the transport itself should not deliver inbound
messages before it is `Operational`. Fixing that needs a
post-`Operational` hook on `AbstractClientTransport` that the read loop
awaits.
Bumps the kotlin group with 2 updates in the / directory:
[org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin)
and
[org.jetbrains.kotlin:kotlin-serialization](https://github.com/JetBrains/kotlin).
Updates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.3.21 to 2.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin:kotlin-gradle-plugin's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.0</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin:kotlin-gradle-plugin's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.0</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<h3>Analysis API. PSI</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="add726ca8c"><code>add726c</code></a>
Add ChangeLog for 2.4.0-RC2</li>
<li><a
href="69a4a81ef2"><code>69a4a81</code></a>
[Wasm] Add binaryen per-file arguments</li>
<li><a
href="8907c635d4"><code>8907c63</code></a>
[KGP] Suppress duplicate compiler warning output when --warning-mode=all
is a...</li>
<li><a
href="f9bef128ea"><code>f9bef12</code></a>
[KGP] Add failing test for duplicate compiler warning output via
Problems API</li>
<li><a
href="7fe49c227a"><code>7fe49c2</code></a>
KT-86268: Use 2.4.0 toolchain for abiValidation with older CVs</li>
<li><a
href="13d25e2c58"><code>13d25e2</code></a>
KT-86268: Regression test added</li>
<li><a
href="f7d1a76541"><code>f7d1a76</code></a>
[JKlib] Fix JAR deserializer configuration.</li>
<li><a
href="5cec663aff"><code>5cec663</code></a>
[JKlib] Wire up JvmBuiltInClassDescriptorFactory</li>
<li><a
href="ef146114de"><code>ef14611</code></a>
Make the default stability of non-final classes <code>Unknown</code>
instead of <code>Stable</code></li>
<li><a
href="d76473afd2"><code>d76473a</code></a>
[Gradle] Fix GeneralNativeIT.shouldAllowToOverrideDownloadUrl test
failures</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin:kotlin-serialization` from 2.3.21 to 2.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin:kotlin-serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.0</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin:kotlin-serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.0</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<h3>Analysis API. PSI</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="add726ca8c"><code>add726c</code></a>
Add ChangeLog for 2.4.0-RC2</li>
<li><a
href="69a4a81ef2"><code>69a4a81</code></a>
[Wasm] Add binaryen per-file arguments</li>
<li><a
href="8907c635d4"><code>8907c63</code></a>
[KGP] Suppress duplicate compiler warning output when --warning-mode=all
is a...</li>
<li><a
href="f9bef128ea"><code>f9bef12</code></a>
[KGP] Add failing test for duplicate compiler warning output via
Problems API</li>
<li><a
href="7fe49c227a"><code>7fe49c2</code></a>
KT-86268: Use 2.4.0 toolchain for abiValidation with older CVs</li>
<li><a
href="13d25e2c58"><code>13d25e2</code></a>
KT-86268: Regression test added</li>
<li><a
href="f7d1a76541"><code>f7d1a76</code></a>
[JKlib] Fix JAR deserializer configuration.</li>
<li><a
href="5cec663aff"><code>5cec663</code></a>
[JKlib] Wire up JvmBuiltInClassDescriptorFactory</li>
<li><a
href="ef146114de"><code>ef14611</code></a>
Make the default stability of non-final classes <code>Unknown</code>
instead of <code>Stable</code></li>
<li><a
href="d76473afd2"><code>d76473a</code></a>
[Gradle] Fix GeneralNativeIT.shouldAllowToOverrideDownloadUrl test
failures</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin:kotlin-serialization` from 2.3.21 to 2.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin:kotlin-serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.0</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin:kotlin-serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.0</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<h3>Analysis API. PSI</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="add726ca8c"><code>add726c</code></a>
Add ChangeLog for 2.4.0-RC2</li>
<li><a
href="69a4a81ef2"><code>69a4a81</code></a>
[Wasm] Add binaryen per-file arguments</li>
<li><a
href="8907c635d4"><code>8907c63</code></a>
[KGP] Suppress duplicate compiler warning output when --warning-mode=all
is a...</li>
<li><a
href="f9bef128ea"><code>f9bef12</code></a>
[KGP] Add failing test for duplicate compiler warning output via
Problems API</li>
<li><a
href="7fe49c227a"><code>7fe49c2</code></a>
KT-86268: Use 2.4.0 toolchain for abiValidation with older CVs</li>
<li><a
href="13d25e2c58"><code>13d25e2</code></a>
KT-86268: Regression test added</li>
<li><a
href="f7d1a76541"><code>f7d1a76</code></a>
[JKlib] Fix JAR deserializer configuration.</li>
<li><a
href="5cec663aff"><code>5cec663</code></a>
[JKlib] Wire up JvmBuiltInClassDescriptorFactory</li>
<li><a
href="ef146114de"><code>ef14611</code></a>
Make the default stability of non-final classes <code>Unknown</code>
instead of <code>Stable</code></li>
<li><a
href="d76473afd2"><code>d76473a</code></a>
[Gradle] Fix GeneralNativeIT.shouldAllowToOverrideDownloadUrl test
failures</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.0">compare
view</a></li>
</ul>
</details>
<br />
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: devcrocod <devcrocod@gmail.com>
Bumps `kotlin` from 2.3.21 to 2.4.0.
Updates `org.jetbrains.kotlin.jvm` from 2.3.21 to 2.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.0</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.0</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<h3>Analysis API. PSI</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="add726ca8c"><code>add726c</code></a>
Add ChangeLog for 2.4.0-RC2</li>
<li><a
href="69a4a81ef2"><code>69a4a81</code></a>
[Wasm] Add binaryen per-file arguments</li>
<li><a
href="8907c635d4"><code>8907c63</code></a>
[KGP] Suppress duplicate compiler warning output when --warning-mode=all
is a...</li>
<li><a
href="f9bef128ea"><code>f9bef12</code></a>
[KGP] Add failing test for duplicate compiler warning output via
Problems API</li>
<li><a
href="7fe49c227a"><code>7fe49c2</code></a>
KT-86268: Use 2.4.0 toolchain for abiValidation with older CVs</li>
<li><a
href="13d25e2c58"><code>13d25e2</code></a>
KT-86268: Regression test added</li>
<li><a
href="f7d1a76541"><code>f7d1a76</code></a>
[JKlib] Fix JAR deserializer configuration.</li>
<li><a
href="5cec663aff"><code>5cec663</code></a>
[JKlib] Wire up JvmBuiltInClassDescriptorFactory</li>
<li><a
href="ef146114de"><code>ef14611</code></a>
Make the default stability of non-final classes <code>Unknown</code>
instead of <code>Stable</code></li>
<li><a
href="d76473afd2"><code>d76473a</code></a>
[Gradle] Fix GeneralNativeIT.shouldAllowToOverrideDownloadUrl test
failures</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.3.21 to 2.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.plugin.serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.0</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.0</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<h3>Analysis API. PSI</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="add726ca8c"><code>add726c</code></a>
Add ChangeLog for 2.4.0-RC2</li>
<li><a
href="69a4a81ef2"><code>69a4a81</code></a>
[Wasm] Add binaryen per-file arguments</li>
<li><a
href="8907c635d4"><code>8907c63</code></a>
[KGP] Suppress duplicate compiler warning output when --warning-mode=all
is a...</li>
<li><a
href="f9bef128ea"><code>f9bef12</code></a>
[KGP] Add failing test for duplicate compiler warning output via
Problems API</li>
<li><a
href="7fe49c227a"><code>7fe49c2</code></a>
KT-86268: Use 2.4.0 toolchain for abiValidation with older CVs</li>
<li><a
href="13d25e2c58"><code>13d25e2</code></a>
KT-86268: Regression test added</li>
<li><a
href="f7d1a76541"><code>f7d1a76</code></a>
[JKlib] Fix JAR deserializer configuration.</li>
<li><a
href="5cec663aff"><code>5cec663</code></a>
[JKlib] Wire up JvmBuiltInClassDescriptorFactory</li>
<li><a
href="ef146114de"><code>ef14611</code></a>
Make the default stability of non-final classes <code>Unknown</code>
instead of <code>Stable</code></li>
<li><a
href="d76473afd2"><code>d76473a</code></a>
[Gradle] Fix GeneralNativeIT.shouldAllowToOverrideDownloadUrl test
failures</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `kotlin` from 2.3.21 to 2.4.0.
Updates `org.jetbrains.kotlin.jvm` from 2.3.21 to 2.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.0</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.0</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<h3>Analysis API. PSI</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="add726ca8c"><code>add726c</code></a>
Add ChangeLog for 2.4.0-RC2</li>
<li><a
href="69a4a81ef2"><code>69a4a81</code></a>
[Wasm] Add binaryen per-file arguments</li>
<li><a
href="8907c635d4"><code>8907c63</code></a>
[KGP] Suppress duplicate compiler warning output when --warning-mode=all
is a...</li>
<li><a
href="f9bef128ea"><code>f9bef12</code></a>
[KGP] Add failing test for duplicate compiler warning output via
Problems API</li>
<li><a
href="7fe49c227a"><code>7fe49c2</code></a>
KT-86268: Use 2.4.0 toolchain for abiValidation with older CVs</li>
<li><a
href="13d25e2c58"><code>13d25e2</code></a>
KT-86268: Regression test added</li>
<li><a
href="f7d1a76541"><code>f7d1a76</code></a>
[JKlib] Fix JAR deserializer configuration.</li>
<li><a
href="5cec663aff"><code>5cec663</code></a>
[JKlib] Wire up JvmBuiltInClassDescriptorFactory</li>
<li><a
href="ef146114de"><code>ef14611</code></a>
Make the default stability of non-final classes <code>Unknown</code>
instead of <code>Stable</code></li>
<li><a
href="d76473afd2"><code>d76473a</code></a>
[Gradle] Fix GeneralNativeIT.shouldAllowToOverrideDownloadUrl test
failures</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.3.21 to 2.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.plugin.serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.0</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.0</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<h3>Analysis API. PSI</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="add726ca8c"><code>add726c</code></a>
Add ChangeLog for 2.4.0-RC2</li>
<li><a
href="69a4a81ef2"><code>69a4a81</code></a>
[Wasm] Add binaryen per-file arguments</li>
<li><a
href="8907c635d4"><code>8907c63</code></a>
[KGP] Suppress duplicate compiler warning output when --warning-mode=all
is a...</li>
<li><a
href="f9bef128ea"><code>f9bef12</code></a>
[KGP] Add failing test for duplicate compiler warning output via
Problems API</li>
<li><a
href="7fe49c227a"><code>7fe49c2</code></a>
KT-86268: Use 2.4.0 toolchain for abiValidation with older CVs</li>
<li><a
href="13d25e2c58"><code>13d25e2</code></a>
KT-86268: Regression test added</li>
<li><a
href="f7d1a76541"><code>f7d1a76</code></a>
[JKlib] Fix JAR deserializer configuration.</li>
<li><a
href="5cec663aff"><code>5cec663</code></a>
[JKlib] Wire up JvmBuiltInClassDescriptorFactory</li>
<li><a
href="ef146114de"><code>ef14611</code></a>
Make the default stability of non-final classes <code>Unknown</code>
instead of <code>Stable</code></li>
<li><a
href="d76473afd2"><code>d76473a</code></a>
[Gradle] Fix GeneralNativeIT.shouldAllowToOverrideDownloadUrl test
failures</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `kotlin` from 2.3.21 to 2.4.0.
Updates `org.jetbrains.kotlin.jvm` from 2.3.21 to 2.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.0</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.0</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<h3>Analysis API. PSI</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="add726ca8c"><code>add726c</code></a>
Add ChangeLog for 2.4.0-RC2</li>
<li><a
href="69a4a81ef2"><code>69a4a81</code></a>
[Wasm] Add binaryen per-file arguments</li>
<li><a
href="8907c635d4"><code>8907c63</code></a>
[KGP] Suppress duplicate compiler warning output when --warning-mode=all
is a...</li>
<li><a
href="f9bef128ea"><code>f9bef12</code></a>
[KGP] Add failing test for duplicate compiler warning output via
Problems API</li>
<li><a
href="7fe49c227a"><code>7fe49c2</code></a>
KT-86268: Use 2.4.0 toolchain for abiValidation with older CVs</li>
<li><a
href="13d25e2c58"><code>13d25e2</code></a>
KT-86268: Regression test added</li>
<li><a
href="f7d1a76541"><code>f7d1a76</code></a>
[JKlib] Fix JAR deserializer configuration.</li>
<li><a
href="5cec663aff"><code>5cec663</code></a>
[JKlib] Wire up JvmBuiltInClassDescriptorFactory</li>
<li><a
href="ef146114de"><code>ef14611</code></a>
Make the default stability of non-final classes <code>Unknown</code>
instead of <code>Stable</code></li>
<li><a
href="d76473afd2"><code>d76473a</code></a>
[Gradle] Fix GeneralNativeIT.shouldAllowToOverrideDownloadUrl test
failures</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.3.21 to 2.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.plugin.serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.0</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.0</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<h3>Analysis API. PSI</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="add726ca8c"><code>add726c</code></a>
Add ChangeLog for 2.4.0-RC2</li>
<li><a
href="69a4a81ef2"><code>69a4a81</code></a>
[Wasm] Add binaryen per-file arguments</li>
<li><a
href="8907c635d4"><code>8907c63</code></a>
[KGP] Suppress duplicate compiler warning output when --warning-mode=all
is a...</li>
<li><a
href="f9bef128ea"><code>f9bef12</code></a>
[KGP] Add failing test for duplicate compiler warning output via
Problems API</li>
<li><a
href="7fe49c227a"><code>7fe49c2</code></a>
KT-86268: Use 2.4.0 toolchain for abiValidation with older CVs</li>
<li><a
href="13d25e2c58"><code>13d25e2</code></a>
KT-86268: Regression test added</li>
<li><a
href="f7d1a76541"><code>f7d1a76</code></a>
[JKlib] Fix JAR deserializer configuration.</li>
<li><a
href="5cec663aff"><code>5cec663</code></a>
[JKlib] Wire up JvmBuiltInClassDescriptorFactory</li>
<li><a
href="ef146114de"><code>ef14611</code></a>
Make the default stability of non-final classes <code>Unknown</code>
instead of <code>Stable</code></li>
<li><a
href="d76473afd2"><code>d76473a</code></a>
[Gradle] Fix GeneralNativeIT.shouldAllowToOverrideDownloadUrl test
failures</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `kotlin` from 2.3.21 to 2.4.0.
Updates `org.jetbrains.kotlin.jvm` from 2.3.21 to 2.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.0</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.0</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<h3>Analysis API. PSI</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="add726ca8c"><code>add726c</code></a>
Add ChangeLog for 2.4.0-RC2</li>
<li><a
href="69a4a81ef2"><code>69a4a81</code></a>
[Wasm] Add binaryen per-file arguments</li>
<li><a
href="8907c635d4"><code>8907c63</code></a>
[KGP] Suppress duplicate compiler warning output when --warning-mode=all
is a...</li>
<li><a
href="f9bef128ea"><code>f9bef12</code></a>
[KGP] Add failing test for duplicate compiler warning output via
Problems API</li>
<li><a
href="7fe49c227a"><code>7fe49c2</code></a>
KT-86268: Use 2.4.0 toolchain for abiValidation with older CVs</li>
<li><a
href="13d25e2c58"><code>13d25e2</code></a>
KT-86268: Regression test added</li>
<li><a
href="f7d1a76541"><code>f7d1a76</code></a>
[JKlib] Fix JAR deserializer configuration.</li>
<li><a
href="5cec663aff"><code>5cec663</code></a>
[JKlib] Wire up JvmBuiltInClassDescriptorFactory</li>
<li><a
href="ef146114de"><code>ef14611</code></a>
Make the default stability of non-final classes <code>Unknown</code>
instead of <code>Stable</code></li>
<li><a
href="d76473afd2"><code>d76473a</code></a>
[Gradle] Fix GeneralNativeIT.shouldAllowToOverrideDownloadUrl test
failures</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.3.21 to 2.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.plugin.serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.0</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.0</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<h3>Analysis API. PSI</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="add726ca8c"><code>add726c</code></a>
Add ChangeLog for 2.4.0-RC2</li>
<li><a
href="69a4a81ef2"><code>69a4a81</code></a>
[Wasm] Add binaryen per-file arguments</li>
<li><a
href="8907c635d4"><code>8907c63</code></a>
[KGP] Suppress duplicate compiler warning output when --warning-mode=all
is a...</li>
<li><a
href="f9bef128ea"><code>f9bef12</code></a>
[KGP] Add failing test for duplicate compiler warning output via
Problems API</li>
<li><a
href="7fe49c227a"><code>7fe49c2</code></a>
KT-86268: Use 2.4.0 toolchain for abiValidation with older CVs</li>
<li><a
href="13d25e2c58"><code>13d25e2</code></a>
KT-86268: Regression test added</li>
<li><a
href="f7d1a76541"><code>f7d1a76</code></a>
[JKlib] Fix JAR deserializer configuration.</li>
<li><a
href="5cec663aff"><code>5cec663</code></a>
[JKlib] Wire up JvmBuiltInClassDescriptorFactory</li>
<li><a
href="ef146114de"><code>ef14611</code></a>
Make the default stability of non-final classes <code>Unknown</code>
instead of <code>Stable</code></li>
<li><a
href="d76473afd2"><code>d76473a</code></a>
[Gradle] Fix GeneralNativeIT.shouldAllowToOverrideDownloadUrl test
failures</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.jetbrains.kotlin.jvm](https://github.com/JetBrains/kotlin)
from 2.3.21 to 2.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.4.0</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.0</h2>
<h3>Analysis API</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a>
OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ
repo</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a>
[Analysis API] Enable experimental KDoc resolver by default</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a>
Analysis API: properly support KMP in KotlinPackageProvider</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a>
Analysis API: Dangling file session creation causes a
<code>computeIfAbsent</code> contract violation</li>
</ul>
<h3>Analysis API. Code Compilation</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a>
Evaluation of variable with local class in type parameter leads to
InventNamesForLocalClasses exception</li>
</ul>
<h3>Analysis API. FIR</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a>
K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION
with text <code>::lam1</code>, unexpected element of type: no element
found” with illegal callable reference call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a>
AA: False positive deprecation warning with override of built-in method
in JDK mapped class</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a>
K2 IDE sometimes loses FIR plugin-generated declarations after file
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a>
Analysis API: collectDesignationPath fails for nested classes inside
plugin-generated top-level classes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a>
Improve K2 Jooq completion performance</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a>
KaValueParameterSymbol#getHasSynthesizedName returns false for
FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a>
Kotlin analysis reach ClsCustomNavigationPolicy</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a>
Move CommonDefaultImportsProvider to the frontend independent
module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a>
Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected
FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a>
AA: exception from sealed inheritors checker when
<code>analyzeCopy</code></li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a>
Analysis API: Improve UX with test data</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a>
Extract compiler classes used by the PSI & Analysis API to a
separate module</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a>
Analysis API: Implement Analysis API tests for different KMP
Platforms</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a>
The test data manager misses the redundancy check in the update
mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a>
The test data manager misses -ea flag</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a>
Preserve the EOF status in the test data manager to avoid extra
changes</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a>
Analysis API tests produce many warnings due to "not yet loaded
registry"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a>
Test Data Manager fails on a clean build</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a>
Exclude compiler-based Analysis API tests from Git tracking</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a>
Extract per-module test generators for AA tests</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a>
Move CLI modules out of kotlin-compiler-fe10-for-ide</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a>
Track external dependencies of the Analysis API modules</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a>
Light classes should prefer enum entries to properties</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a>
SLC: return type is not boxed for delegated methods with generic
original method</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a>
"CCE: class PsiPrimitiveType cannot be cast to class
PsiClassType" with same-named enum class and typealias</li>
</ul>
<h3>Analysis API. PSI</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="add726ca8c"><code>add726c</code></a>
Add ChangeLog for 2.4.0-RC2</li>
<li><a
href="69a4a81ef2"><code>69a4a81</code></a>
[Wasm] Add binaryen per-file arguments</li>
<li><a
href="8907c635d4"><code>8907c63</code></a>
[KGP] Suppress duplicate compiler warning output when --warning-mode=all
is a...</li>
<li><a
href="f9bef128ea"><code>f9bef12</code></a>
[KGP] Add failing test for duplicate compiler warning output via
Problems API</li>
<li><a
href="7fe49c227a"><code>7fe49c2</code></a>
KT-86268: Use 2.4.0 toolchain for abiValidation with older CVs</li>
<li><a
href="13d25e2c58"><code>13d25e2</code></a>
KT-86268: Regression test added</li>
<li><a
href="f7d1a76541"><code>f7d1a76</code></a>
[JKlib] Fix JAR deserializer configuration.</li>
<li><a
href="5cec663aff"><code>5cec663</code></a>
[JKlib] Wire up JvmBuiltInClassDescriptorFactory</li>
<li><a
href="ef146114de"><code>ef14611</code></a>
Make the default stability of non-final classes <code>Unknown</code>
instead of <code>Stable</code></li>
<li><a
href="d76473afd2"><code>d76473a</code></a>
[Gradle] Fix GeneralNativeIT.shouldAllowToOverrideDownloadUrl test
failures</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
finished SEP-1686
closes#421
## Breaking Changes
none
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Caps the size of incoming HTTP POST bodies in both server transports so
an oversized request can no longer exhaust server memory
## How Has This Been Tested?
new tests
## Breaking Changes
binary incompatible for SseServerTransport constuctors
## Types of changes
- [x] Bug fix (non-breaking change which fixes a
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP Documentation](https:
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Summary
Fixes `StdioClientTransport.close()` so shutdown does not hang when the
stdin read loop is blocked waiting for input.
## Root Cause / Context
`StdioClientTransport.closeResources()` stopped the transport coroutine
scope and then waited for the scope job to finish. On the JVM, a
`Source.readAtMostTo()` call backed by a blocking Java stream does not
necessarily return when the coroutine is cancelled. If the read loop
stayed blocked, `close()` could wait indefinitely.
## Changes
- Close the stdin source during stdio client shutdown before waiting for
transport coroutines to finish.
- Also close the optional stderr source during shutdown.
- Keep source-close failures non-fatal and log them at debug level.
- Add a JVM regression test with a `RawSource` that blocks in
`readAtMostTo()` until `close()` is called.
- Assert the close path completes, emits `onClose`, and does not invoke
`onError`.
## Scope / Risk
This is limited to `StdioClientTransport` shutdown behavior. It does not
change the public API or server transports. The regression coverage is
JVM-focused because the reported hang is caused by a blocking Java
stream read.
## Verification
```bash
./gradlew :integration-test:jvmTest --tests 'io.modelcontextprotocol.kotlin.sdk.client.StdioClientTransportTest'
./gradlew :kotlin-sdk-client:jvmTest
./gradlew :kotlin-sdk-client:ktlintCheck :integration-test:ktlintCheck :kotlin-sdk-client:detekt :integration-test:detekt :kotlin-sdk-client:apiCheck
```
Closes#514
Gate `completion/complete` on the server's `completions` capability
instead of `prompts`.
closes#845
## Motivation and Context
A server that declares `completions` but not `prompts` is currently
rejected for completion. Details in #845.
## How Has This Been Tested?
New `ClientAssertCapabilityTest` cases; they fail on `main` and pass
with this change. `apiCheck` / `ktlintCheck` / `detekt` pass.
## Breaking Changes
None.
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Co-authored-by: Pavel Gorgulov <devcrocod@gmail.com>
Default the `Origin` allowlist to localhost when
`DnsRebindingProtection` relies on the localhost host defaults, so a
request with a valid `Host` but a hostile (or `null`) `Origin` is no
longer accepted.
## How Has This Been Tested?
unit tests
## Breaking Changes
Behavioral change only
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Bumps
[ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from
1.5.34 to 1.5.37.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/qos-ch/logback/releases">ch.qos.logback:logback-classic's
releases</a>.</em></p>
<blockquote>
<h2>Logback 1.5.37</h2>
<p><strong>2026-06-26 Release of logback version 1.5.37</strong></p>
<p>• Given the numerous vulnerabilities related to conditional
configuration processing based on the evaluation of Java expressions
using the Janino library, support for such expressions has been removed.
Users are offered the an <a
href="https://logback.qos.ch/translator/services/conditionalConfigMigrator.html">online
migration service</a> or the <!-- raw HTML omitted --> element
introduced in version 1.5.20. See the <a
href="https://logback.qos.ch/manual/configuration.html#conditional">relevant
documentation</a> for more details.</p>
<p>• A bitwise identical binary of this version can be reproduced by
building from source code at commit
c1df7f522e648eec7b4ef6a12c8758fec0f00048 associated with the tag
v_1.5.37. Release built using Java "21" 2023-10-17 LTS build
21.0.1.+12-LTS-29 under Linux Debian 11.6.</p>
<h2>Logback 1.5.36</h2>
<p><strong>2026-06-25 Release of logback version 1.5.36</strong></p>
<p>• The 'condition' attribute in <code><if></code> elements now
reject certain references that are associated with ACE attacks. This
issue was reported by "yulate" (<a
href="mailto:yulate531@gmail.com.com">yulate531@gmail.com.com</a>) and
registered as <a
href="https://www.cve.org/cverecord?id=CVE-2026-13006">CVE-2026-13006</a>.</p>
<p>• A bitwise identical binary of this version can be reproduced by
building from source code at commit
9b94c37562bf25a6a944146701d42ee6c4eee888 associated with the tag
v_1.5.36. Release built using Java "21" 2023-10-17 LTS build
21.0.1.+12-LTS-29 under Linux Debian 11.6.</p>
<h2>Logback 1.5.35</h2>
<p><strong>026-06-23 Release of logback version 1.5.35</strong></p>
<p>• The 'condition' attribute in <code><if></code> elements now
rejects unicode escape sequences (\u and \U). This closes a bypass of
the existing prohibition on the new operator in Janino-evaluated
conditions. This issue was reported by IcySun (<a
href="mailto:icysun@qq.com">icysun@qq.com</a>) and registered as <a
href="https://www.cve.org/cverecord?id=CVE-2026-13006">CVE-2026-13006</a>.</p>
<p>• Added <code>ConfiguratorRank.AUTHENTICATING</code> (rank 100), the
highest configurator rank, for certified/authenticating configurators
discovered via the ServiceLoader mechanism.
<code>ContextInitializer</code> now requires that at most one such
configurator exist on the classpath; if more than one is found,
initialization aborts with an error.</p>
<p>• <code>ConsoleCharsetPropertyDefiner</code> is no longer shipped.
The Java 21 multi-release compilation of logback-core has been disabled,
which removes this class from the published artifact. Configurations
that referenced
<code>ch.qos.logback.core.property.ConsoleCharsetPropertyDefiner</code>
will need an alternative approach for console charset detection.</p>
<p>• The logback-examples module is now included in artifacts published
to Maven Central.</p>
<p>• <code>JoranConfigurator.makeAnotherInstance()</code> and
<code>DefaultJoranConfigurator.performMultiStepConfigurationFileSearch()</code>
are now protected, allowing derived configurators to override these
methods.</p>
<p>• A bitwise identical binary of this version can be reproduced by
building from source code at commit
08bd1598d565d83444f72983935e7da4746783b7 associated with the tag
v_1.5.35. Release built using Java "21" 2023-10-17 LTS build
21.0.1.+12-LTS-29 under Linux Debian 11.6.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c1df7f522e"><code>c1df7f5</code></a>
prepare release 1.5.37</li>
<li><a
href="a189967457"><code>a189967</code></a>
remove conditional based on janino</li>
<li><a
href="aaa905292d"><code>aaa9052</code></a>
start work on 1.5.37-SNAPSHOT</li>
<li><a
href="9b94c37562"><code>9b94c37</code></a>
prepare release 1.5.36</li>
<li><a
href="e6a8280ba2"><code>e6a8280</code></a>
prevent attacks using disallowed references</li>
<li><a
href="24c4b63f60"><code>24c4b63</code></a>
start work on 1.5.36-SNAPSHOT</li>
<li><a
href="08bd1598d5"><code>08bd159</code></a>
preapre release 1.5.35</li>
<li><a
href="37d256b825"><code>37d256b</code></a>
indentation changes only</li>
<li><a
href="d3d73078af"><code>d3d7307</code></a>
minor comment</li>
<li><a
href="fa0411a939"><code>fa0411a</code></a>
radomize file location</li>
<li>Additional commits viewable in <a
href="https://github.com/qos-ch/logback/compare/v_1.5.34...v_1.5.37">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the gradle-plugins group with 1 update in the / directory:
[com.vanniktech:gradle-maven-publish-plugin](https://github.com/vanniktech/gradle-maven-publish-plugin).
Updates `com.vanniktech:gradle-maven-publish-plugin` from 0.36.0 to
0.37.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vanniktech/gradle-maven-publish-plugin/releases">com.vanniktech:gradle-maven-publish-plugin's
releases</a>.</em></p>
<blockquote>
<h2>0.37.0</h2>
<ul>
<li>When publishing to Maven Central, redundant checksum files are now
excluded by default: checksums of <code>.asc</code>
signature files (<a
href="https://redirect.github.com/gradle/gradle/issues/20232">gradle/gradle#20232</a>)
and the <code>sha256</code>/<code>sha512</code>
checksums, which are never read by Gradle or Maven Central. The
published checksums can be configured through
<code>checksums(...)</code> in the DSL or the
<code>mavenCentralChecksums</code> Gradle property (default
<code>md5,sha1</code>). Signature checksum
exclusion can be controlled through
<code>excludeSignatureChecksums()</code> or the
<code>mavenCentralExcludeSignatureChecksums</code>
Gradle property.</li>
<li>Maven Central deployment id is being logged after upload.</li>
</ul>
<h4>Minimum supported versions</h4>
<ul>
<li>JDK 17</li>
<li>Gradle 9.0.0</li>
<li>Android Gradle Plugin 8.13.0</li>
<li>Kotlin Gradle Plugin 2.2.0</li>
</ul>
<h4>Compatibility tested up to</h4>
<ul>
<li>JDK 26</li>
<li>Gradle 9.6.0</li>
<li>Gradle 9.7.0-milestone-1</li>
<li>Android Gradle Plugin 9.2.1</li>
<li>Android Gradle Plugin 9.3.0-rc01</li>
<li>Android Gradle Plugin 9.4.0-alpha01</li>
<li>Kotlin Gradle Plugin 2.4.0</li>
</ul>
<h2>0.37.0-rc1</h2>
<ul>
<li>When publishing to Maven Central, redundant checksum files are now
excluded by default: checksums of <code>.asc</code>
signature files (<a
href="https://redirect.github.com/gradle/gradle/issues/20232">gradle/gradle#20232</a>)
and the <code>sha256</code>/<code>sha512</code>
checksums, which are never read by Gradle or Maven Central. The
published checksums can be configured through
<code>checksums(...)</code> in the DSL or the
<code>mavenCentralChecksums</code> Gradle property (default
<code>md5,sha1</code>). Signature checksum
exclusion can be controlled through
<code>excludeSignatureChecksums()</code> or the
<code>mavenCentralExcludeSignatureChecksums</code>
Gradle property.</li>
<li>Maven Central deployment id is being logged after upload.</li>
</ul>
<h4>Minimum supported versions</h4>
<ul>
<li>JDK 17</li>
<li>Gradle 9.0.0</li>
<li>Android Gradle Plugin 8.13.0</li>
<li>Kotlin Gradle Plugin 2.2.0</li>
</ul>
<h4>Compatibility tested up to</h4>
<ul>
<li>JDK 26</li>
<li>Gradle 9.6.0</li>
<li>Gradle 9.7.0-milestone-1</li>
<li>Android Gradle Plugin 9.2.1</li>
<li>Android Gradle Plugin 9.3.0-rc01</li>
<li>Android Gradle Plugin 9.4.0-alpha01</li>
<li>Kotlin Gradle Plugin 2.4.0</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vanniktech/gradle-maven-publish-plugin/blob/main/CHANGELOG.md">com.vanniktech:gradle-maven-publish-plugin's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/vanniktech/gradle-maven-publish-plugin/releases/tag/0.37.0">0.37.0</a>
<em>(2026-06-21)</em></h2>
<ul>
<li>When publishing to Maven Central, redundant checksum files are now
excluded by default: checksums of <code>.asc</code>
signature files (<a
href="https://redirect.github.com/gradle/gradle/issues/20232">gradle/gradle#20232</a>)
and the <code>sha256</code>/<code>sha512</code>
checksums, which are never read by Gradle or Maven Central. The
published checksums can be configured through
<code>checksums(...)</code> in the DSL or the
<code>mavenCentralChecksums</code> Gradle property (default
<code>md5,sha1</code>). Signature checksum
exclusion can be controlled through
<code>excludeSignatureChecksums()</code> or the
<code>mavenCentralExcludeSignatureChecksums</code>
Gradle property.</li>
<li>Maven Central deployment id is being logged after upload.</li>
</ul>
<h4>Minimum supported versions</h4>
<ul>
<li>JDK 17</li>
<li>Gradle 9.0.0</li>
<li>Android Gradle Plugin 8.13.0</li>
<li>Kotlin Gradle Plugin 2.2.0</li>
</ul>
<h4>Compatibility tested up to</h4>
<ul>
<li>JDK 26</li>
<li>Gradle 9.6.0</li>
<li>Gradle 9.7.0-milestone-1</li>
<li>Android Gradle Plugin 9.2.1</li>
<li>Android Gradle Plugin 9.3.0-rc01</li>
<li>Android Gradle Plugin 9.4.0-alpha01</li>
<li>Kotlin Gradle Plugin 2.4.0</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7017e3d3d1"><code>7017e3d</code></a>
enable feature preview (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1381">#1381</a>)</li>
<li><a
href="05f6b6ece1"><code>05f6b6e</code></a>
use 0.37.0-rc1 (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1380">#1380</a>)</li>
<li><a
href="0167c9cc7b"><code>0167c9c</code></a>
Changelog for 0.37.0 (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1379">#1379</a>)</li>
<li><a
href="b652eb3302"><code>b652eb3</code></a>
Update dependency java to v26 (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1353">#1353</a>)</li>
<li><a
href="a9f70b326d"><code>a9f70b3</code></a>
Update dependency com.freeletics.gradle:scripts-formatting-jvm to
v0.37.0 (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1">#1</a>...</li>
<li><a
href="541cf8fd79"><code>541cf8f</code></a>
Log deployment id and publishing type after Central Portal upload (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1354">#1354</a>)</li>
<li><a
href="d4873e5589"><code>d4873e5</code></a>
Update slf4j monorepo to v2 (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1365">#1365</a>)</li>
<li><a
href="42baf9d49f"><code>42baf9d</code></a>
Update android.gradle (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1335">#1335</a>)</li>
<li><a
href="2de1978ae4"><code>2de1978</code></a>
Update Gradle (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1362">#1362</a>)</li>
<li><a
href="6f03e46264"><code>6f03e46</code></a>
Update kotlin monorepo to v2.4.0 (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1352">#1352</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vanniktech/gradle-maven-publish-plugin/compare/0.36.0...0.37.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [hono](https://github.com/honojs/hono) from 4.12.23 to 4.12.27.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/honojs/hono/releases">hono's
releases</a>.</em></p>
<blockquote>
<h2>v4.12.27</h2>
<h2>Security fixes</h2>
<p>This release includes fixes for the following security issues:</p>
<h3>hono/jsx does not isolate context per request</h3>
<p>Affects: <code>hono/jsx</code>, <code>hono/jsx-renderer</code>.
During SSR, context was stored process-wide instead of per request, so
<code>useContext()</code>/<code>useRequestContext()</code> read after an
<code>await</code> in an async component could return another concurrent
request's value — leading to cross-request data disclosure or
authorization checks against the wrong request. GHSA-hvrm-45r6-mjfj</p>
<h3>Server-Side XSS via JSX escaping bypass in cx()</h3>
<p>Affects: <code>hono/css</code>. <code>cx()</code> marked its composed
class name as already-escaped without escaping the input, so untrusted
input passed as a class name could break out of the JSX
<code>class</code> attribute during SSR and inject markup (XSS).
GHSA-w62v-xxxg-mg59</p>
<h3>API Gateway v1 adapter can drop a repeated request header value</h3>
<p>Affects: <code>hono/aws-lambda</code>. The API Gateway v1 (and VPC
Lattice) adapter de-duplicated repeated header values by substring
instead of exact match, dropping a value that is a substring of another
(e.g. <code>203.0.113.1</code> dropped when <code>203.0.113.10</code> is
present) — affecting logic such as <code>X-Forwarded-For</code>-based IP
restriction. GHSA-xgm2-5f3f-mvvc</p>
<hr />
<p>Users of <code>hono/jsx</code>/<code>hono/jsx-renderer</code>,
<code>hono/css</code> (<code>cx()</code>), or the
<code>hono/aws-lambda</code> API Gateway v1 / VPC Lattice adapters are
encouraged to upgrade.</p>
<h2>v4.12.26</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(lambda-edge): satisfy Deno lib types for Content-Length body
encoding by <a
href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/5013">honojs/hono#5013</a></li>
<li>ci: publish to npm from CI with OIDC trusted publishing by <a
href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/5028">honojs/hono#5028</a></li>
<li>chore: remove unused devcontainer and gitpod configs by <a
href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/5029">honojs/hono#5029</a></li>
<li>chore: replace arg and glob with Bun native APIs in build script by
<a href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/5030">honojs/hono#5030</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/honojs/hono/compare/v4.12.25...v4.12.26">https://github.com/honojs/hono/compare/v4.12.25...v4.12.26</a></p>
<h2>v4.12.25</h2>
<h2>Security fixes</h2>
<p>This release includes fixes for the following security issues:</p>
<h3>CORS Middleware reflects any Origin with credentials when
<code>origin</code> defaults to the wildcard</h3>
<p>Affects: <code>hono/cors</code>. Fixes the wildcard origin reflecting
the request <code>Origin</code> and sending
<code>Access-Control-Allow-Credentials: true</code> when
<code>credentials: true</code> is set without an explicit
<code>origin</code>, where any site a logged-in user visited could make
credentialed cross-origin requests and read responses from
cookie-authenticated endpoints. GHSA-88fw-hqm2-52qc</p>
<h3>Body Limit Middleware can be bypassed on AWS Lambda by understating
<code>Content-Length</code></h3>
<p>Affects: <code>hono/body-limit</code> on AWS Lambda
(<code>hono/aws-lambda</code>, <code>hono/lambda-edge</code>). Fixes the
request being built with the client-declared <code>Content-Length</code>
while the body is delivered fully buffered, where a client could declare
a small <code>Content-Length</code> with a much larger body and slip
past the configured size limit. GHSA-rv63-4mwf-qqc2</p>
<h3>Path traversal in <code>serve-static</code> on Windows via encoded
backslash (<code>%5C</code>)</h3>
<p>Affects: <code>serveStatic</code> on Windows (Node, Bun, Deno
adapters). Fixes the path guard allowing a lone backslash, where an
encoded backslash (<code>%5C</code>) decoded to <code>\</code> was
treated as a separator by the Windows path resolver, letting a single
URL segment escape into a middleware-guarded subtree.
GHSA-wwfh-h76j-fc44</p>
<h3>AWS Lambda adapter merges multiple <code>Set-Cookie</code> headers
into one value, dropping cookies on ALB single-header and Lattice</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="97c6fe1f12"><code>97c6fe1</code></a>
4.12.27</li>
<li><a
href="aa921770d0"><code>aa92177</code></a>
Merge commit from fork</li>
<li><a
href="cd3f6f7194"><code>cd3f6f7</code></a>
Merge commit from fork</li>
<li><a
href="d4853a8f27"><code>d4853a8</code></a>
fix(jsx): make merged context-isolation tests pass tsc type check (<a
href="https://redirect.github.com/honojs/hono/issues/5037">#5037</a>)</li>
<li><a
href="6735fea78d"><code>6735fea</code></a>
fix(jsx): cast awaitedFallback through unknown to fix Deno type check
(<a
href="https://redirect.github.com/honojs/hono/issues/5036">#5036</a>)</li>
<li><a
href="fab3b13639"><code>fab3b13</code></a>
Merge commit from fork</li>
<li><a
href="9f0dadf141"><code>9f0dadf</code></a>
ci: use npm Staged publishing (<a
href="https://redirect.github.com/honojs/hono/issues/5035">#5035</a>)</li>
<li><a
href="27b7992f82"><code>27b7992</code></a>
4.12.26</li>
<li><a
href="d29982cc40"><code>d29982c</code></a>
chore: replace arg and glob with Bun native APIs in build script</li>
<li><a
href="16215d5f50"><code>16215d5</code></a>
chore: remove unused devcontainer and gitpod configs (<a
href="https://redirect.github.com/honojs/hono/issues/5029">#5029</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/honojs/hono/compare/v4.12.23...v4.12.27">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for hono since your current version.</p>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
closes#410
## How Has This Been Tested?
integration and unit tests
## Breaking Changes
none
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Bound the size of a single inline SSE event parsed from a POST response
in `StreamableHttpClientTransport`, so a non-conforming or unbounded
server response cannot grow the client's buffer without limit.
## How Has This Been Tested?
New unit tests
## Breaking Changes
none
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Summary
- reject empty sampling content in SamplingMessage and
CreateMessageResult constructors
- clarify sampling validation docs and emit an explicit error when
tool_use is not followed by tool_result
- return sampled text from the conformance test_sampling tool instead of
content object strings
Fixes#730
## Testing
- ./gradlew
-Dorg.gradle.java.installations.paths="/Users/ubl/Documents/New
project/oss-contributions/.jdks/jdk-21.0.11+10/Contents/Home"
:kotlin-sdk-core:jvmTest :kotlin-sdk-server:jvmTest
:conformance-test:compileKotlin
Co-authored-by: Pavel Gorgulov <devcrocod@gmail.com>
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.28.0 to 0.28.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/releases">esbuild's
releases</a>.</em></p>
<blockquote>
<h2>v0.28.1</h2>
<ul>
<li>
<p>Disallow <code>\</code> in local development server HTTP requests (<a
href="https://github.com/evanw/esbuild/security/advisories/GHSA-g7r4-m6w7-qqqr">GHSA-g7r4-m6w7-qqqr</a>)</p>
<p>This release fixes a security issue where HTTP requests to esbuild's
local development server could traverse outside of the serve directory
on Windows using a <code>\</code> backslash character. It happened due
to the use of Go's <code>path.Clean()</code> function, which only
handles Unix-style <code>/</code> characters. HTTP requests with paths
containing <code>\</code> are no longer allowed.</p>
<p>Thanks to <a
href="https://github.com/dellalibera"><code>@dellalibera</code></a> for
reporting this issue.</p>
</li>
<li>
<p>Add integrity checks to the Deno API (<a
href="https://github.com/evanw/esbuild/security/advisories/GHSA-gv7w-rqvm-qjhr">GHSA-gv7w-rqvm-qjhr</a>)</p>
<p>The previous release of esbuild added integrity checks to esbuild's
npm install script. This release also adds integrity checks to esbuild's
Deno install script. Now esbuild's Deno API will also fail with an error
if the downloaded esbuild binary contains something other than the
expected content.</p>
<p>Note that esbuild's Deno API installs from
<code>registry.npmjs.org</code> by default, but allows the
<code>NPM_CONFIG_REGISTRY</code> environment variable to override this
with a custom package registry. This change means that the esbuild
executable served by <code>NPM_CONFIG_REGISTRY</code> must now match the
expected content.</p>
<p>Thanks to <a
href="https://github.com/sondt99"><code>@sondt99</code></a> for
reporting this issue.</p>
</li>
<li>
<p>Avoid inlining <code>using</code> and <code>await using</code>
declarations (<a
href="https://redirect.github.com/evanw/esbuild/issues/4482">#4482</a>)</p>
<p>Previously esbuild's minifier sometimes incorrectly inlined
<code>using</code> and <code>await using</code> declarations into
subsequent uses of that declaration, which then fails to dispose of the
resource correctly. This bug happened because inlining was done for
<code>let</code> and <code>const</code> declarations by avoiding doing
it for <code>var</code> declarations, which no longer worked when more
declaration types were added. Here's an example:</p>
<pre lang="js"><code>// Original code
{
using x = new Resource()
x.activate()
}
<p>// Old output (with --minify)<br />
new Resource().activate();</p>
<p>// New output (with --minify)<br />
{using e=new Resource;e.activate()}<br />
</code></pre></p>
</li>
<li>
<p>Fix module evaluation when an error is thrown (<a
href="https://redirect.github.com/evanw/esbuild/issues/4461">#4461</a>,
<a
href="https://redirect.github.com/evanw/esbuild/pull/4467">#4467</a>)</p>
<p>If an error is thrown during module evaluation, esbuild previously
didn't preserve the state of the module for subsequent module
references. This was observable if <code>import()</code> or
<code>require()</code> is used to import a module multiple times. The
thrown error is supposed to be thrown by every call to
<code>import()</code> or <code>require()</code>, not just the first.
With this release, esbuild will now throw the same error every time you
call <code>import()</code> or <code>require()</code> on a module that
throws during its evaluation.</p>
</li>
<li>
<p>Fix some edge cases around the <code>new</code> operator (<a
href="https://redirect.github.com/evanw/esbuild/issues/4477">#4477</a>)</p>
<p>Previously esbuild incorrectly printed certain edge cases involving
complex expressions inside the target of a <code>new</code> expression
(specifically an optional chain and/or a tagged template literal). The
generated code for the <code>new</code> target was not correctly wrapped
with parentheses, and either contained a syntax error or had different
semantics. These edge cases have been fixed so that they now correctly
wrap the <code>new</code> target in parentheses. Here is an example of
some affected code:</p>
<pre lang="js"><code>// Original code
new (foo()`bar`)()
new (foo()?.bar)()
<p>// Old output<br />
new foo()<code>bar</code>();<br />
new (foo())?.bar();</p>
<p></code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's
changelog</a>.</em></p>
<blockquote>
<h2>0.28.1</h2>
<ul>
<li>
<p>Disallow <code>\</code> in local development server HTTP requests (<a
href="https://github.com/evanw/esbuild/security/advisories/GHSA-g7r4-m6w7-qqqr">GHSA-g7r4-m6w7-qqqr</a>)</p>
<p>This release fixes a security issue where HTTP requests to esbuild's
local development server could traverse outside of the serve directory
on Windows using a <code>\</code> backslash character. It happened due
to the use of Go's <code>path.Clean()</code> function, which only
handles Unix-style <code>/</code> characters. HTTP requests with paths
containing <code>\</code> are no longer allowed.</p>
<p>Thanks to <a
href="https://github.com/dellalibera"><code>@dellalibera</code></a> for
reporting this issue.</p>
</li>
<li>
<p>Add integrity checks to the Deno API (<a
href="https://github.com/evanw/esbuild/security/advisories/GHSA-gv7w-rqvm-qjhr">GHSA-gv7w-rqvm-qjhr</a>)</p>
<p>The previous release of esbuild added integrity checks to esbuild's
npm install script. This release also adds integrity checks to esbuild's
Deno install script. Now esbuild's Deno API will also fail with an error
if the downloaded esbuild binary contains something other than the
expected content.</p>
<p>Note that esbuild's Deno API installs from
<code>registry.npmjs.org</code> by default, but allows the
<code>NPM_CONFIG_REGISTRY</code> environment variable to override this
with a custom package registry. This change means that the esbuild
executable served by <code>NPM_CONFIG_REGISTRY</code> must now match the
expected content.</p>
<p>Thanks to <a
href="https://github.com/sondt99"><code>@sondt99</code></a> for
reporting this issue.</p>
</li>
<li>
<p>Avoid inlining <code>using</code> and <code>await using</code>
declarations (<a
href="https://redirect.github.com/evanw/esbuild/issues/4482">#4482</a>)</p>
<p>Previously esbuild's minifier sometimes incorrectly inlined
<code>using</code> and <code>await using</code> declarations into
subsequent uses of that declaration, which then fails to dispose of the
resource correctly. This bug happened because inlining was done for
<code>let</code> and <code>const</code> declarations by avoiding doing
it for <code>var</code> declarations, which no longer worked when more
declaration types were added. Here's an example:</p>
<pre lang="js"><code>// Original code
{
using x = new Resource()
x.activate()
}
<p>// Old output (with --minify)<br />
new Resource().activate();</p>
<p>// New output (with --minify)<br />
{using e=new Resource;e.activate()}<br />
</code></pre></p>
</li>
<li>
<p>Fix module evaluation when an error is thrown (<a
href="https://redirect.github.com/evanw/esbuild/issues/4461">#4461</a>,
<a
href="https://redirect.github.com/evanw/esbuild/pull/4467">#4467</a>)</p>
<p>If an error is thrown during module evaluation, esbuild previously
didn't preserve the state of the module for subsequent module
references. This was observable if <code>import()</code> or
<code>require()</code> is used to import a module multiple times. The
thrown error is supposed to be thrown by every call to
<code>import()</code> or <code>require()</code>, not just the first.
With this release, esbuild will now throw the same error every time you
call <code>import()</code> or <code>require()</code> on a module that
throws during its evaluation.</p>
</li>
<li>
<p>Fix some edge cases around the <code>new</code> operator (<a
href="https://redirect.github.com/evanw/esbuild/issues/4477">#4477</a>)</p>
<p>Previously esbuild incorrectly printed certain edge cases involving
complex expressions inside the target of a <code>new</code> expression
(specifically an optional chain and/or a tagged template literal). The
generated code for the <code>new</code> target was not correctly wrapped
with parentheses, and either contained a syntax error or had different
semantics. These edge cases have been fixed so that they now correctly
wrap the <code>new</code> target in parentheses. Here is an example of
some affected code:</p>
<pre lang="js"><code>// Original code
new (foo()`bar`)()
new (foo()?.bar)()
<p>// Old output<br />
new foo()<code>bar</code>();<br />
new (foo())?.bar();<br />
</code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="bb9db84c02"><code>bb9db84</code></a>
publish 0.28.1 to npm</li>
<li><a
href="9ff053e53b"><code>9ff053e</code></a>
security: add integrity checks to the Deno API</li>
<li><a
href="0a9bf2135b"><code>0a9bf21</code></a>
enforce non-negative size in gzip parser</li>
<li><a
href="e2a1a71320"><code>e2a1a71</code></a>
security: forbid <code>\\</code> in local dev server requests</li>
<li><a
href="83a2cbfc35"><code>83a2cbf</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4482">#4482</a>:
don't inline <code>using</code> declarations</li>
<li><a
href="308ad745d8"><code>308ad74</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4471">#4471</a>:
renaming of nested <code>var</code> declarations</li>
<li><a
href="f013f5f99a"><code>f013f5f</code></a>
fix some typos</li>
<li><a
href="aafd6e48b1"><code>aafd6e4</code></a>
chore: fix some minor issues in comments (<a
href="https://redirect.github.com/evanw/esbuild/issues/4462">#4462</a>)</li>
<li><a
href="15300c30b5"><code>15300c3</code></a>
follow up: cjs evaluation fixes</li>
<li><a
href="1bda0c31d7"><code>1bda0c3</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4461">#4461</a>,
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4467">#4467</a>:
esm evaluation fixes</li>
<li>Additional commits viewable in <a
href="https://github.com/evanw/esbuild/compare/v0.28.0...v0.28.1">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `mcp-kotlin` from 0.12.0 to 0.13.0.
Updates `io.modelcontextprotocol:kotlin-sdk-client` from 0.12.0 to
0.13.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-client's
releases</a>.</em></p>
<blockquote>
<h2>0.13.0</h2>
<h2>Description</h2>
<p>Adds a <code>tasks</code> capability and a typed
<code>elicitation</code> capability, hardens transport lifecycle,
dispatchers, and back-pressure, and enables DNS rebinding protection by
default.</p>
<h3>Breaking Changes</h3>
<p><strong>Typed <code>elicitation</code> capability and new
<code>tasks</code> capability</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></p>
<p><code>ClientCapabilities.elicitation</code> is now a typed
<code>ClientCapabilities.Elicitation</code> (<code>form</code>,
<code>url</code>) instead of a raw <code>JsonObject?</code>, and both
<code>ClientCapabilities</code> and <code>ServerCapabilities</code>
gained a typed <code>tasks</code> capability. The constructors of both
types changed and are binary-incompatible; recompilation is
required.</p>
<p><strong>Transport handlers now run on
<code>Dispatchers.Default</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></p>
<p>Handlers moved from <code>Dispatchers.IO</code> to
<code>Dispatchers.Default</code> (override via
<code>handlerDispatcher</code>), <code>send()</code> now suspends under
back-pressure instead of buffering unbounded, and the two-argument
<code>StdioServerTransport(input, output)</code> constructor is
deprecated in favor of the builder-lambda form. Also fixes a
<code>start()</code>/<code>close()</code> race, consistent
<code>CancellationException</code> propagation, and an
input-<code>Source</code> leak (closes <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/573">#573</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/574">#574</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/708">#708</a>).</p>
<p><strong>DNS rebinding protection enabled by default</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></p>
<p><code>enableDnsRebindingProtection</code> now defaults to
<code>true</code> on
<code>mcpStreamableHttp</code>/<code>mcpStatelessStreamableHttp</code>,
and the <code>Route.mcp()</code> / <code>Application.mcp()</code>
overloads gained <code>enableDnsRebindingProtection</code>,
<code>allowedHosts</code>, and <code>allowedOrigins</code> parameters
(binary-incompatible on JVM). Only <code>localhost</code>,
<code>127.0.0.1</code>, and <code>[::1]</code> are allowed by default;
opt out with <code>enableDnsRebindingProtection = false</code>. The
<code>Configuration.enableDnsRebindingProtection</code>,
<code>.allowedHosts</code>, and <code>.allowedOrigins</code> properties
are deprecated in favor of the new <code>DnsRebindingProtection</code>
plugin.</p>
<h3>Features</h3>
<ul>
<li>Add a <code>tasks</code> capability (<code>list</code>,
<code>cancel</code>, and per-request augmentation for sampling and
elicitation) on <code>ClientCapabilities</code> and
<code>ServerCapabilities</code>, with assertions for
<code>tasks/*</code> and <code>notifications/tasks/status</code>
enforced by <code>Client</code> and <code>ServerSession</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></li>
<li>Configurable <code>handlerDispatcher</code> and
<code>ioDispatcher</code>, plus an optional caller-supplied
<code>CoroutineScope</code>, on transports by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fire <code>onClose</code> callbacks on
<code>SseClientTransport</code> when the SSE session ends — whether
closed gracefully or terminated by an error — matching the other client
transports by <a
href="https://github.com/jskjw157"><code>@jskjw157</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/738">#738</a></li>
</ul>
<h3>Security</h3>
<ul>
<li>Enable DNS rebinding protection by default across all HTTP
transports, including the SSE endpoints that previously had none (see
Breaking Changes for migration) by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></li>
<li>Cap a single stdio JSON-RPC frame at 16 MiB, throwing the new
<code>TooLongFrameException</code> instead of buffering unbounded when a
peer never sends a newline terminator by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="6e6f80512f">6e6f805</a></li>
</ul>
<h3>Maintenance</h3>
<ul>
<li>Remove the test-only <code>dev.mokksy:mokksy</code> dependency in
favor of <code>MockEngine</code> and <code>embeddedServer</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/754">#754</a></li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Ktor to v3.4.3 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/785">#785</a></li>
<li>kotlinx.coroutines to v1.11.0 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/760">#760</a></li>
<li>kotlin-logging to v8.0.03 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/752">#752</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/783">#783</a></li>
<li>24 further Dependabot updates across sample projects, TypeScript
conformance-test fixtures, and build/test tooling (JUnit, slf4j-simple,
Gradle wrapper, anthropic-java)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b7eeeb1205"><code>b7eeeb1</code></a>
release: 0.13.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/796">#796</a>)</li>
<li><a
href="6e6f80512f"><code>6e6f805</code></a>
Merge commit from fork</li>
<li><a
href="0eb1822853"><code>0eb1822</code></a>
Update Ktor to version 3.4.3 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/785">#785</a>)</li>
<li><a
href="0adfb3bcdb"><code>0adfb3b</code></a>
fix!: harden lifecycle, dispatchers, back-pressure (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/778">#778</a>)</li>
<li><a
href="37ee423308"><code>37ee423</code></a>
chore(deps): bump the infrastructure group with 2 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/783">#783</a>)</li>
<li><a
href="ff4b6232ba"><code>ff4b623</code></a>
chore(deps): bump the other-dependencies group across 3 directories with
3 up...</li>
<li><a
href="78066a9cf6"><code>78066a9</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li><a
href="1ff5f003b6"><code>1ff5f00</code></a>
chore(deps): bump qs from 6.14.2 to 6.15.2 in
/integration-test/src/jvmTest/t...</li>
<li><a
href="6d5bac1e67"><code>6d5bac1</code></a>
chore(deps): bump gradle-wrapper from 9.5.0 to 9.5.1 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/776">#776</a>)</li>
<li><a
href="c8545606bb"><code>c854560</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `io.modelcontextprotocol:kotlin-sdk-server` from 0.12.0 to
0.13.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-server's
releases</a>.</em></p>
<blockquote>
<h2>0.13.0</h2>
<h2>Description</h2>
<p>Adds a <code>tasks</code> capability and a typed
<code>elicitation</code> capability, hardens transport lifecycle,
dispatchers, and back-pressure, and enables DNS rebinding protection by
default.</p>
<h3>Breaking Changes</h3>
<p><strong>Typed <code>elicitation</code> capability and new
<code>tasks</code> capability</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></p>
<p><code>ClientCapabilities.elicitation</code> is now a typed
<code>ClientCapabilities.Elicitation</code> (<code>form</code>,
<code>url</code>) instead of a raw <code>JsonObject?</code>, and both
<code>ClientCapabilities</code> and <code>ServerCapabilities</code>
gained a typed <code>tasks</code> capability. The constructors of both
types changed and are binary-incompatible; recompilation is
required.</p>
<p><strong>Transport handlers now run on
<code>Dispatchers.Default</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></p>
<p>Handlers moved from <code>Dispatchers.IO</code> to
<code>Dispatchers.Default</code> (override via
<code>handlerDispatcher</code>), <code>send()</code> now suspends under
back-pressure instead of buffering unbounded, and the two-argument
<code>StdioServerTransport(input, output)</code> constructor is
deprecated in favor of the builder-lambda form. Also fixes a
<code>start()</code>/<code>close()</code> race, consistent
<code>CancellationException</code> propagation, and an
input-<code>Source</code> leak (closes <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/573">#573</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/574">#574</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/708">#708</a>).</p>
<p><strong>DNS rebinding protection enabled by default</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></p>
<p><code>enableDnsRebindingProtection</code> now defaults to
<code>true</code> on
<code>mcpStreamableHttp</code>/<code>mcpStatelessStreamableHttp</code>,
and the <code>Route.mcp()</code> / <code>Application.mcp()</code>
overloads gained <code>enableDnsRebindingProtection</code>,
<code>allowedHosts</code>, and <code>allowedOrigins</code> parameters
(binary-incompatible on JVM). Only <code>localhost</code>,
<code>127.0.0.1</code>, and <code>[::1]</code> are allowed by default;
opt out with <code>enableDnsRebindingProtection = false</code>. The
<code>Configuration.enableDnsRebindingProtection</code>,
<code>.allowedHosts</code>, and <code>.allowedOrigins</code> properties
are deprecated in favor of the new <code>DnsRebindingProtection</code>
plugin.</p>
<h3>Features</h3>
<ul>
<li>Add a <code>tasks</code> capability (<code>list</code>,
<code>cancel</code>, and per-request augmentation for sampling and
elicitation) on <code>ClientCapabilities</code> and
<code>ServerCapabilities</code>, with assertions for
<code>tasks/*</code> and <code>notifications/tasks/status</code>
enforced by <code>Client</code> and <code>ServerSession</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></li>
<li>Configurable <code>handlerDispatcher</code> and
<code>ioDispatcher</code>, plus an optional caller-supplied
<code>CoroutineScope</code>, on transports by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fire <code>onClose</code> callbacks on
<code>SseClientTransport</code> when the SSE session ends — whether
closed gracefully or terminated by an error — matching the other client
transports by <a
href="https://github.com/jskjw157"><code>@jskjw157</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/738">#738</a></li>
</ul>
<h3>Security</h3>
<ul>
<li>Enable DNS rebinding protection by default across all HTTP
transports, including the SSE endpoints that previously had none (see
Breaking Changes for migration) by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></li>
<li>Cap a single stdio JSON-RPC frame at 16 MiB, throwing the new
<code>TooLongFrameException</code> instead of buffering unbounded when a
peer never sends a newline terminator by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="6e6f80512f">6e6f805</a></li>
</ul>
<h3>Maintenance</h3>
<ul>
<li>Remove the test-only <code>dev.mokksy:mokksy</code> dependency in
favor of <code>MockEngine</code> and <code>embeddedServer</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/754">#754</a></li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Ktor to v3.4.3 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/785">#785</a></li>
<li>kotlinx.coroutines to v1.11.0 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/760">#760</a></li>
<li>kotlin-logging to v8.0.03 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/752">#752</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/783">#783</a></li>
<li>24 further Dependabot updates across sample projects, TypeScript
conformance-test fixtures, and build/test tooling (JUnit, slf4j-simple,
Gradle wrapper, anthropic-java)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b7eeeb1205"><code>b7eeeb1</code></a>
release: 0.13.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/796">#796</a>)</li>
<li><a
href="6e6f80512f"><code>6e6f805</code></a>
Merge commit from fork</li>
<li><a
href="0eb1822853"><code>0eb1822</code></a>
Update Ktor to version 3.4.3 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/785">#785</a>)</li>
<li><a
href="0adfb3bcdb"><code>0adfb3b</code></a>
fix!: harden lifecycle, dispatchers, back-pressure (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/778">#778</a>)</li>
<li><a
href="37ee423308"><code>37ee423</code></a>
chore(deps): bump the infrastructure group with 2 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/783">#783</a>)</li>
<li><a
href="ff4b6232ba"><code>ff4b623</code></a>
chore(deps): bump the other-dependencies group across 3 directories with
3 up...</li>
<li><a
href="78066a9cf6"><code>78066a9</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li><a
href="1ff5f003b6"><code>1ff5f00</code></a>
chore(deps): bump qs from 6.14.2 to 6.15.2 in
/integration-test/src/jvmTest/t...</li>
<li><a
href="6d5bac1e67"><code>6d5bac1</code></a>
chore(deps): bump gradle-wrapper from 9.5.0 to 9.5.1 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/776">#776</a>)</li>
<li><a
href="c8545606bb"><code>c854560</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `mcp-kotlin` from 0.12.0 to 0.13.0.
Updates `io.modelcontextprotocol:kotlin-sdk-client` from 0.12.0 to
0.13.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-client's
releases</a>.</em></p>
<blockquote>
<h2>0.13.0</h2>
<h2>Description</h2>
<p>Adds a <code>tasks</code> capability and a typed
<code>elicitation</code> capability, hardens transport lifecycle,
dispatchers, and back-pressure, and enables DNS rebinding protection by
default.</p>
<h3>Breaking Changes</h3>
<p><strong>Typed <code>elicitation</code> capability and new
<code>tasks</code> capability</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></p>
<p><code>ClientCapabilities.elicitation</code> is now a typed
<code>ClientCapabilities.Elicitation</code> (<code>form</code>,
<code>url</code>) instead of a raw <code>JsonObject?</code>, and both
<code>ClientCapabilities</code> and <code>ServerCapabilities</code>
gained a typed <code>tasks</code> capability. The constructors of both
types changed and are binary-incompatible; recompilation is
required.</p>
<p><strong>Transport handlers now run on
<code>Dispatchers.Default</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></p>
<p>Handlers moved from <code>Dispatchers.IO</code> to
<code>Dispatchers.Default</code> (override via
<code>handlerDispatcher</code>), <code>send()</code> now suspends under
back-pressure instead of buffering unbounded, and the two-argument
<code>StdioServerTransport(input, output)</code> constructor is
deprecated in favor of the builder-lambda form. Also fixes a
<code>start()</code>/<code>close()</code> race, consistent
<code>CancellationException</code> propagation, and an
input-<code>Source</code> leak (closes <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/573">#573</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/574">#574</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/708">#708</a>).</p>
<p><strong>DNS rebinding protection enabled by default</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></p>
<p><code>enableDnsRebindingProtection</code> now defaults to
<code>true</code> on
<code>mcpStreamableHttp</code>/<code>mcpStatelessStreamableHttp</code>,
and the <code>Route.mcp()</code> / <code>Application.mcp()</code>
overloads gained <code>enableDnsRebindingProtection</code>,
<code>allowedHosts</code>, and <code>allowedOrigins</code> parameters
(binary-incompatible on JVM). Only <code>localhost</code>,
<code>127.0.0.1</code>, and <code>[::1]</code> are allowed by default;
opt out with <code>enableDnsRebindingProtection = false</code>. The
<code>Configuration.enableDnsRebindingProtection</code>,
<code>.allowedHosts</code>, and <code>.allowedOrigins</code> properties
are deprecated in favor of the new <code>DnsRebindingProtection</code>
plugin.</p>
<h3>Features</h3>
<ul>
<li>Add a <code>tasks</code> capability (<code>list</code>,
<code>cancel</code>, and per-request augmentation for sampling and
elicitation) on <code>ClientCapabilities</code> and
<code>ServerCapabilities</code>, with assertions for
<code>tasks/*</code> and <code>notifications/tasks/status</code>
enforced by <code>Client</code> and <code>ServerSession</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></li>
<li>Configurable <code>handlerDispatcher</code> and
<code>ioDispatcher</code>, plus an optional caller-supplied
<code>CoroutineScope</code>, on transports by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fire <code>onClose</code> callbacks on
<code>SseClientTransport</code> when the SSE session ends — whether
closed gracefully or terminated by an error — matching the other client
transports by <a
href="https://github.com/jskjw157"><code>@jskjw157</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/738">#738</a></li>
</ul>
<h3>Security</h3>
<ul>
<li>Enable DNS rebinding protection by default across all HTTP
transports, including the SSE endpoints that previously had none (see
Breaking Changes for migration) by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></li>
<li>Cap a single stdio JSON-RPC frame at 16 MiB, throwing the new
<code>TooLongFrameException</code> instead of buffering unbounded when a
peer never sends a newline terminator by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="6e6f80512f">6e6f805</a></li>
</ul>
<h3>Maintenance</h3>
<ul>
<li>Remove the test-only <code>dev.mokksy:mokksy</code> dependency in
favor of <code>MockEngine</code> and <code>embeddedServer</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/754">#754</a></li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Ktor to v3.4.3 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/785">#785</a></li>
<li>kotlinx.coroutines to v1.11.0 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/760">#760</a></li>
<li>kotlin-logging to v8.0.03 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/752">#752</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/783">#783</a></li>
<li>24 further Dependabot updates across sample projects, TypeScript
conformance-test fixtures, and build/test tooling (JUnit, slf4j-simple,
Gradle wrapper, anthropic-java)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b7eeeb1205"><code>b7eeeb1</code></a>
release: 0.13.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/796">#796</a>)</li>
<li><a
href="6e6f80512f"><code>6e6f805</code></a>
Merge commit from fork</li>
<li><a
href="0eb1822853"><code>0eb1822</code></a>
Update Ktor to version 3.4.3 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/785">#785</a>)</li>
<li><a
href="0adfb3bcdb"><code>0adfb3b</code></a>
fix!: harden lifecycle, dispatchers, back-pressure (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/778">#778</a>)</li>
<li><a
href="37ee423308"><code>37ee423</code></a>
chore(deps): bump the infrastructure group with 2 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/783">#783</a>)</li>
<li><a
href="ff4b6232ba"><code>ff4b623</code></a>
chore(deps): bump the other-dependencies group across 3 directories with
3 up...</li>
<li><a
href="78066a9cf6"><code>78066a9</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li><a
href="1ff5f003b6"><code>1ff5f00</code></a>
chore(deps): bump qs from 6.14.2 to 6.15.2 in
/integration-test/src/jvmTest/t...</li>
<li><a
href="6d5bac1e67"><code>6d5bac1</code></a>
chore(deps): bump gradle-wrapper from 9.5.0 to 9.5.1 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/776">#776</a>)</li>
<li><a
href="c8545606bb"><code>c854560</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `io.modelcontextprotocol:kotlin-sdk-server` from 0.12.0 to
0.13.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-server's
releases</a>.</em></p>
<blockquote>
<h2>0.13.0</h2>
<h2>Description</h2>
<p>Adds a <code>tasks</code> capability and a typed
<code>elicitation</code> capability, hardens transport lifecycle,
dispatchers, and back-pressure, and enables DNS rebinding protection by
default.</p>
<h3>Breaking Changes</h3>
<p><strong>Typed <code>elicitation</code> capability and new
<code>tasks</code> capability</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></p>
<p><code>ClientCapabilities.elicitation</code> is now a typed
<code>ClientCapabilities.Elicitation</code> (<code>form</code>,
<code>url</code>) instead of a raw <code>JsonObject?</code>, and both
<code>ClientCapabilities</code> and <code>ServerCapabilities</code>
gained a typed <code>tasks</code> capability. The constructors of both
types changed and are binary-incompatible; recompilation is
required.</p>
<p><strong>Transport handlers now run on
<code>Dispatchers.Default</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></p>
<p>Handlers moved from <code>Dispatchers.IO</code> to
<code>Dispatchers.Default</code> (override via
<code>handlerDispatcher</code>), <code>send()</code> now suspends under
back-pressure instead of buffering unbounded, and the two-argument
<code>StdioServerTransport(input, output)</code> constructor is
deprecated in favor of the builder-lambda form. Also fixes a
<code>start()</code>/<code>close()</code> race, consistent
<code>CancellationException</code> propagation, and an
input-<code>Source</code> leak (closes <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/573">#573</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/574">#574</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/708">#708</a>).</p>
<p><strong>DNS rebinding protection enabled by default</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></p>
<p><code>enableDnsRebindingProtection</code> now defaults to
<code>true</code> on
<code>mcpStreamableHttp</code>/<code>mcpStatelessStreamableHttp</code>,
and the <code>Route.mcp()</code> / <code>Application.mcp()</code>
overloads gained <code>enableDnsRebindingProtection</code>,
<code>allowedHosts</code>, and <code>allowedOrigins</code> parameters
(binary-incompatible on JVM). Only <code>localhost</code>,
<code>127.0.0.1</code>, and <code>[::1]</code> are allowed by default;
opt out with <code>enableDnsRebindingProtection = false</code>. The
<code>Configuration.enableDnsRebindingProtection</code>,
<code>.allowedHosts</code>, and <code>.allowedOrigins</code> properties
are deprecated in favor of the new <code>DnsRebindingProtection</code>
plugin.</p>
<h3>Features</h3>
<ul>
<li>Add a <code>tasks</code> capability (<code>list</code>,
<code>cancel</code>, and per-request augmentation for sampling and
elicitation) on <code>ClientCapabilities</code> and
<code>ServerCapabilities</code>, with assertions for
<code>tasks/*</code> and <code>notifications/tasks/status</code>
enforced by <code>Client</code> and <code>ServerSession</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></li>
<li>Configurable <code>handlerDispatcher</code> and
<code>ioDispatcher</code>, plus an optional caller-supplied
<code>CoroutineScope</code>, on transports by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fire <code>onClose</code> callbacks on
<code>SseClientTransport</code> when the SSE session ends — whether
closed gracefully or terminated by an error — matching the other client
transports by <a
href="https://github.com/jskjw157"><code>@jskjw157</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/738">#738</a></li>
</ul>
<h3>Security</h3>
<ul>
<li>Enable DNS rebinding protection by default across all HTTP
transports, including the SSE endpoints that previously had none (see
Breaking Changes for migration) by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></li>
<li>Cap a single stdio JSON-RPC frame at 16 MiB, throwing the new
<code>TooLongFrameException</code> instead of buffering unbounded when a
peer never sends a newline terminator by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="6e6f80512f">6e6f805</a></li>
</ul>
<h3>Maintenance</h3>
<ul>
<li>Remove the test-only <code>dev.mokksy:mokksy</code> dependency in
favor of <code>MockEngine</code> and <code>embeddedServer</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/754">#754</a></li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Ktor to v3.4.3 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/785">#785</a></li>
<li>kotlinx.coroutines to v1.11.0 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/760">#760</a></li>
<li>kotlin-logging to v8.0.03 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/752">#752</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/783">#783</a></li>
<li>24 further Dependabot updates across sample projects, TypeScript
conformance-test fixtures, and build/test tooling (JUnit, slf4j-simple,
Gradle wrapper, anthropic-java)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b7eeeb1205"><code>b7eeeb1</code></a>
release: 0.13.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/796">#796</a>)</li>
<li><a
href="6e6f80512f"><code>6e6f805</code></a>
Merge commit from fork</li>
<li><a
href="0eb1822853"><code>0eb1822</code></a>
Update Ktor to version 3.4.3 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/785">#785</a>)</li>
<li><a
href="0adfb3bcdb"><code>0adfb3b</code></a>
fix!: harden lifecycle, dispatchers, back-pressure (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/778">#778</a>)</li>
<li><a
href="37ee423308"><code>37ee423</code></a>
chore(deps): bump the infrastructure group with 2 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/783">#783</a>)</li>
<li><a
href="ff4b6232ba"><code>ff4b623</code></a>
chore(deps): bump the other-dependencies group across 3 directories with
3 up...</li>
<li><a
href="78066a9cf6"><code>78066a9</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li><a
href="1ff5f003b6"><code>1ff5f00</code></a>
chore(deps): bump qs from 6.14.2 to 6.15.2 in
/integration-test/src/jvmTest/t...</li>
<li><a
href="6d5bac1e67"><code>6d5bac1</code></a>
chore(deps): bump gradle-wrapper from 9.5.0 to 9.5.1 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/776">#776</a>)</li>
<li><a
href="c8545606bb"><code>c854560</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `mcp-kotlin` from 0.12.0 to 0.13.0.
Updates `io.modelcontextprotocol:kotlin-sdk-client` from 0.12.0 to
0.13.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-client's
releases</a>.</em></p>
<blockquote>
<h2>0.13.0</h2>
<h2>Description</h2>
<p>Adds a <code>tasks</code> capability and a typed
<code>elicitation</code> capability, hardens transport lifecycle,
dispatchers, and back-pressure, and enables DNS rebinding protection by
default.</p>
<h3>Breaking Changes</h3>
<p><strong>Typed <code>elicitation</code> capability and new
<code>tasks</code> capability</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></p>
<p><code>ClientCapabilities.elicitation</code> is now a typed
<code>ClientCapabilities.Elicitation</code> (<code>form</code>,
<code>url</code>) instead of a raw <code>JsonObject?</code>, and both
<code>ClientCapabilities</code> and <code>ServerCapabilities</code>
gained a typed <code>tasks</code> capability. The constructors of both
types changed and are binary-incompatible; recompilation is
required.</p>
<p><strong>Transport handlers now run on
<code>Dispatchers.Default</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></p>
<p>Handlers moved from <code>Dispatchers.IO</code> to
<code>Dispatchers.Default</code> (override via
<code>handlerDispatcher</code>), <code>send()</code> now suspends under
back-pressure instead of buffering unbounded, and the two-argument
<code>StdioServerTransport(input, output)</code> constructor is
deprecated in favor of the builder-lambda form. Also fixes a
<code>start()</code>/<code>close()</code> race, consistent
<code>CancellationException</code> propagation, and an
input-<code>Source</code> leak (closes <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/573">#573</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/574">#574</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/708">#708</a>).</p>
<p><strong>DNS rebinding protection enabled by default</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></p>
<p><code>enableDnsRebindingProtection</code> now defaults to
<code>true</code> on
<code>mcpStreamableHttp</code>/<code>mcpStatelessStreamableHttp</code>,
and the <code>Route.mcp()</code> / <code>Application.mcp()</code>
overloads gained <code>enableDnsRebindingProtection</code>,
<code>allowedHosts</code>, and <code>allowedOrigins</code> parameters
(binary-incompatible on JVM). Only <code>localhost</code>,
<code>127.0.0.1</code>, and <code>[::1]</code> are allowed by default;
opt out with <code>enableDnsRebindingProtection = false</code>. The
<code>Configuration.enableDnsRebindingProtection</code>,
<code>.allowedHosts</code>, and <code>.allowedOrigins</code> properties
are deprecated in favor of the new <code>DnsRebindingProtection</code>
plugin.</p>
<h3>Features</h3>
<ul>
<li>Add a <code>tasks</code> capability (<code>list</code>,
<code>cancel</code>, and per-request augmentation for sampling and
elicitation) on <code>ClientCapabilities</code> and
<code>ServerCapabilities</code>, with assertions for
<code>tasks/*</code> and <code>notifications/tasks/status</code>
enforced by <code>Client</code> and <code>ServerSession</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></li>
<li>Configurable <code>handlerDispatcher</code> and
<code>ioDispatcher</code>, plus an optional caller-supplied
<code>CoroutineScope</code>, on transports by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fire <code>onClose</code> callbacks on
<code>SseClientTransport</code> when the SSE session ends — whether
closed gracefully or terminated by an error — matching the other client
transports by <a
href="https://github.com/jskjw157"><code>@jskjw157</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/738">#738</a></li>
</ul>
<h3>Security</h3>
<ul>
<li>Enable DNS rebinding protection by default across all HTTP
transports, including the SSE endpoints that previously had none (see
Breaking Changes for migration) by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></li>
<li>Cap a single stdio JSON-RPC frame at 16 MiB, throwing the new
<code>TooLongFrameException</code> instead of buffering unbounded when a
peer never sends a newline terminator by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="6e6f80512f">6e6f805</a></li>
</ul>
<h3>Maintenance</h3>
<ul>
<li>Remove the test-only <code>dev.mokksy:mokksy</code> dependency in
favor of <code>MockEngine</code> and <code>embeddedServer</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/754">#754</a></li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Ktor to v3.4.3 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/785">#785</a></li>
<li>kotlinx.coroutines to v1.11.0 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/760">#760</a></li>
<li>kotlin-logging to v8.0.03 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/752">#752</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/783">#783</a></li>
<li>24 further Dependabot updates across sample projects, TypeScript
conformance-test fixtures, and build/test tooling (JUnit, slf4j-simple,
Gradle wrapper, anthropic-java)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b7eeeb1205"><code>b7eeeb1</code></a>
release: 0.13.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/796">#796</a>)</li>
<li><a
href="6e6f80512f"><code>6e6f805</code></a>
Merge commit from fork</li>
<li><a
href="0eb1822853"><code>0eb1822</code></a>
Update Ktor to version 3.4.3 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/785">#785</a>)</li>
<li><a
href="0adfb3bcdb"><code>0adfb3b</code></a>
fix!: harden lifecycle, dispatchers, back-pressure (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/778">#778</a>)</li>
<li><a
href="37ee423308"><code>37ee423</code></a>
chore(deps): bump the infrastructure group with 2 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/783">#783</a>)</li>
<li><a
href="ff4b6232ba"><code>ff4b623</code></a>
chore(deps): bump the other-dependencies group across 3 directories with
3 up...</li>
<li><a
href="78066a9cf6"><code>78066a9</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li><a
href="1ff5f003b6"><code>1ff5f00</code></a>
chore(deps): bump qs from 6.14.2 to 6.15.2 in
/integration-test/src/jvmTest/t...</li>
<li><a
href="6d5bac1e67"><code>6d5bac1</code></a>
chore(deps): bump gradle-wrapper from 9.5.0 to 9.5.1 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/776">#776</a>)</li>
<li><a
href="c8545606bb"><code>c854560</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `io.modelcontextprotocol:kotlin-sdk-server` from 0.12.0 to
0.13.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-server's
releases</a>.</em></p>
<blockquote>
<h2>0.13.0</h2>
<h2>Description</h2>
<p>Adds a <code>tasks</code> capability and a typed
<code>elicitation</code> capability, hardens transport lifecycle,
dispatchers, and back-pressure, and enables DNS rebinding protection by
default.</p>
<h3>Breaking Changes</h3>
<p><strong>Typed <code>elicitation</code> capability and new
<code>tasks</code> capability</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></p>
<p><code>ClientCapabilities.elicitation</code> is now a typed
<code>ClientCapabilities.Elicitation</code> (<code>form</code>,
<code>url</code>) instead of a raw <code>JsonObject?</code>, and both
<code>ClientCapabilities</code> and <code>ServerCapabilities</code>
gained a typed <code>tasks</code> capability. The constructors of both
types changed and are binary-incompatible; recompilation is
required.</p>
<p><strong>Transport handlers now run on
<code>Dispatchers.Default</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></p>
<p>Handlers moved from <code>Dispatchers.IO</code> to
<code>Dispatchers.Default</code> (override via
<code>handlerDispatcher</code>), <code>send()</code> now suspends under
back-pressure instead of buffering unbounded, and the two-argument
<code>StdioServerTransport(input, output)</code> constructor is
deprecated in favor of the builder-lambda form. Also fixes a
<code>start()</code>/<code>close()</code> race, consistent
<code>CancellationException</code> propagation, and an
input-<code>Source</code> leak (closes <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/573">#573</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/574">#574</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/708">#708</a>).</p>
<p><strong>DNS rebinding protection enabled by default</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></p>
<p><code>enableDnsRebindingProtection</code> now defaults to
<code>true</code> on
<code>mcpStreamableHttp</code>/<code>mcpStatelessStreamableHttp</code>,
and the <code>Route.mcp()</code> / <code>Application.mcp()</code>
overloads gained <code>enableDnsRebindingProtection</code>,
<code>allowedHosts</code>, and <code>allowedOrigins</code> parameters
(binary-incompatible on JVM). Only <code>localhost</code>,
<code>127.0.0.1</code>, and <code>[::1]</code> are allowed by default;
opt out with <code>enableDnsRebindingProtection = false</code>. The
<code>Configuration.enableDnsRebindingProtection</code>,
<code>.allowedHosts</code>, and <code>.allowedOrigins</code> properties
are deprecated in favor of the new <code>DnsRebindingProtection</code>
plugin.</p>
<h3>Features</h3>
<ul>
<li>Add a <code>tasks</code> capability (<code>list</code>,
<code>cancel</code>, and per-request augmentation for sampling and
elicitation) on <code>ClientCapabilities</code> and
<code>ServerCapabilities</code>, with assertions for
<code>tasks/*</code> and <code>notifications/tasks/status</code>
enforced by <code>Client</code> and <code>ServerSession</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></li>
<li>Configurable <code>handlerDispatcher</code> and
<code>ioDispatcher</code>, plus an optional caller-supplied
<code>CoroutineScope</code>, on transports by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fire <code>onClose</code> callbacks on
<code>SseClientTransport</code> when the SSE session ends — whether
closed gracefully or terminated by an error — matching the other client
transports by <a
href="https://github.com/jskjw157"><code>@jskjw157</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/738">#738</a></li>
</ul>
<h3>Security</h3>
<ul>
<li>Enable DNS rebinding protection by default across all HTTP
transports, including the SSE endpoints that previously had none (see
Breaking Changes for migration) by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></li>
<li>Cap a single stdio JSON-RPC frame at 16 MiB, throwing the new
<code>TooLongFrameException</code> instead of buffering unbounded when a
peer never sends a newline terminator by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="6e6f80512f">6e6f805</a></li>
</ul>
<h3>Maintenance</h3>
<ul>
<li>Remove the test-only <code>dev.mokksy:mokksy</code> dependency in
favor of <code>MockEngine</code> and <code>embeddedServer</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/754">#754</a></li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Ktor to v3.4.3 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/785">#785</a></li>
<li>kotlinx.coroutines to v1.11.0 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/760">#760</a></li>
<li>kotlin-logging to v8.0.03 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/752">#752</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/783">#783</a></li>
<li>24 further Dependabot updates across sample projects, TypeScript
conformance-test fixtures, and build/test tooling (JUnit, slf4j-simple,
Gradle wrapper, anthropic-java)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b7eeeb1205"><code>b7eeeb1</code></a>
release: 0.13.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/796">#796</a>)</li>
<li><a
href="6e6f80512f"><code>6e6f805</code></a>
Merge commit from fork</li>
<li><a
href="0eb1822853"><code>0eb1822</code></a>
Update Ktor to version 3.4.3 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/785">#785</a>)</li>
<li><a
href="0adfb3bcdb"><code>0adfb3b</code></a>
fix!: harden lifecycle, dispatchers, back-pressure (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/778">#778</a>)</li>
<li><a
href="37ee423308"><code>37ee423</code></a>
chore(deps): bump the infrastructure group with 2 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/783">#783</a>)</li>
<li><a
href="ff4b6232ba"><code>ff4b623</code></a>
chore(deps): bump the other-dependencies group across 3 directories with
3 up...</li>
<li><a
href="78066a9cf6"><code>78066a9</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li><a
href="1ff5f003b6"><code>1ff5f00</code></a>
chore(deps): bump qs from 6.14.2 to 6.15.2 in
/integration-test/src/jvmTest/t...</li>
<li><a
href="6d5bac1e67"><code>6d5bac1</code></a>
chore(deps): bump gradle-wrapper from 9.5.0 to 9.5.1 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/776">#776</a>)</li>
<li><a
href="c8545606bb"><code>c854560</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[io.modelcontextprotocol:kotlin-sdk-client](https://github.com/modelcontextprotocol/kotlin-sdk)
from 0.12.0 to 0.13.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-client's
releases</a>.</em></p>
<blockquote>
<h2>0.13.0</h2>
<h2>Description</h2>
<p>Adds a <code>tasks</code> capability and a typed
<code>elicitation</code> capability, hardens transport lifecycle,
dispatchers, and back-pressure, and enables DNS rebinding protection by
default.</p>
<h3>Breaking Changes</h3>
<p><strong>Typed <code>elicitation</code> capability and new
<code>tasks</code> capability</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></p>
<p><code>ClientCapabilities.elicitation</code> is now a typed
<code>ClientCapabilities.Elicitation</code> (<code>form</code>,
<code>url</code>) instead of a raw <code>JsonObject?</code>, and both
<code>ClientCapabilities</code> and <code>ServerCapabilities</code>
gained a typed <code>tasks</code> capability. The constructors of both
types changed and are binary-incompatible; recompilation is
required.</p>
<p><strong>Transport handlers now run on
<code>Dispatchers.Default</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></p>
<p>Handlers moved from <code>Dispatchers.IO</code> to
<code>Dispatchers.Default</code> (override via
<code>handlerDispatcher</code>), <code>send()</code> now suspends under
back-pressure instead of buffering unbounded, and the two-argument
<code>StdioServerTransport(input, output)</code> constructor is
deprecated in favor of the builder-lambda form. Also fixes a
<code>start()</code>/<code>close()</code> race, consistent
<code>CancellationException</code> propagation, and an
input-<code>Source</code> leak (closes <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/573">#573</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/574">#574</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/708">#708</a>).</p>
<p><strong>DNS rebinding protection enabled by default</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></p>
<p><code>enableDnsRebindingProtection</code> now defaults to
<code>true</code> on
<code>mcpStreamableHttp</code>/<code>mcpStatelessStreamableHttp</code>,
and the <code>Route.mcp()</code> / <code>Application.mcp()</code>
overloads gained <code>enableDnsRebindingProtection</code>,
<code>allowedHosts</code>, and <code>allowedOrigins</code> parameters
(binary-incompatible on JVM). Only <code>localhost</code>,
<code>127.0.0.1</code>, and <code>[::1]</code> are allowed by default;
opt out with <code>enableDnsRebindingProtection = false</code>. The
<code>Configuration.enableDnsRebindingProtection</code>,
<code>.allowedHosts</code>, and <code>.allowedOrigins</code> properties
are deprecated in favor of the new <code>DnsRebindingProtection</code>
plugin.</p>
<h3>Features</h3>
<ul>
<li>Add a <code>tasks</code> capability (<code>list</code>,
<code>cancel</code>, and per-request augmentation for sampling and
elicitation) on <code>ClientCapabilities</code> and
<code>ServerCapabilities</code>, with assertions for
<code>tasks/*</code> and <code>notifications/tasks/status</code>
enforced by <code>Client</code> and <code>ServerSession</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></li>
<li>Configurable <code>handlerDispatcher</code> and
<code>ioDispatcher</code>, plus an optional caller-supplied
<code>CoroutineScope</code>, on transports by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fire <code>onClose</code> callbacks on
<code>SseClientTransport</code> when the SSE session ends — whether
closed gracefully or terminated by an error — matching the other client
transports by <a
href="https://github.com/jskjw157"><code>@jskjw157</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/738">#738</a></li>
</ul>
<h3>Security</h3>
<ul>
<li>Enable DNS rebinding protection by default across all HTTP
transports, including the SSE endpoints that previously had none (see
Breaking Changes for migration) by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></li>
<li>Cap a single stdio JSON-RPC frame at 16 MiB, throwing the new
<code>TooLongFrameException</code> instead of buffering unbounded when a
peer never sends a newline terminator by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="6e6f80512f">6e6f805</a></li>
</ul>
<h3>Maintenance</h3>
<ul>
<li>Remove the test-only <code>dev.mokksy:mokksy</code> dependency in
favor of <code>MockEngine</code> and <code>embeddedServer</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/754">#754</a></li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Ktor to v3.4.3 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/785">#785</a></li>
<li>kotlinx.coroutines to v1.11.0 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/760">#760</a></li>
<li>kotlin-logging to v8.0.03 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/752">#752</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/783">#783</a></li>
<li>24 further Dependabot updates across sample projects, TypeScript
conformance-test fixtures, and build/test tooling (JUnit, slf4j-simple,
Gradle wrapper, anthropic-java)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b7eeeb1205"><code>b7eeeb1</code></a>
release: 0.13.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/796">#796</a>)</li>
<li><a
href="6e6f80512f"><code>6e6f805</code></a>
Merge commit from fork</li>
<li><a
href="0eb1822853"><code>0eb1822</code></a>
Update Ktor to version 3.4.3 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/785">#785</a>)</li>
<li><a
href="0adfb3bcdb"><code>0adfb3b</code></a>
fix!: harden lifecycle, dispatchers, back-pressure (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/778">#778</a>)</li>
<li><a
href="37ee423308"><code>37ee423</code></a>
chore(deps): bump the infrastructure group with 2 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/783">#783</a>)</li>
<li><a
href="ff4b6232ba"><code>ff4b623</code></a>
chore(deps): bump the other-dependencies group across 3 directories with
3 up...</li>
<li><a
href="78066a9cf6"><code>78066a9</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li><a
href="1ff5f003b6"><code>1ff5f00</code></a>
chore(deps): bump qs from 6.14.2 to 6.15.2 in
/integration-test/src/jvmTest/t...</li>
<li><a
href="6d5bac1e67"><code>6d5bac1</code></a>
chore(deps): bump gradle-wrapper from 9.5.0 to 9.5.1 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/776">#776</a>)</li>
<li><a
href="c8545606bb"><code>c854560</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `mcp-kotlin` from 0.12.0 to 0.13.0.
Updates `io.modelcontextprotocol:kotlin-sdk-server` from 0.12.0 to
0.13.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-server's
releases</a>.</em></p>
<blockquote>
<h2>0.13.0</h2>
<h2>Description</h2>
<p>Adds a <code>tasks</code> capability and a typed
<code>elicitation</code> capability, hardens transport lifecycle,
dispatchers, and back-pressure, and enables DNS rebinding protection by
default.</p>
<h3>Breaking Changes</h3>
<p><strong>Typed <code>elicitation</code> capability and new
<code>tasks</code> capability</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></p>
<p><code>ClientCapabilities.elicitation</code> is now a typed
<code>ClientCapabilities.Elicitation</code> (<code>form</code>,
<code>url</code>) instead of a raw <code>JsonObject?</code>, and both
<code>ClientCapabilities</code> and <code>ServerCapabilities</code>
gained a typed <code>tasks</code> capability. The constructors of both
types changed and are binary-incompatible; recompilation is
required.</p>
<p><strong>Transport handlers now run on
<code>Dispatchers.Default</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></p>
<p>Handlers moved from <code>Dispatchers.IO</code> to
<code>Dispatchers.Default</code> (override via
<code>handlerDispatcher</code>), <code>send()</code> now suspends under
back-pressure instead of buffering unbounded, and the two-argument
<code>StdioServerTransport(input, output)</code> constructor is
deprecated in favor of the builder-lambda form. Also fixes a
<code>start()</code>/<code>close()</code> race, consistent
<code>CancellationException</code> propagation, and an
input-<code>Source</code> leak (closes <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/573">#573</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/574">#574</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/708">#708</a>).</p>
<p><strong>DNS rebinding protection enabled by default</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></p>
<p><code>enableDnsRebindingProtection</code> now defaults to
<code>true</code> on
<code>mcpStreamableHttp</code>/<code>mcpStatelessStreamableHttp</code>,
and the <code>Route.mcp()</code> / <code>Application.mcp()</code>
overloads gained <code>enableDnsRebindingProtection</code>,
<code>allowedHosts</code>, and <code>allowedOrigins</code> parameters
(binary-incompatible on JVM). Only <code>localhost</code>,
<code>127.0.0.1</code>, and <code>[::1]</code> are allowed by default;
opt out with <code>enableDnsRebindingProtection = false</code>. The
<code>Configuration.enableDnsRebindingProtection</code>,
<code>.allowedHosts</code>, and <code>.allowedOrigins</code> properties
are deprecated in favor of the new <code>DnsRebindingProtection</code>
plugin.</p>
<h3>Features</h3>
<ul>
<li>Add a <code>tasks</code> capability (<code>list</code>,
<code>cancel</code>, and per-request augmentation for sampling and
elicitation) on <code>ClientCapabilities</code> and
<code>ServerCapabilities</code>, with assertions for
<code>tasks/*</code> and <code>notifications/tasks/status</code>
enforced by <code>Client</code> and <code>ServerSession</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></li>
<li>Configurable <code>handlerDispatcher</code> and
<code>ioDispatcher</code>, plus an optional caller-supplied
<code>CoroutineScope</code>, on transports by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fire <code>onClose</code> callbacks on
<code>SseClientTransport</code> when the SSE session ends — whether
closed gracefully or terminated by an error — matching the other client
transports by <a
href="https://github.com/jskjw157"><code>@jskjw157</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/738">#738</a></li>
</ul>
<h3>Security</h3>
<ul>
<li>Enable DNS rebinding protection by default across all HTTP
transports, including the SSE endpoints that previously had none (see
Breaking Changes for migration) by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></li>
<li>Cap a single stdio JSON-RPC frame at 16 MiB, throwing the new
<code>TooLongFrameException</code> instead of buffering unbounded when a
peer never sends a newline terminator by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="6e6f80512f">6e6f805</a></li>
</ul>
<h3>Maintenance</h3>
<ul>
<li>Remove the test-only <code>dev.mokksy:mokksy</code> dependency in
favor of <code>MockEngine</code> and <code>embeddedServer</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/754">#754</a></li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Ktor to v3.4.3 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/785">#785</a></li>
<li>kotlinx.coroutines to v1.11.0 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/760">#760</a></li>
<li>kotlin-logging to v8.0.03 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/752">#752</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/783">#783</a></li>
<li>24 further Dependabot updates across sample projects, TypeScript
conformance-test fixtures, and build/test tooling (JUnit, slf4j-simple,
Gradle wrapper, anthropic-java)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b7eeeb1205"><code>b7eeeb1</code></a>
release: 0.13.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/796">#796</a>)</li>
<li><a
href="6e6f80512f"><code>6e6f805</code></a>
Merge commit from fork</li>
<li><a
href="0eb1822853"><code>0eb1822</code></a>
Update Ktor to version 3.4.3 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/785">#785</a>)</li>
<li><a
href="0adfb3bcdb"><code>0adfb3b</code></a>
fix!: harden lifecycle, dispatchers, back-pressure (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/778">#778</a>)</li>
<li><a
href="37ee423308"><code>37ee423</code></a>
chore(deps): bump the infrastructure group with 2 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/783">#783</a>)</li>
<li><a
href="ff4b6232ba"><code>ff4b623</code></a>
chore(deps): bump the other-dependencies group across 3 directories with
3 up...</li>
<li><a
href="78066a9cf6"><code>78066a9</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li><a
href="1ff5f003b6"><code>1ff5f00</code></a>
chore(deps): bump qs from 6.14.2 to 6.15.2 in
/integration-test/src/jvmTest/t...</li>
<li><a
href="6d5bac1e67"><code>6d5bac1</code></a>
chore(deps): bump gradle-wrapper from 9.5.0 to 9.5.1 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/776">#776</a>)</li>
<li><a
href="c8545606bb"><code>c854560</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `io.modelcontextprotocol:kotlin-sdk-client` from 0.12.0 to
0.13.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-client's
releases</a>.</em></p>
<blockquote>
<h2>0.13.0</h2>
<h2>Description</h2>
<p>Adds a <code>tasks</code> capability and a typed
<code>elicitation</code> capability, hardens transport lifecycle,
dispatchers, and back-pressure, and enables DNS rebinding protection by
default.</p>
<h3>Breaking Changes</h3>
<p><strong>Typed <code>elicitation</code> capability and new
<code>tasks</code> capability</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></p>
<p><code>ClientCapabilities.elicitation</code> is now a typed
<code>ClientCapabilities.Elicitation</code> (<code>form</code>,
<code>url</code>) instead of a raw <code>JsonObject?</code>, and both
<code>ClientCapabilities</code> and <code>ServerCapabilities</code>
gained a typed <code>tasks</code> capability. The constructors of both
types changed and are binary-incompatible; recompilation is
required.</p>
<p><strong>Transport handlers now run on
<code>Dispatchers.Default</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></p>
<p>Handlers moved from <code>Dispatchers.IO</code> to
<code>Dispatchers.Default</code> (override via
<code>handlerDispatcher</code>), <code>send()</code> now suspends under
back-pressure instead of buffering unbounded, and the two-argument
<code>StdioServerTransport(input, output)</code> constructor is
deprecated in favor of the builder-lambda form. Also fixes a
<code>start()</code>/<code>close()</code> race, consistent
<code>CancellationException</code> propagation, and an
input-<code>Source</code> leak (closes <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/573">#573</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/574">#574</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/708">#708</a>).</p>
<p><strong>DNS rebinding protection enabled by default</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></p>
<p><code>enableDnsRebindingProtection</code> now defaults to
<code>true</code> on
<code>mcpStreamableHttp</code>/<code>mcpStatelessStreamableHttp</code>,
and the <code>Route.mcp()</code> / <code>Application.mcp()</code>
overloads gained <code>enableDnsRebindingProtection</code>,
<code>allowedHosts</code>, and <code>allowedOrigins</code> parameters
(binary-incompatible on JVM). Only <code>localhost</code>,
<code>127.0.0.1</code>, and <code>[::1]</code> are allowed by default;
opt out with <code>enableDnsRebindingProtection = false</code>. The
<code>Configuration.enableDnsRebindingProtection</code>,
<code>.allowedHosts</code>, and <code>.allowedOrigins</code> properties
are deprecated in favor of the new <code>DnsRebindingProtection</code>
plugin.</p>
<h3>Features</h3>
<ul>
<li>Add a <code>tasks</code> capability (<code>list</code>,
<code>cancel</code>, and per-request augmentation for sampling and
elicitation) on <code>ClientCapabilities</code> and
<code>ServerCapabilities</code>, with assertions for
<code>tasks/*</code> and <code>notifications/tasks/status</code>
enforced by <code>Client</code> and <code>ServerSession</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></li>
<li>Configurable <code>handlerDispatcher</code> and
<code>ioDispatcher</code>, plus an optional caller-supplied
<code>CoroutineScope</code>, on transports by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fire <code>onClose</code> callbacks on
<code>SseClientTransport</code> when the SSE session ends — whether
closed gracefully or terminated by an error — matching the other client
transports by <a
href="https://github.com/jskjw157"><code>@jskjw157</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/738">#738</a></li>
</ul>
<h3>Security</h3>
<ul>
<li>Enable DNS rebinding protection by default across all HTTP
transports, including the SSE endpoints that previously had none (see
Breaking Changes for migration) by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></li>
<li>Cap a single stdio JSON-RPC frame at 16 MiB, throwing the new
<code>TooLongFrameException</code> instead of buffering unbounded when a
peer never sends a newline terminator by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="6e6f80512f">6e6f805</a></li>
</ul>
<h3>Maintenance</h3>
<ul>
<li>Remove the test-only <code>dev.mokksy:mokksy</code> dependency in
favor of <code>MockEngine</code> and <code>embeddedServer</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/754">#754</a></li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Ktor to v3.4.3 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/785">#785</a></li>
<li>kotlinx.coroutines to v1.11.0 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/760">#760</a></li>
<li>kotlin-logging to v8.0.03 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/752">#752</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/783">#783</a></li>
<li>24 further Dependabot updates across sample projects, TypeScript
conformance-test fixtures, and build/test tooling (JUnit, slf4j-simple,
Gradle wrapper, anthropic-java)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b7eeeb1205"><code>b7eeeb1</code></a>
release: 0.13.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/796">#796</a>)</li>
<li><a
href="6e6f80512f"><code>6e6f805</code></a>
Merge commit from fork</li>
<li><a
href="0eb1822853"><code>0eb1822</code></a>
Update Ktor to version 3.4.3 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/785">#785</a>)</li>
<li><a
href="0adfb3bcdb"><code>0adfb3b</code></a>
fix!: harden lifecycle, dispatchers, back-pressure (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/778">#778</a>)</li>
<li><a
href="37ee423308"><code>37ee423</code></a>
chore(deps): bump the infrastructure group with 2 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/783">#783</a>)</li>
<li><a
href="ff4b6232ba"><code>ff4b623</code></a>
chore(deps): bump the other-dependencies group across 3 directories with
3 up...</li>
<li><a
href="78066a9cf6"><code>78066a9</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li><a
href="1ff5f003b6"><code>1ff5f00</code></a>
chore(deps): bump qs from 6.14.2 to 6.15.2 in
/integration-test/src/jvmTest/t...</li>
<li><a
href="6d5bac1e67"><code>6d5bac1</code></a>
chore(deps): bump gradle-wrapper from 9.5.0 to 9.5.1 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/776">#776</a>)</li>
<li><a
href="c8545606bb"><code>c854560</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `io.modelcontextprotocol:kotlin-sdk-testing` from 0.12.0 to
0.13.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-testing's
releases</a>.</em></p>
<blockquote>
<h2>0.13.0</h2>
<h2>Description</h2>
<p>Adds a <code>tasks</code> capability and a typed
<code>elicitation</code> capability, hardens transport lifecycle,
dispatchers, and back-pressure, and enables DNS rebinding protection by
default.</p>
<h3>Breaking Changes</h3>
<p><strong>Typed <code>elicitation</code> capability and new
<code>tasks</code> capability</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></p>
<p><code>ClientCapabilities.elicitation</code> is now a typed
<code>ClientCapabilities.Elicitation</code> (<code>form</code>,
<code>url</code>) instead of a raw <code>JsonObject?</code>, and both
<code>ClientCapabilities</code> and <code>ServerCapabilities</code>
gained a typed <code>tasks</code> capability. The constructors of both
types changed and are binary-incompatible; recompilation is
required.</p>
<p><strong>Transport handlers now run on
<code>Dispatchers.Default</code></strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></p>
<p>Handlers moved from <code>Dispatchers.IO</code> to
<code>Dispatchers.Default</code> (override via
<code>handlerDispatcher</code>), <code>send()</code> now suspends under
back-pressure instead of buffering unbounded, and the two-argument
<code>StdioServerTransport(input, output)</code> constructor is
deprecated in favor of the builder-lambda form. Also fixes a
<code>start()</code>/<code>close()</code> race, consistent
<code>CancellationException</code> propagation, and an
input-<code>Source</code> leak (closes <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/573">#573</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/574">#574</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/708">#708</a>).</p>
<p><strong>DNS rebinding protection enabled by default</strong> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></p>
<p><code>enableDnsRebindingProtection</code> now defaults to
<code>true</code> on
<code>mcpStreamableHttp</code>/<code>mcpStatelessStreamableHttp</code>,
and the <code>Route.mcp()</code> / <code>Application.mcp()</code>
overloads gained <code>enableDnsRebindingProtection</code>,
<code>allowedHosts</code>, and <code>allowedOrigins</code> parameters
(binary-incompatible on JVM). Only <code>localhost</code>,
<code>127.0.0.1</code>, and <code>[::1]</code> are allowed by default;
opt out with <code>enableDnsRebindingProtection = false</code>. The
<code>Configuration.enableDnsRebindingProtection</code>,
<code>.allowedHosts</code>, and <code>.allowedOrigins</code> properties
are deprecated in favor of the new <code>DnsRebindingProtection</code>
plugin.</p>
<h3>Features</h3>
<ul>
<li>Add a <code>tasks</code> capability (<code>list</code>,
<code>cancel</code>, and per-request augmentation for sampling and
elicitation) on <code>ClientCapabilities</code> and
<code>ServerCapabilities</code>, with assertions for
<code>tasks/*</code> and <code>notifications/tasks/status</code>
enforced by <code>Client</code> and <code>ServerSession</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/732">#732</a></li>
<li>Configurable <code>handlerDispatcher</code> and
<code>ioDispatcher</code>, plus an optional caller-supplied
<code>CoroutineScope</code>, on transports by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/778">#778</a></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fire <code>onClose</code> callbacks on
<code>SseClientTransport</code> when the SSE session ends — whether
closed gracefully or terminated by an error — matching the other client
transports by <a
href="https://github.com/jskjw157"><code>@jskjw157</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/738">#738</a></li>
</ul>
<h3>Security</h3>
<ul>
<li>Enable DNS rebinding protection by default across all HTTP
transports, including the SSE endpoints that previously had none (see
Breaking Changes for migration) by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/659">#659</a></li>
<li>Cap a single stdio JSON-RPC frame at 16 MiB, throwing the new
<code>TooLongFrameException</code> instead of buffering unbounded when a
peer never sends a newline terminator by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="6e6f80512f">6e6f805</a></li>
</ul>
<h3>Maintenance</h3>
<ul>
<li>Remove the test-only <code>dev.mokksy:mokksy</code> dependency in
favor of <code>MockEngine</code> and <code>embeddedServer</code> by <a
href="https://github.com/devcrocod"><code>@devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/754">#754</a></li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Ktor to v3.4.3 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/785">#785</a></li>
<li>kotlinx.coroutines to v1.11.0 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/760">#760</a></li>
<li>kotlin-logging to v8.0.03 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/752">#752</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/783">#783</a></li>
<li>24 further Dependabot updates across sample projects, TypeScript
conformance-test fixtures, and build/test tooling (JUnit, slf4j-simple,
Gradle wrapper, anthropic-java)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b7eeeb1205"><code>b7eeeb1</code></a>
release: 0.13.0 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/796">#796</a>)</li>
<li><a
href="6e6f80512f"><code>6e6f805</code></a>
Merge commit from fork</li>
<li><a
href="0eb1822853"><code>0eb1822</code></a>
Update Ktor to version 3.4.3 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/785">#785</a>)</li>
<li><a
href="0adfb3bcdb"><code>0adfb3b</code></a>
fix!: harden lifecycle, dispatchers, back-pressure (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/778">#778</a>)</li>
<li><a
href="37ee423308"><code>37ee423</code></a>
chore(deps): bump the infrastructure group with 2 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/783">#783</a>)</li>
<li><a
href="ff4b6232ba"><code>ff4b623</code></a>
chore(deps): bump the other-dependencies group across 3 directories with
3 up...</li>
<li><a
href="78066a9cf6"><code>78066a9</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li><a
href="1ff5f003b6"><code>1ff5f00</code></a>
chore(deps): bump qs from 6.14.2 to 6.15.2 in
/integration-test/src/jvmTest/t...</li>
<li><a
href="6d5bac1e67"><code>6d5bac1</code></a>
chore(deps): bump gradle-wrapper from 9.5.0 to 9.5.1 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/776">#776</a>)</li>
<li><a
href="c8545606bb"><code>c854560</code></a>
chore(deps): bump the all-dependencies group across 1 directory with 2
update...</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [hono](https://github.com/honojs/hono) from 4.12.18 to 4.12.23.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/honojs/hono/releases">hono's
releases</a>.</em></p>
<blockquote>
<h2>v4.12.23</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(serve-static): normalize all backslashes in file paths, not just
the first in <a
href="https://redirect.github.com/honojs/hono/pull/4962">honojs/hono#4962</a></li>
<li>feat(context): export the Context class publicly by <a
href="https://github.com/BlankParticle"><code>@BlankParticle</code></a>
in <a
href="https://redirect.github.com/honojs/hono/pull/4543">honojs/hono#4543</a></li>
<li>docs(contribution): add AI Usage Policy by <a
href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4970">honojs/hono#4970</a></li>
<li>feat(compress): add contentTypeFilter option and
<code>COMPRESSIBLE_CONTENT_TYPE_REGEX</code> re-export by <a
href="https://github.com/na-trium-144"><code>@na-trium-144</code></a>
in <a
href="https://redirect.github.com/honojs/hono/pull/4961">honojs/hono#4961</a></li>
<li>fix(utils/ipaddr): do not compress a single 0 group to
<code>::</code> by <a
href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4971">honojs/hono#4971</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/honojs/hono/compare/v4.12.22...v4.12.23">https://github.com/honojs/hono/compare/v4.12.22...v4.12.23</a></p>
<h2>v4.12.22</h2>
<h2>What's Changed</h2>
<ul>
<li>chore: update vitest to v4 and cleanups by <a
href="https://github.com/BlankParticle"><code>@BlankParticle</code></a>
in <a
href="https://redirect.github.com/honojs/hono/pull/4952">honojs/hono#4952</a></li>
<li>fix(mime): specify charset parameter per MIME type instead of
mechanical detection by <a
href="https://github.com/renatograsso10"><code>@renatograsso10</code></a>
in <a
href="https://redirect.github.com/honojs/hono/pull/4912">honojs/hono#4912</a></li>
<li>fix(compress): respect Accept-Encoding when encoding option is set
by <a href="https://github.com/LeSingh1"><code>@LeSingh1</code></a> in
<a
href="https://redirect.github.com/honojs/hono/pull/4951">honojs/hono#4951</a></li>
<li>fix(deno): echo negotiated WebSocket subprotocol in upgrade response
by <a href="https://github.com/ATOM00blue"><code>@ATOM00blue</code></a>
in <a
href="https://redirect.github.com/honojs/hono/pull/4955">honojs/hono#4955</a></li>
<li>feat: add msgpack as a compressible content type by <a
href="https://github.com/na-trium-144"><code>@na-trium-144</code></a>
in <a
href="https://redirect.github.com/honojs/hono/pull/4957">honojs/hono#4957</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/renatograsso10"><code>@renatograsso10</code></a>
made their first contribution in <a
href="https://redirect.github.com/honojs/hono/pull/4912">honojs/hono#4912</a></li>
<li><a href="https://github.com/LeSingh1"><code>@LeSingh1</code></a>
made their first contribution in <a
href="https://redirect.github.com/honojs/hono/pull/4951">honojs/hono#4951</a></li>
<li><a
href="https://github.com/ATOM00blue"><code>@ATOM00blue</code></a> made
their first contribution in <a
href="https://redirect.github.com/honojs/hono/pull/4955">honojs/hono#4955</a></li>
<li><a
href="https://github.com/na-trium-144"><code>@na-trium-144</code></a>
made their first contribution in <a
href="https://redirect.github.com/honojs/hono/pull/4957">honojs/hono#4957</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/honojs/hono/compare/v4.12.21...v4.12.22">https://github.com/honojs/hono/compare/v4.12.21...v4.12.22</a></p>
<h2>v4.12.21</h2>
<h2>Security fixes</h2>
<p>This release includes fixes for the following security issues:</p>
<h3>app.mount() strips mount prefix using undecoded path, causing
incorrect routing for percent-encoded paths</h3>
<p>Affects: <code>app.mount()</code>. Fixes prefix stripping using the
raw URL pathname instead of the decoded path, where percent-encoded
characters in the mount prefix or path could cause the prefix to be
removed at the wrong position, resulting in the sub-application
receiving an incorrect path. GHSA-2gcr-mfcq-wcc3</p>
<h3>IP Restriction bypasses static deny rules for non-canonical
IPv6</h3>
<p>Affects: <code>hono/ip-restriction</code>. Fixes IP address
comparison using string equality, where non-canonical IPv6
representations of a denied address — such as compressed forms or
hex-notation IPv4-mapped addresses — could bypass static deny rules.
GHSA-xrhx-7g5j-rcj5</p>
<h3>Cookie helper does not sanitize sameSite and priority, allowing
Set-Cookie injection</h3>
<p>Affects: <code>hono/cookie</code>. Fixes missing validation of
<code>sameSite</code> and <code>priority</code> options against
injection characters (<code>;</code>, <code>\r</code>, <code>\n</code>),
where user-controlled input passed to either option could inject
additional attributes into the Set-Cookie response header.
GHSA-3hrh-pfw6-9m5x</p>
<h3>JWT middleware accepts any Authorization scheme, not only
Bearer</h3>
<p>Affects: <code>hono/jwt</code>, <code>hono/jwk</code>. Fixes missing
scheme validation in the Authorization header, where any two-part header
value was accepted regardless of the scheme name, allowing non-Bearer
schemes to pass JWT authentication. GHSA-f577-qrjj-4474</p>
<hr />
<p>Users who use <code>app.mount()</code>,
<code>hono/ip-restriction</code>, <code>hono/cookie</code>, or
<code>hono/jwt</code>/<code>hono/jwk</code> are encouraged to upgrade to
this version.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="83bfb3bb4a"><code>83bfb3b</code></a>
4.12.23</li>
<li><a
href="bcd290a64c"><code>bcd290a</code></a>
fix(utils/ipaddr): do not compress a single 0 group to <code>::</code>
(<a
href="https://redirect.github.com/honojs/hono/issues/4971">#4971</a>)</li>
<li><a
href="c968177d9c"><code>c968177</code></a>
feat(compress): add contentTypeFilter option and
`COMPRESSIBLE_CONTENT_TYPE_R...</li>
<li><a
href="0265a5453a"><code>0265a54</code></a>
docs(contribution): add AI Usage Policy (<a
href="https://redirect.github.com/honojs/hono/issues/4970">#4970</a>)</li>
<li><a
href="c84c5d2d46"><code>c84c5d2</code></a>
feat(context): export the Context class publicly (<a
href="https://redirect.github.com/honojs/hono/issues/4543">#4543</a>)</li>
<li><a
href="82dad6297c"><code>82dad62</code></a>
fix(serve-static): normalize all backslashes in file paths, not just the
firs...</li>
<li><a
href="2f01b774b1"><code>2f01b77</code></a>
4.12.22</li>
<li><a
href="6bc0dff277"><code>6bc0dff</code></a>
feat: add msgpack as a compressible content type (<a
href="https://redirect.github.com/honojs/hono/issues/4957">#4957</a>)</li>
<li><a
href="7e0555d14c"><code>7e0555d</code></a>
fix(deno): echo negotiated WebSocket subprotocol in upgrade response (<a
href="https://redirect.github.com/honojs/hono/issues/4955">#4955</a>)</li>
<li><a
href="f0ed246591"><code>f0ed246</code></a>
fix(compress): respect Accept-Encoding when encoding option is set (<a
href="https://redirect.github.com/honojs/hono/issues/4951">#4951</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/honojs/hono/compare/v4.12.18...v4.12.23">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/modelcontextprotocol/kotlin-sdk/network/alerts).
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from
1.5.32 to 1.5.34.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/qos-ch/logback/releases">ch.qos.logback:logback-classic's
releases</a>.</em></p>
<blockquote>
<h2>Logback 1.5.34</h2>
<p><strong>2026-06-01 Release of logback version 1.5.34</strong></p>
<p>• In case certain StackTraceElement values returned by the
Throwable.getStackTrace method are null, StackTraceElementProxy
substitutes a dummy instance instead of throwing an
IllegalArgumentException. This resolves [issues <a
href="https://redirect.github.com/qos-ch/logback/issues/1040">#1040</a>](<a
href="https://redirect.github.com/qos-ch/logback/issues/1040">qos-ch/logback#1040</a>),
reported by Naotsugu Kobayashi.</p>
<p>• HardenedObjectInputStream will now throw an InvalidClassException
during deserialization attempts of Proxy classes. This change addresses
potential deserialization whitelist bypass vulnerability reported by <a
href="https://github.com/york-shen">York Shen</a> and registered as <a
href="https://www.cve.org/cverecord?id=CVE-2026-10532">CVE-2026-10532</a>.</p>
<p>• A bitwise identical binary of this version can be reproduced by
building from source code at commit
e62272ac152469aec1ede056c3c7d0d7314e7bfe associated with the tag
v_1.5.34. This release was built using Java "21" 2023-10-17
LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.</p>
<h2>Logback 1.5.33</h2>
<p><strong>2026-05-27 Release of logback version 1.5.33</strong></p>
<p>• <code>PropertiesConfiguratorModelHandler</code> now registers
properties file URLs to the <code>ConfigurationWatchList</code> when
scan is enabled (via local scan="true" attribute or top-level
configuration scan), ensuring changes are detected and reconfiguration
occurs. This problem was reported in <a
href="https://redirect.github.com/qos-ch/logback/issues/1034">issues/1034</a>.</p>
<p>• When processing <code><conversionRule></code> elements and
both <code>class</code> and <code>converterClass</code> attributes are
specified, silently use the class attribute without issuing a warning.
However, if the attribute values differ, a warning will be issued. This
change was requested in <a
href="https://redirect.github.com/qos-ch/logback/issues/1031">issues/1031</a>.</p>
<p>• <code>HardenedModelInputStream</code> will no longer accept to
deserialize all classes located under the "java.lang" and
"java.util" packages but a limited number of explicitly
authorized classes in those packages. This potential deserialization
whitelist bypass vulnerability was reported by <a
href="https://github.com/york-shen">York Shen</a> and registered as <a
href="https://www.cve.org/cverecord?id=CVE-2026-9828">CVE-2026-9828</a>.</p>
<p>• SSL parameters for <code>SSLSocketAppender</code> now enable
hostname verification by default. Moreover, the default protocol is now
"TLSv1.2". This potential vulnerability was reported by York
Shen.</p>
<p>• When printing the status message field,
<code>ViewStatusMessagesServletBase</code> now escapes special
characters such as "&" as character entities. This
potential vulnerability was reported by York Shen.</p>
<p>• A bit-wise identical binary of this version can be reproduced by
building from source code at commit
124e8b49b55ac34d08743a0646bd463410192647 associated with the tag
v_1.5.33. Release built using Java "21" 2023-10-17 LTS build
21.0.1.+12-LTS-29 under Linux Debian 11.6.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e62272ac15"><code>e62272a</code></a>
prepare release 1.5.34</li>
<li><a
href="1e9e926db1"><code>1e9e926</code></a>
add resolveProxyClassRejectsDynamicProxies unit test</li>
<li><a
href="2de5cbe90b"><code>2de5cbe</code></a>
added StackTraceElementProxyTest, minor edits to AGENTS.md</li>
<li><a
href="0e9b9278b5"><code>0e9b927</code></a>
in case StackTraceElement is null use a substitute, fixing
issues/1040</li>
<li><a
href="f7a0654c2b"><code>f7a0654</code></a>
prevent resolveProxyClass bypass</li>
<li><a
href="249b81f375"><code>249b81f</code></a>
docs are no longer distributed</li>
<li><a
href="1c3b26a839"><code>1c3b26a</code></a>
start work on 1.5.34-SNAPSHOT</li>
<li><a
href="124e8b49b5"><code>124e8b4</code></a>
prepare release 1.5.33</li>
<li><a
href="d8fd6f25c7"><code>d8fd6f2</code></a>
escapeTags in message field when printing status messages</li>
<li><a
href="95edbeb8db"><code>95edbeb</code></a>
hostnameVerification default to true in SSLParametersConfiguration,
SSL.DEFAU...</li>
<li>Additional commits viewable in <a
href="https://github.com/qos-ch/logback/compare/v_1.5.32...v_1.5.34">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the other-dependencies group with 2 updates in the
/samples/kotlin-mcp-client directory:
[com.anthropic:anthropic-java](https://github.com/anthropics/anthropic-sdk-java)
and [com.gradleup.shadow](https://github.com/GradleUp/shadow).
Bumps the other-dependencies group with 1 update in the
/samples/kotlin-mcp-server directory:
[com.gradleup.shadow](https://github.com/GradleUp/shadow).
Bumps the other-dependencies group with 2 updates in the
/samples/kotlinlang-mcp-server directory:
[com.gradleup.shadow](https://github.com/GradleUp/shadow) and
[ch.qos.logback:logback-classic](https://github.com/qos-ch/logback).
Bumps the other-dependencies group with 1 update in the
/samples/simple-streamable-server directory:
[com.gradleup.shadow](https://github.com/GradleUp/shadow).
Bumps the other-dependencies group with 2 updates in the
/samples/weather-stdio-server directory:
[com.gradleup.shadow](https://github.com/GradleUp/shadow) and
[io.github.oshai:kotlin-logging-jvm](https://github.com/oshai/kotlin-logging).
Updates `com.anthropic:anthropic-java` from 2.34.0 to 2.35.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/releases">com.anthropic:anthropic-java's
releases</a>.</em></p>
<blockquote>
<h2>v2.35.0</h2>
<h2>2.35.0 (2026-05-28)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.34.1...v2.35.0">v2.34.1...v2.35.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> Add support for claude-opus-4-8,
mid-conversation system blocks, and usage.output_tokens_details (<a
href="3e4621e676">3e4621e</a>)</li>
</ul>
<h2>v2.34.1</h2>
<h2>2.34.1 (2026-05-27)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.34.0...v2.34.1">v2.34.0...v2.34.1</a></p>
<h3>Bug Fixes</h3>
<ul>
<li><strong>structured-outputs:</strong> support all nullability
annotations (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1254">#1254</a>)
(<a
href="95e4391443">95e4391</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>replace literal newlines (<a
href="c5573d98ef">c5573d9</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/blob/main/CHANGELOG.md">com.anthropic:anthropic-java's
changelog</a>.</em></p>
<blockquote>
<h2>2.35.0 (2026-05-28)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.34.1...v2.35.0">v2.34.1...v2.35.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> Add support for claude-opus-4-8,
mid-conversation system blocks, and usage.output_tokens_details (<a
href="3e4621e676">3e4621e</a>)</li>
</ul>
<h2>2.34.1 (2026-05-27)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.34.0...v2.34.1">v2.34.0...v2.34.1</a></p>
<h3>Bug Fixes</h3>
<ul>
<li><strong>structured-outputs:</strong> support all nullability
annotations (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1254">#1254</a>)
(<a
href="95e4391443">95e4391</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>replace literal newlines (<a
href="c5573d98ef">c5573d9</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="65d26cc371"><code>65d26cc</code></a>
release: 2.35.0</li>
<li><a
href="f901010691"><code>f901010</code></a>
feat(api): Add support for claude-opus-4-8, mid-conversation system
blocks, a...</li>
<li><a
href="bc1bdd9a38"><code>bc1bdd9</code></a>
release: 2.34.1</li>
<li><a
href="f27e209ac9"><code>f27e209</code></a>
fix(structured-outputs): support all nullability annotations (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1254">#1254</a>)</li>
<li><a
href="62ef906b3c"><code>62ef906</code></a>
docs: replace literal newlines</li>
<li><a
href="dc19d08217"><code>dc19d08</code></a>
ci: run breaking change detection on every branch (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1224">#1224</a>)</li>
<li><a
href="1382286f46"><code>1382286</code></a>
codegen metadata</li>
<li>See full diff in <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.34.0...v2.35.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `ch.qos.logback:logback-classic` from 1.5.32 to 1.5.34
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/qos-ch/logback/releases">ch.qos.logback:logback-classic's
releases</a>.</em></p>
<blockquote>
<h2>Logback 1.5.34</h2>
<p><strong>2026-06-01 Release of logback version 1.5.34</strong></p>
<p>• In case certain StackTraceElement values returned by the
Throwable.getStackTrace method are null, StackTraceElementProxy
substitutes a dummy instance instead of throwing an
IllegalArgumentException. This resolves [issues <a
href="https://redirect.github.com/qos-ch/logback/issues/1040">#1040</a>](<a
href="https://redirect.github.com/qos-ch/logback/issues/1040">qos-ch/logback#1040</a>),
reported by Naotsugu Kobayashi.</p>
<p>• HardenedObjectInputStream will now throw an InvalidClassException
during deserialization attempts of Proxy classes. This change addresses
potential deserialization whitelist bypass vulnerability reported by <a
href="https://github.com/york-shen">York Shen</a> and registered as <a
href="https://www.cve.org/cverecord?id=CVE-2026-10532">CVE-2026-10532</a>.</p>
<p>• A bitwise identical binary of this version can be reproduced by
building from source code at commit
e62272ac152469aec1ede056c3c7d0d7314e7bfe associated with the tag
v_1.5.34. This release was built using Java "21" 2023-10-17
LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.</p>
<h2>Logback 1.5.33</h2>
<p><strong>2026-05-27 Release of logback version 1.5.33</strong></p>
<p>• <code>PropertiesConfiguratorModelHandler</code> now registers
properties file URLs to the <code>ConfigurationWatchList</code> when
scan is enabled (via local scan="true" attribute or top-level
configuration scan), ensuring changes are detected and reconfiguration
occurs. This problem was reported in <a
href="https://redirect.github.com/qos-ch/logback/issues/1034">issues/1034</a>.</p>
<p>• When processing <code><conversionRule></code> elements and
both <code>class</code> and <code>converterClass</code> attributes are
specified, silently use the class attribute without issuing a warning.
However, if the attribute values differ, a warning will be issued. This
change was requested in <a
href="https://redirect.github.com/qos-ch/logback/issues/1031">issues/1031</a>.</p>
<p>• <code>HardenedModelInputStream</code> will no longer accept to
deserialize all classes located under the "java.lang" and
"java.util" packages but a limited number of explicitly
authorized classes in those packages. This potential deserialization
whitelist bypass vulnerability was reported by <a
href="https://github.com/york-shen">York Shen</a> and registered as <a
href="https://www.cve.org/cverecord?id=CVE-2026-9828">CVE-2026-9828</a>.</p>
<p>• SSL parameters for <code>SSLSocketAppender</code> now enable
hostname verification by default. Moreover, the default protocol is now
"TLSv1.2". This potential vulnerability was reported by York
Shen.</p>
<p>• When printing the status message field,
<code>ViewStatusMessagesServletBase</code> now escapes special
characters such as "&" as character entities. This
potential vulnerability was reported by York Shen.</p>
<p>• A bit-wise identical binary of this version can be reproduced by
building from source code at commit
124e8b49b55ac34d08743a0646bd463410192647 associated with the tag
v_1.5.33. Release built using Java "21" 2023-10-17 LTS build
21.0.1.+12-LTS-29 under Linux Debian 11.6.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e62272ac15"><code>e62272a</code></a>
prepare release 1.5.34</li>
<li><a
href="1e9e926db1"><code>1e9e926</code></a>
add resolveProxyClassRejectsDynamicProxies unit test</li>
<li><a
href="2de5cbe90b"><code>2de5cbe</code></a>
added StackTraceElementProxyTest, minor edits to AGENTS.md</li>
<li><a
href="0e9b9278b5"><code>0e9b927</code></a>
in case StackTraceElement is null use a substitute, fixing
issues/1040</li>
<li><a
href="f7a0654c2b"><code>f7a0654</code></a>
prevent resolveProxyClass bypass</li>
<li><a
href="249b81f375"><code>249b81f</code></a>
docs are no longer distributed</li>
<li><a
href="1c3b26a839"><code>1c3b26a</code></a>
start work on 1.5.34-SNAPSHOT</li>
<li><a
href="124e8b49b5"><code>124e8b4</code></a>
prepare release 1.5.33</li>
<li><a
href="d8fd6f25c7"><code>d8fd6f2</code></a>
escapeTags in message field when printing status messages</li>
<li><a
href="95edbeb8db"><code>95edbeb</code></a>
hostnameVerification default to true in SSLParametersConfiguration,
SSL.DEFAU...</li>
<li>Additional commits viewable in <a
href="https://github.com/qos-ch/logback/compare/v_1.5.32...v_1.5.34">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `io.github.oshai:kotlin-logging-jvm` from 8.0.03 to 8.0.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/oshai/kotlin-logging/releases">io.github.oshai:kotlin-logging-jvm's
releases</a>.</em></p>
<blockquote>
<h2>8.0.4</h2>
<p>Align to semver.</p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/oshai/kotlin-logging/compare/8.0.03...8.0.4">https://github.com/oshai/kotlin-logging/compare/8.0.03...8.0.4</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0aaa57ccef"><code>0aaa57c</code></a>
bump to semver 8.0.5</li>
<li><a
href="bf60363f6c"><code>bf60363</code></a>
change to semver 8.0.4</li>
<li>See full diff in <a
href="https://github.com/oshai/kotlin-logging/compare/8.0.03...8.0.4">compare
view</a></li>
</ul>
</details>
<br />
Updates `com.gradleup.shadow` from 9.4.1 to 9.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.4.2</h2>
<h3>Changed</h3>
<ul>
<li>Update jdependency to support Java 27. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2033">#2033</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="29c432a7b6"><code>29c432a</code></a>
Prepare version 9.4.2</li>
<li><a
href="8aa8e6c1fb"><code>8aa8e6c</code></a>
Update dependency org.vafer:jdependency to v2.16 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2033">#2033</a>)</li>
<li>See full diff in <a
href="https://github.com/GradleUp/shadow/compare/9.4.1...9.4.2">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
fixes#573fixes#574fixes#708
- Handlers ran on `Dispatchers.IO` → now `Dispatchers.Default`,
configurable via `handlerDispatcher`.
- Reader/writer dispatcher exposed as `ioDispatcher` (default
`IODispatcher.limitedParallelism(2)`).
- Optional caller-supplied `CoroutineScope` so the pipeline isn't
detached from the caller's tree.
- `CancellationException` consistently rethrown across all pumps.
- Unbounded channels → bounded with graceful drain on close (in-flight
outbound flushed before `onClose`).
- Input `Source` now closed on natural EOF / reader error (was leaking
for non-`System.in` sources).
- Race between `start()` and `close()` fixed via 3-state CAS +
`setupComplete` barrier replacing `AtomicBoolean`.
## How Has This Been Tested?
unit and integration tests
## Breaking Changes
- Handlers default to `Dispatchers.Default` (was `Dispatchers.IO`).
Override with `handlerDispatcher = Dispatchers.IO` if your handlers
perform blocking I/O.
- `send()` suspends under back-pressure instead of buffering unbounded.
- `StdioServerTransport(input, output)` ctor is `@Deprecated` (WARNING)
in favor of `StdioServerTransport(input, output) { ... }`. Still
binary-compatible.
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Bumps [qs](https://github.com/ljharb/qs) from 6.14.2 to 6.15.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ljharb/qs/blob/main/CHANGELOG.md">qs's
changelog</a>.</em></p>
<blockquote>
<h2><strong>6.15.2</strong></h2>
<ul>
<li>[Fix] <code>stringify</code>: skip null/undefined entries in
<code>arrayFormat: 'comma'</code> + <code>encodeValuesOnly</code>
instead of crashing in <code>encoder</code></li>
<li>[Fix] <code>stringify</code>: use configured <code>delimiter</code>
after <code>charsetSentinel</code> (<a
href="https://redirect.github.com/ljharb/qs/issues/555">#555</a>)</li>
<li>[Fix] <code>stringify</code>: apply <code>formatter</code> to
encoded key under <code>strictNullHandling</code> (<a
href="https://redirect.github.com/ljharb/qs/issues/554">#554</a>)</li>
<li>[Fix] <code>stringify</code>: skip null/undefined filter-array
entries instead of crashing in <code>encoder</code> (<a
href="https://redirect.github.com/ljharb/qs/issues/551">#551</a>)</li>
<li>[Fix] <code>parse</code>: handle nested bracket groups and add
regression tests (<a
href="https://redirect.github.com/ljharb/qs/issues/530">#530</a>)</li>
<li>[readme] fix grammar (<a
href="https://redirect.github.com/ljharb/qs/issues/550">#550</a>)</li>
<li>[Dev Deps] update <code>@ljharb/eslint-config</code></li>
<li>[Tests] add regression tests for keys containing percent-encoded
bracket text</li>
</ul>
<h2><strong>6.15.1</strong></h2>
<ul>
<li>[Fix] <code>parse</code>: <code>parameterLimit: Infinity</code> with
<code>throwOnLimitExceeded: true</code> silently drops all
parameters</li>
<li>[Deps] update <code>@ljharb/eslint-config</code></li>
<li>[Dev Deps] update <code>@ljharb/eslint-config</code>,
<code>iconv-lite</code></li>
<li>[Tests] increase coverage</li>
</ul>
<h2><strong>6.15.0</strong></h2>
<ul>
<li>[New] <code>parse</code>: add <code>strictMerge</code> option to
wrap object/primitive conflicts in an array (<a
href="https://redirect.github.com/ljharb/qs/issues/425">#425</a>, <a
href="https://redirect.github.com/ljharb/qs/issues/122">#122</a>)</li>
<li>[Fix] <code>duplicates</code> option should not apply to bracket
notation keys (<a
href="https://redirect.github.com/ljharb/qs/issues/514">#514</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9aca4076fe"><code>9aca407</code></a>
v6.15.2</li>
<li><a
href="5e33d33447"><code>5e33d33</code></a>
[Dev Deps] update <code>@ljharb/eslint-config</code></li>
<li><a
href="21f80b33e5"><code>21f80b3</code></a>
[Fix] <code>stringify</code>: skip null/undefined entries in
<code>arrayFormat: 'comma'</code> + `e...</li>
<li><a
href="a0a81ea207"><code>a0a81ea</code></a>
[Fix] <code>stringify</code>: use configured <code>delimiter</code>
after <code>charsetSentinel</code></li>
<li><a
href="e3062f78f5"><code>e3062f7</code></a>
[Fix] <code>stringify</code>: apply <code>formatter</code> to encoded
key under <code>strictNullHandling</code></li>
<li><a
href="0c180a40ad"><code>0c180a4</code></a>
[Fix] <code>stringify</code>: skip null/undefined filter-array entries
instead of crashi...</li>
<li><a
href="3a8b94aec1"><code>3a8b94a</code></a>
[Tests] add regression tests for keys containing percent-encoded bracket
text</li>
<li><a
href="96755abd35"><code>96755ab</code></a>
[readme] fix grammar</li>
<li><a
href="a419ce5bbf"><code>a419ce5</code></a>
[Fix] <code>parse</code>: handle nested bracket groups and add
regression tests</li>
<li><a
href="3f5e1c528c"><code>3f5e1c5</code></a>
v6.15.1</li>
<li>Additional commits viewable in <a
href="https://github.com/ljharb/qs/compare/v6.14.2...v6.15.2">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/modelcontextprotocol/kotlin-sdk/network/alerts).
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the infrastructure group with 1 update in the / directory:
org.slf4j:slf4j-simple.
Updates `org.slf4j:slf4j-simple` from 2.0.17 to 2.0.18
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
closes#544
Replaces opaque `JsonObject?` modelling of `elicitation` with a typed
`ClientCapabilities.Elicitation` (`form`, `url`), and adds the new
`tasks` capability on both `ClientCapabilities` and `ServerCapabilities`
(with `list`, `cancel`, per-request-type augmentation). Wires capability
assertions for `tasks/*` methods and `notifications/tasks/status` into
`Client` and `ServerSession`
## How Has This Been Tested?
unit tests
## Breaking Changes
yes
now elicitation is a specific class in capabilities
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Drops`dev.mokksy:mokksy` dependency
## Motivation and Context
`mokksy` is a niche, single-maintainer library with very limited
external adoption, introduced by its own author. Keeping a test-only
dependency on it is unnecessary supply-chain exposure given that the two
patterns already used in this repo, `MockEngine` for transport-level
tests and `embeddedServer` for integration-level tests, cover everything
it provided.
## Breaking Changes
none
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Fixes the SSE client transport so that registered `onClose` callbacks
fire when the underlying SSE session ends — whether the server closes
the stream gracefully or an error event terminates it.
closes#437
## Motivation and Context
`SseClientTransport.collectMessages` already runs `closeResources()` in
its `finally` block when `session.incoming` completes, but it never
invoked the `onClose` callback chain. As a result, the MCP `Client` (and
any user code calling `transport.onClose { ... }`) had no way to detect
that the server-side SSE connection had dropped.
The other client transports already do this correctly:
- `StdioClientTransport` calls `invokeOnCloseCallback()` from its
read-loop `finally`
(kotlin-sdk-client/src/.../StdioClientTransport.kt:224).
- The protected `AbstractTransport.invokeOnCloseCallback()` helper
guards against duplicate firing with an `AtomicBoolean`, so it is safe
to call from both the read-loop `finally` and the user-initiated
`close()` path.
The fix mirrors that established pattern in one line.
## How Has This Been Tested?
Added `onClose callback fires when the SSE stream is disconnected by the
server` to `SseClientTransportTest`. The test:
1. Starts the transport against a mock SSE engine.
2. Closes the SSE byte channel server-side via a new
`MockSseClientEngine.disconnectSseStream()` helper.
3. Asserts the registered `onClose` callback fires (using Kotest
`eventually`, since the close propagates on a real-time dispatcher).
I also verified the test fails before the fix and passes after.
```
./gradlew :kotlin-sdk-client:jvmTest
./gradlew apiCheck ktlintCheck detekt
```
## Breaking Changes
None. `invokeOnCloseCallback()` is `protected` on `AbstractTransport`;
this PR only adds a call site inside `SseClientTransport`. No public API
surface changes.
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
[//]: # (dependabot-start)
⚠️ **Dependabot is rebasing this PR** ⚠️
Rebasing might not happen immediately, so don't worry if this takes some
time.
Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.
---
[//]: # (dependabot-end)
Bumps the other-dependencies group with 1 update in the
/samples/kotlin-mcp-client directory:
[com.anthropic:anthropic-java](https://github.com/anthropics/anthropic-sdk-java).
Updates `com.anthropic:anthropic-java` from 2.28.0 to 2.30.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/releases">com.anthropic:anthropic-java's
releases</a>.</em></p>
<blockquote>
<h2>v2.30.0</h2>
<h2>2.30.0 (2026-05-06)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.29.0...v2.30.0">v2.29.0...v2.30.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add support for Managed Agents multiagents and
outcomes, webhooks, vault validation (<a
href="e641d5fef0">e641d5f</a>)</li>
<li><strong>api:</strong> add support for Managed Agents multiagents and
outcomes, webhooks, vault validation (<a
href="60675993a7">6067599</a>)</li>
<li><strong>client:</strong> support proxy authentication (<a
href="d91fea2762">d91fea2</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>api:</strong> Adjust webhook configuration (<a
href="34ea5b41cb">34ea5b4</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>fix merge errors (<a
href="c390c200d0">c390c20</a>)</li>
</ul>
<h2>v2.29.0</h2>
<h2>2.29.0 (2026-05-05)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.28.0...v2.29.0">v2.28.0...v2.29.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>client:</strong> allow targeting a workspace for OIDC
federation token exchange (<a
href="578003afed">578003a</a>)</li>
</ul>
<h3>Performance Improvements</h3>
<ul>
<li><strong>client:</strong> create one json mapper (<a
href="556ef492e5">556ef49</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>remove duplicated dokka setup (<a
href="d6b94f49fd">d6b94f4</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>remove bad semicolon (<a
href="ffb078b828">ffb078b</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/blob/main/CHANGELOG.md">com.anthropic:anthropic-java's
changelog</a>.</em></p>
<blockquote>
<h2>2.30.0 (2026-05-06)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.29.0...v2.30.0">v2.29.0...v2.30.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add support for Managed Agents multiagents and
outcomes, webhooks, vault validation (<a
href="e641d5fef0">e641d5f</a>)</li>
<li><strong>api:</strong> add support for Managed Agents multiagents and
outcomes, webhooks, vault validation (<a
href="60675993a7">6067599</a>)</li>
<li><strong>client:</strong> support proxy authentication (<a
href="d91fea2762">d91fea2</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>api:</strong> Adjust webhook configuration (<a
href="34ea5b41cb">34ea5b4</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>fix merge errors (<a
href="c390c200d0">c390c20</a>)</li>
</ul>
<h2>2.29.0 (2026-05-05)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.28.0...v2.29.0">v2.28.0...v2.29.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>client:</strong> allow targeting a workspace for OIDC
federation token exchange (<a
href="578003afed">578003a</a>)</li>
</ul>
<h3>Performance Improvements</h3>
<ul>
<li><strong>client:</strong> create one json mapper (<a
href="556ef492e5">556ef49</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>remove duplicated dokka setup (<a
href="d6b94f49fd">d6b94f4</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>remove bad semicolon (<a
href="ffb078b828">ffb078b</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5f413b58a3"><code>5f413b5</code></a>
chore: release main</li>
<li><a
href="46baee82fc"><code>46baee8</code></a>
fix(api): Adjust webhook configuration</li>
<li><a
href="0ce73ea4cc"><code>0ce73ea</code></a>
feat(api): add support for Managed Agents multiagents and outcomes,
webhooks,...</li>
<li><a
href="337eb3b320"><code>337eb3b</code></a>
chore: fix merge errors</li>
<li><a
href="0a95f16aac"><code>0a95f16</code></a>
feat(api): add support for Managed Agents multiagents and outcomes,
webhooks,...</li>
<li><a
href="93912dd436"><code>93912dd</code></a>
feat(client): support proxy authentication</li>
<li><a
href="1fc9ab10ed"><code>1fc9ab1</code></a>
chore: release main</li>
<li><a
href="9e4cbbd750"><code>9e4cbbd</code></a>
feat(client): allow targeting a workspace for OIDC federation token
exchange</li>
<li><a
href="e8e5894535"><code>e8e5894</code></a>
perf(client): create one json mapper</li>
<li><a
href="726e6f4416"><code>726e6f4</code></a>
chore: remove duplicated dokka setup</li>
<li>Additional commits viewable in <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.28.0...v2.30.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [hono](https://github.com/honojs/hono) from 4.12.14 to 4.12.18.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/honojs/hono/releases">hono's
releases</a>.</em></p>
<blockquote>
<h2>v4.12.18</h2>
<h2>Security fixes</h2>
<p>This release includes fixes for the following security issues:</p>
<h3>Cache Middleware ignores Vary: Authorization / Vary: Cookie leading
to cross-user cache leakage</h3>
<p>Affects: Cache Middleware. Fixes missing cache-skip handling for
<code>Vary: Authorization</code> and <code>Vary: Cookie</code>, where a
response cached for one authenticated user could be served to other
users. GHSA-p77w-8qqv-26rm</p>
<h3>CSS Declaration Injection via Style Object Values in JSX SSR</h3>
<p>Affects: hono/jsx. Fixes a missing CSS-context escape for
<code>style</code> object values and property names, where untrusted
input could inject additional CSS declarations. The impact is limited to
CSS and does not allow JavaScript execution. GHSA-qp7p-654g-cw7p</p>
<h3>Improper validation of NumericDate claims (exp, nbf, iat) in JWT
verify()</h3>
<p>Affects: <code>hono/utils/jwt</code>. Fixes improper validation of
<code>exp</code>, <code>nbf</code>, and <code>iat</code> claims, where
falsy, non-finite, or non-numeric values could silently bypass
time-based checks instead of being rejected per RFC 7519.
GHSA-hm8q-7f3q-5f36</p>
<hr />
<p>Users who use the JWT helper, hono/jsx, or the Cache middleware are
strongly encouraged to upgrade to this version.</p>
<h2>v4.12.17</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(jsx): normalize SVG attributes on the <!-- raw HTML omitted -->
root element by <a
href="https://github.com/kfly8"><code>@kfly8</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4893">honojs/hono#4893</a></li>
<li>fix(ssg): add <code>atom+xml</code> and <code>rss+xml</code> to
<code>defaultExtensionMap</code> by <a
href="https://github.com/yuintei"><code>@yuintei</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4899">honojs/hono#4899</a></li>
<li>fix(cors): make origin optional in CORSOptions by <a
href="https://github.com/truffle-dev"><code>@truffle-dev</code></a> in
<a
href="https://redirect.github.com/honojs/hono/pull/4905">honojs/hono#4905</a></li>
<li>fix(types): propagate middleware response types to app.on overloads
by <a href="https://github.com/T4ko0522"><code>@T4ko0522</code></a> in
<a
href="https://redirect.github.com/honojs/hono/pull/4906">honojs/hono#4906</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/kfly8"><code>@kfly8</code></a> made
their first contribution in <a
href="https://redirect.github.com/honojs/hono/pull/4893">honojs/hono#4893</a></li>
<li><a
href="https://github.com/truffle-dev"><code>@truffle-dev</code></a>
made their first contribution in <a
href="https://redirect.github.com/honojs/hono/pull/4905">honojs/hono#4905</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/honojs/hono/compare/v4.12.16...v4.12.17">https://github.com/honojs/hono/compare/v4.12.16...v4.12.17</a></p>
<h2>v4.12.16</h2>
<h2>Security fixes</h2>
<p>This release includes fixes for the following security issues:</p>
<h3>Unvalidated JSX Tag Names in hono/jsx May Allow HTML Injection</h3>
<p>Affects: hono/jsx. Fixes missing validation of JSX tag names when
using <code>jsx()</code> or <code>createElement()</code>, which could
allow HTML injection if untrusted input is used as the tag name.
GHSA-69xw-7hcm-h432</p>
<h3>bodyLimit() can be bypassed for chunked / unknown-length
requests</h3>
<p>Affects: Body Limit Middleware. Fixes late enforcement for request
bodies without a reliable Content-Length (e.g. chunked requests), where
oversized requests could reach handlers and return successful responses
before being rejected. GHSA-9vqf-7f2p-gf9v</p>
<h2>v4.12.15</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(jwt): support single-line PEM keys by <a
href="https://github.com/hiendv"><code>@hiendv</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4889">honojs/hono#4889</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f10dee89ce"><code>f10dee8</code></a>
4.12.18</li>
<li><a
href="a5bd9ebead"><code>a5bd9eb</code></a>
Merge commit from fork</li>
<li><a
href="58d3d3ad56"><code>58d3d3a</code></a>
Merge commit from fork</li>
<li><a
href="568c2ecc1d"><code>568c2ec</code></a>
Merge commit from fork</li>
<li><a
href="ff2b3d31df"><code>ff2b3d3</code></a>
4.12.17</li>
<li><a
href="52aaaf9714"><code>52aaaf9</code></a>
fix(types): propagate middleware response types to app.on overloads (<a
href="https://redirect.github.com/honojs/hono/issues/4906">#4906</a>)</li>
<li><a
href="76d5589e9b"><code>76d5589</code></a>
fix(cors): make origin optional in CORSOptions (<a
href="https://redirect.github.com/honojs/hono/issues/4905">#4905</a>)</li>
<li><a
href="8f027e5574"><code>8f027e5</code></a>
fix(ssg): add <code>atom+xml</code> and <code>rss+xml</code> to
<code>defaultExtensionMap</code> (<a
href="https://redirect.github.com/honojs/hono/issues/4899">#4899</a>)</li>
<li><a
href="bfba97ca7e"><code>bfba97c</code></a>
fix(jsx): normalize SVG attributes on the <svg> root element (<a
href="https://redirect.github.com/honojs/hono/issues/4893">#4893</a>)</li>
<li><a
href="90d4182aab"><code>90d4182</code></a>
4.12.16</li>
<li>Additional commits viewable in <a
href="https://github.com/honojs/hono/compare/v4.12.14...v4.12.18">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/modelcontextprotocol/kotlin-sdk/network/alerts).
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the all-dependencies group with 1 update in the
/integration-test/src/jvmTest/typescript directory:
[zod](https://github.com/colinhacks/zod).
Updates `zod` from 4.3.6 to 4.4.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/colinhacks/zod/releases">zod's
releases</a>.</em></p>
<blockquote>
<h2>v4.4.3</h2>
<h2>Commits:</h2>
<ul>
<li>4c2fa95ce3f3390fbc522324e406b4e9e89b88f9 docs: use Zernio primary
wordmark for gold sponsor logo</li>
<li>2aeec83eb135e3a83756e973ef44845fc5a455d2 docs: prune lapsed gold
sponsors and rebalance logo sizing</li>
<li>7391be88ac1ee5cd02057f5ccc012a1f5df4efd0 docs: prune lapsed
silver/bronze sponsors and add active ones</li>
<li>2c703322a21b4e2b12f33f49ea8430c451a68b4f docs: normalize bronze
sponsor logos to github avatar pattern</li>
<li>9195250cab0e7950efe39c3926d6c203b4b0a170 docs: remove Mintlify from
bronze sponsors (churned)</li>
<li>b8dffe9e62f17e6571e6249d05cc5102b54d94e4 docs: remove Numeric and
Speakeasy (2+ missed monthly cycles)</li>
<li>1cab69383fcdeae2a366d5e2a2fc4d8fc765d168 fix(v4): restore catch
handling for absent object keys (<a
href="https://redirect.github.com/colinhacks/zod/issues/5937">#5937</a>)
(<a
href="https://redirect.github.com/colinhacks/zod/issues/5939">#5939</a>)</li>
<li>c2be4f819064eed62c7c350a2d399b5faecd15f8 fix(v4): generalize
optin/fallback to transform; restore preprocess on absent keys (<a
href="https://redirect.github.com/colinhacks/zod/issues/5941">#5941</a>)</li>
<li>f3c9ec03ba7a28ae72d25cc295f38674bee0f559 4.4.3</li>
<li>1fb56a5c18c27102dbc92260a4007c7732a0ccca docs: document release
procedure in AGENTS.md</li>
</ul>
<h2>v4.4.2</h2>
<h2>Commits:</h2>
<ul>
<li>0c62df0ea19fd05abdf90473e9eef7eea530fab2 Clean up docs navigation
and stale labels (<a
href="https://redirect.github.com/colinhacks/zod/issues/5901">#5901</a>)</li>
<li>20cc794895cc8604fe0c87d83a5d1c3f89fad0ac chore: add security policy
and refresh tooling deps</li>
<li>6fbe07b0177efdd1bf1c0b05160e70d7a0702337 fix(docs): heading anchor
links now include the hash so it doesnt scoll all the way up, follows
navbar logic (<a
href="https://redirect.github.com/colinhacks/zod/issues/5791">#5791</a>)</li>
<li>4bbed1b1c73eca4ce9e59b1189ed236aa6c8b5bd Tighten discriminated union
option typing</li>
<li>bbac3e567e7fccfaaf7cdc97f1ce30c295e2c908 Update PR guidance for
agents</li>
<li>cf0dc942a32805c292fff59ade20a7ace980735a Merge remote-tracking
branch 'origin/main' into fix-discriminated-union-key-constraint</li>
<li>292c894a5fd2aa42e527900b83d8d7a3009a709c docs: add Zernio gold
sponsor</li>
<li>1fc9f311c28dcf80d0bb5a36b177086cbc3d8eca docs: document codec
inversion</li>
<li>1373c85da9aeff704a9762d27bc58699618aefb7 docs: remove AI disclosure
guidance</li>
<li>e20d02b473c08e3a4e557bc610b1b5fac079b649 chore: ignore triage
notes</li>
<li>e58ea4d91b1dfe8194b73508203213cbc7e9c936 docs: test Zod Mini tab
code heights</li>
<li>905761a5d127e8d5dd2ebb3bc88c75cb0b8149ff docs: document preprocess
input type narrowing</li>
<li>bf64bac850d4dee2b7dde7e64909d5d796d32043 chore: tighten test
guidance in AGENTS.md</li>
<li>8ec4e73f4c4693b6361ad591be40fb41eb8a9f95 chore: update play.ts
scratch</li>
<li>02c2baf7d0d615872fa4528a8020603b71211702 Make z.preprocess defer
optionality to inner schema (<a
href="https://redirect.github.com/colinhacks/zod/issues/5929">#5929</a>)</li>
<li>88015df8e25c44fb5385eb3ef28935119cd5edea fix(docs): drop deprecated
<code>baseUrl</code> from tsconfig</li>
<li>c59d4474e3b4cad1b323462186cf607178ce8267 4.4.2</li>
</ul>
<h2>v4.4.1</h2>
<h2>Commits:</h2>
<ul>
<li>481f7be4238c83ed58183f921b2646f340a91c6a ci: gate release publishing
on full test workflow</li>
<li>95ccab423aec720b2523c3a64cdc7e3204537cc7 test(v3): restore optional
undefined expectations</li>
<li>cede2c63739a5823d6aa5093d291e9a111da943d fix(v4): reject tuple holes
before required defaults (<a
href="https://redirect.github.com/colinhacks/zod/issues/5900">#5900</a>)</li>
<li>edd0bf0f5ada4a8dc581c259407d7bbad0a71ea7 release: 4.4.1</li>
<li>180d83d1dbe6a59260710cc8637a3dea2281ee56 docs: remove Jazz featured
sponsor</li>
</ul>
<h2>v4.4.0</h2>
<h2>4.4.0</h2>
<p>This is a minor release with a wide set of correctness and soundness
fixes. Some fixes intentionally make Zod stricter, so code that depended
on previously accepted invalid or ambiguous inputs may need small
updates.</p>
<h2>Potentially breaking bug fixes</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1fb56a5c18"><code>1fb56a5</code></a>
docs: document release procedure in AGENTS.md</li>
<li><a
href="f3c9ec03ba"><code>f3c9ec0</code></a>
4.4.3</li>
<li><a
href="c2be4f8190"><code>c2be4f8</code></a>
fix(v4): generalize optin/fallback to transform; restore preprocess on
absent...</li>
<li><a
href="1cab69383f"><code>1cab693</code></a>
fix(v4): restore catch handling for absent object keys (<a
href="https://redirect.github.com/colinhacks/zod/issues/5937">#5937</a>)
(<a
href="https://redirect.github.com/colinhacks/zod/issues/5939">#5939</a>)</li>
<li><a
href="b8dffe9e62"><code>b8dffe9</code></a>
docs: remove Numeric and Speakeasy (2+ missed monthly cycles)</li>
<li><a
href="9195250cab"><code>9195250</code></a>
docs: remove Mintlify from bronze sponsors (churned)</li>
<li><a
href="2c703322a2"><code>2c70332</code></a>
docs: normalize bronze sponsor logos to github avatar pattern</li>
<li><a
href="7391be88ac"><code>7391be8</code></a>
docs: prune lapsed silver/bronze sponsors and add active ones</li>
<li><a
href="2aeec83eb1"><code>2aeec83</code></a>
docs: prune lapsed gold sponsors and rebalance logo sizing</li>
<li><a
href="4c2fa95ce3"><code>4c2fa95</code></a>
docs: use Zernio primary wordmark for gold sponsor logo</li>
<li>Additional commits viewable in <a
href="https://github.com/colinhacks/zod/compare/v4.3.6...v4.4.3">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for zod since your current version.</p>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[org.jetbrains.kotlinx:kotlinx-serialization-json](https://github.com/Kotlin/kotlinx.serialization)
from 1.10.0 to 1.11.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Kotlin/kotlinx.serialization/releases">org.jetbrains.kotlinx:kotlinx-serialization-json's
releases</a>.</em></p>
<blockquote>
<h2>1.11.0</h2>
<p>This release is based on Kotlin 2.3.20 and provides a new Json
exceptions API and some bugfixes and improvements.</p>
<h2>Expose Json exceptions structure</h2>
<p>To make working with exceptions easier and providing proper error
codes in e.g., REST APIs,
classes <code>JsonException</code>, <code>JsonDecodingException</code>,
and <code>JsonEncodingException</code> are now public.
They have relevant public properties, such as <code>shortMessage</code>,
<code>path</code>, <code>offset</code>, and others.
This API is currently experimental, and we're going to improve it
further in the subsequent releases.
See the linked issues for the details: <a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930">#1930</a>,
<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877">#1877</a>.</p>
<h2>Ability to hide user input from exception messages for
security/privacy reasons.</h2>
<p>Historically, exception messages in kotlinx.serialization often
included the input Json itself for debuggability reason.
Such behavior may pose additional challenges for logging, analytics, and
other systems, since
a system is not always allowed to store user data due to
privacy/security reasons, which imposes additional sanitation logic.
To address this issue, a new property
<code>exceptionsWithDebugInfo</code> is added to
<code>JsonConfiguration</code>.
Disable it to hide user input from exception messages.
IMPORTANT: This behavior will be enabled by default when this property
becomes stable.
See <a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590">#2590</a>
for more details.</p>
<h2>Bugfixes and improvements</h2>
<ul>
<li>CBOR: Relax value range check when decoding numbers (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167">#3167</a>)</li>
<li>Use a specialized writeDecimalLong method for IO stream integrations
in Json (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152">#3152</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md">org.jetbrains.kotlinx:kotlinx-serialization-json's
changelog</a>.</em></p>
<blockquote>
<h1>1.11.0 / 2026-04-10</h1>
<p>This release is based on Kotlin 2.3.20 and provides new Json
exceptions API and some bugfixes and improvements.</p>
<h2>Expose Json exceptions structure</h2>
<p>To make working with exceptions easier and providing proper error
codes in e.g., REST APIs,
classes <code>JsonException</code>, <code>JsonDecodingException</code>,
and <code>JsonEncodingException</code> are now public.
They have relevant public properties, such as <code>shortMessage</code>,
<code>path</code>, <code>offset</code>, and others.
This API is currently experimental, and we're going to improve it
further in the subsequent releases.
See the linked issues for the details: <a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930">#1930</a>,
<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877">#1877</a>.</p>
<h2>Ability to hide user input from exception messages for
security/privacy reasons.</h2>
<p>Historically, exception messages in kotlinx.serialization often
included the input Json itself for debuggability reason.
Such behavior may pose additional challenges for logging, analytics, and
other systems, since
a system is not always allowed to store user data due to
privacy/security reasons, which imposes additional sanitation logic.
To address this issue, a new property
<code>exceptionsWithDebugInfo</code> is added to
<code>JsonConfiguration</code>.
Disable it to hide user input from exception messages.
IMPORTANT: This behavior will be enabled by default when this property
becomes stable.
See <a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590">#2590</a>
for more details.</p>
<h2>Bugfixes and improvements</h2>
<ul>
<li>CBOR: Relax value range check when decoding numbers (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167">#3167</a>)</li>
<li>Use a specialized writeDecimalLong method for IO stream integrations
in Json (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152">#3152</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6956af2e60"><code>6956af2</code></a>
Prepare 1.11 release</li>
<li><a
href="390d84c68a"><code>390d84c</code></a>
Merge remote-tracking branch 'origin/master' into dev</li>
<li><a
href="431fe2dc0a"><code>431fe2d</code></a>
Use local repo for publishing (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3171">#3171</a>)</li>
<li><a
href="05c12b60a6"><code>05c12b6</code></a>
Add usage attribute to "testRepositories" configuration</li>
<li><a
href="a4e1f082ef"><code>a4e1f08</code></a>
Bump Kover version to 0.9.8 release (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3174">#3174</a>)</li>
<li><a
href="304e858ccc"><code>304e858</code></a>
Expose Json exceptions structure (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3145">#3145</a>)</li>
<li><a
href="4a0338ef50"><code>4a0338e</code></a>
Included G Play SDK verification file for core-jvm (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3169">#3169</a>)</li>
<li><a
href="421f64c74f"><code>421f64c</code></a>
CBOR: Relax value range check when decoding numbers (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167">#3167</a>)</li>
<li><a
href="85a4f126ec"><code>85a4f12</code></a>
KT-84955: mark apple x64 tagets as deprecated error</li>
<li><a
href="bd38b0e49b"><code>bd38b0e</code></a>
Remove dead code</li>
<li>Additional commits viewable in <a
href="https://github.com/Kotlin/kotlinx.serialization/compare/v1.10.0...v1.11.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `kotlin` from 2.3.20 to 2.3.21.
Updates `org.jetbrains.kotlin.jvm` from 2.3.20 to 2.3.21
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.3.21</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.3.21</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85628"><code>KT-85628</code></a>
KGP: composite build FUS metrics fail on access of
'configurationTimeMetrics'</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fea1ad8c18"><code>fea1ad8</code></a>
Add ChangeLog for 2.3.21-RC2</li>
<li><a
href="09c341e858"><code>09c341e</code></a>
disable swift export execution tests in order to update macos</li>
<li><a
href="67a08681cd"><code>67a0868</code></a>
Avoid accessing KotlinNativeLink taskProvider when task was not
executed</li>
<li><a
href="f89e5dbc18"><code>f89e5db</code></a>
[K/N] Disable TSAN in runtime tests</li>
<li><a
href="45d6c859c0"><code>45d6c85</code></a>
[K/N] Don't generate generic safe casts for Objective-C types</li>
<li><a
href="9261a6f079"><code>9261a6f</code></a>
[K/N][tests] Add a reproducer for KT-85508</li>
<li><a
href="c9ab9db37a"><code>c9ab9db</code></a>
[K/N][tests] Add a reproducer for KT-85399</li>
<li><a
href="502e84484e"><code>502e844</code></a>
Explain: fix for destructuring declarations</li>
<li><a
href="0c26485d83"><code>0c26485</code></a>
Explain: fix for object literals</li>
<li><a
href="68a9e3f99f"><code>68a9e3f</code></a>
[minor] fix testdata name in explain test</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.20...v2.3.21">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.3.20 to
2.3.21
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.plugin.serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.3.21</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.3.21</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85628"><code>KT-85628</code></a>
KGP: composite build FUS metrics fail on access of
'configurationTimeMetrics'</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fea1ad8c18"><code>fea1ad8</code></a>
Add ChangeLog for 2.3.21-RC2</li>
<li><a
href="09c341e858"><code>09c341e</code></a>
disable swift export execution tests in order to update macos</li>
<li><a
href="67a08681cd"><code>67a0868</code></a>
Avoid accessing KotlinNativeLink taskProvider when task was not
executed</li>
<li><a
href="f89e5dbc18"><code>f89e5db</code></a>
[K/N] Disable TSAN in runtime tests</li>
<li><a
href="45d6c859c0"><code>45d6c85</code></a>
[K/N] Don't generate generic safe casts for Objective-C types</li>
<li><a
href="9261a6f079"><code>9261a6f</code></a>
[K/N][tests] Add a reproducer for KT-85508</li>
<li><a
href="c9ab9db37a"><code>c9ab9db</code></a>
[K/N][tests] Add a reproducer for KT-85399</li>
<li><a
href="502e84484e"><code>502e844</code></a>
Explain: fix for destructuring declarations</li>
<li><a
href="0c26485d83"><code>0c26485</code></a>
Explain: fix for object literals</li>
<li><a
href="68a9e3f99f"><code>68a9e3f</code></a>
[minor] fix testdata name in explain test</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.20...v2.3.21">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Add `DnsRebindingProtection` Ktor route-scoped plugin and enable it by
default across all http transports
## Motivation and Context
DNS rebinding protection was disabled by default
(`enableDnsRebindingProtection = false`), and sse endpoints
(`Route.mcp()`) had zero protection. Same vulnerability as typescript
sdk
[GHSA-w48q-cv73-mx4w](https://github.com/modelcontextprotocol/typescript-sdk/security/advisories/GHSA-w48q-cv73-mx4w)
## How Has This Been Tested?
all tests pass
## Breaking Changes
- `Route.mcp()`, `Application.mcp()` signatures changed (new
`enableDnsRebindingProtection`, `allowedHosts`, `allowedOrigins`
params), binary incompatible on JVM
- `enableDnsRebindingProtection` default changed from `false` to `true`
on `mcpStreamableHttp`/`mcpStatelessStreamableHttp`
- Default allowed hosts: `localhost`, `127.0.0.1`, `[::1]` — opt out
with `enableDnsRebindingProtection = false`
- Host validation is now port-agnostic (matches ts sdk)
- Origin validation now allows missing `Origin` header (non-browser
clients)
- `Configuration.enableDnsRebindingProtection`, `.allowedHosts`,
`.allowedOrigins` deprecated in favor of the plugin
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Migrate detekt to a convention plugin in `buildSrc`, switch the project
to a fully explicit YAML config (`buildUponDefaultConfig = false`), fix
the real findings that this stricter setup revealed, and remove
`@Suppress` annotations that became unnecessary after the rule changes.
## Motivation and Context
- Explicit visibility into the rule set
- Lock against detekt version upgrades
## Breaking Changes
None
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Motivation and Context
When a GET SSE stream disconnects and the client reconnects on the same
session, the new GET is silently rejected because the previous stream's
`STANDALONE_SSE_STREAM_ID` entry in `streamsMapping` hasn't been cleaned
up yet. Cleanup via `invokeOnCompletion` is asynchronous — there is a
race window where the stale entry persists and blocks reconnection.
Additionally, Ktor's `sse {}` handler commits 200 OK headers before
`handleGetRequest` runs, so the intended
`call.reject(HttpStatusCode.Conflict, ...)` cannot change the
already-committed HTTP status. On all tested engines (test host, CIO,
Netty), clients receive a 200 OK with an immediately-closed empty SSE
stream rather than a 409 Conflict. Server-side `CallLogging` reports 409
(from the response object, not the wire status), which is misleading.
### What this PR does
1. **Explicitly closes the old SSE session** before establishing a new
stream. If the old session is already dead, `close()` is a no-op. This
is the synchronous cleanup that the async `invokeOnCompletion` couldn't
provide.
2. **Replaces `invokeOnCompletion` with `try/finally`** around
`awaitCancellation()` — cleanup runs during cancellation propagation
(earlier in the lifecycle) rather than after job completion. An identity
check (`=== newContext`) ensures only this stream's entry is removed,
not a replacement's.
3. **Adds identity-based removal in `emitOnStream`** — a failed `send()`
on an old stream can no longer accidentally evict the new stream's
mapping.
4. **Rethrows `CancellationException`** instead of swallowing it,
preserving structured concurrency.
The TypeScript reference implementation avoids this race via synchronous
`ReadableStream.cancel()` cleanup. The Kotlin coroutine equivalent
(`invokeOnCompletion`) is inherently async. The Go SDK uses `defer
stream.release()` under a mutex for the same reason. The Java SDK uses
unconditional `AtomicReference.set()` replacement with
`compareAndExchange` on close.
Fixes#715
## How Has This Been Tested?
All tests run against latest `main` (`bf8dc6d`). ktlint and detekt pass
clean.
- 2 new unit tests (Ktor test host): reconnect after disconnect,
concurrent stream takeover
- 2 new integration tests (real CIO embedded server): same scenarios
over real HTTP
- Manual verification against a live Ktor+Netty MCP server (curl):
confirmed 200 OK on the wire with immediately-closed stream on reconnect
(pre-fix), live stream on reconnect (post-fix)
- All existing server unit tests pass (76 total)
- All existing integration tests pass (306 total)
## Breaking Changes
The server no longer returns 409 Conflict for a second GET SSE stream on
the same session. Instead, the old stream is explicitly closed and the
new stream takes over. The 409 was already unreachable as an HTTP status
— Ktor's `sse {}` handler commits 200 OK before the transport handler
runs on all tested engines (test host, CIO, Netty), so clients never
received 409 on the wire.
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
This bug likely became reachable after #681 (April 10) fixed the Netty
`appendSseHeaders` crash that previously prevented GET SSE from working
at all on Netty.
Cross-SDK comparison of how each SDK handles a second GET SSE on the
same session:
| SDK | Behavior | Cleanup mechanism | Stale mapping bug? |
|-----|----------|-------------------|-------------------|
| TypeScript (reference) | 409 Conflict | Synchronous
`ReadableStream.cancel()` | No |
| Go | 409 Conflict | `defer stream.release()` under mutex | No |
| Java | Replaces (no 409) | `AtomicReference.set()` +
`compareAndExchange` on close | No |
| C# | 400 Bad Request | Boolean flag, never reset (no reconnect
support) | No |
| Kotlin (before fix) | 409 (unreachable on wire) | Async
`invokeOnCompletion` | **Yes** |
| Kotlin (this PR) | Closes old + replaces | `try/finally` +
identity-based removal | No |
---------
Co-authored-by: devcrocod <devcrocod@gmail.com>
This PR adds the remaining non-security integration tests for the
Streamable HTTP transport as outlined in #183 and left over from #486.
### Changes included:
- **Pagination**: Added cursor-based pagination tests for Prompts,
Resources, and Tools to `Abstract*IntegrationTest`.
- **Bad Request**: Added tests to verify that invalid cursor parameters
correctly throw an `McpException` with `INTERNAL_ERROR`.
- **Logging**: Added `LoggingIntegrationTestStreamableHttp` to
specifically test `setLevel` and logging message notifications over
Streamable HTTP.
*Note: Security (Allow/Deny) tests are intentionally excluded as
discussed in #486, pending further server auth model implementation.*
Co-authored-by: Pavel Gorgulov <devcrocod@gmail.com>
Implements SEP-1577 sampling With tools
closes#409
## How Has This Been Tested?
unit + integration
## Breaking Changes
- binary changes
- MediaContent -> SamplingMessageContent
-
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Drop the deprecated `watchosX64` and `tvosX64`
## Breaking Changes
consumers that depended on `watchosX64` or `tvosX64` artifacts will need
to migrate to the corresponding ARM/simulator targets.
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
The `junitXml.required`, `includeSystemOutLog` and `includeSystemErrLog`
properties all default to `true` in Gradle JUnitXmlReport, so setting
them explicitly was a no-op. The latter two are also @Incubating API
Bumps `kotlin` from 2.2.21 to 2.3.21.
Updates `org.jetbrains.kotlin.jvm` from 2.2.21 to 2.3.21
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.3.21</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85628"><code>KT-85628</code></a>
KGP: composite build FUS metrics fail on access of
'configurationTimeMetrics'</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fea1ad8c18"><code>fea1ad8</code></a>
Add ChangeLog for 2.3.21-RC2</li>
<li><a
href="09c341e858"><code>09c341e</code></a>
disable swift export execution tests in order to update macos</li>
<li><a
href="67a08681cd"><code>67a0868</code></a>
Avoid accessing KotlinNativeLink taskProvider when task was not
executed</li>
<li><a
href="f89e5dbc18"><code>f89e5db</code></a>
[K/N] Disable TSAN in runtime tests</li>
<li><a
href="45d6c859c0"><code>45d6c85</code></a>
[K/N] Don't generate generic safe casts for Objective-C types</li>
<li><a
href="9261a6f079"><code>9261a6f</code></a>
[K/N][tests] Add a reproducer for KT-85508</li>
<li><a
href="c9ab9db37a"><code>c9ab9db</code></a>
[K/N][tests] Add a reproducer for KT-85399</li>
<li><a
href="502e84484e"><code>502e844</code></a>
Explain: fix for destructuring declarations</li>
<li><a
href="0c26485d83"><code>0c26485</code></a>
Explain: fix for object literals</li>
<li><a
href="68a9e3f99f"><code>68a9e3f</code></a>
[minor] fix testdata name in explain test</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.21">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.2.21 to
2.3.21
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.3.21</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85628"><code>KT-85628</code></a>
KGP: composite build FUS metrics fail on access of
'configurationTimeMetrics'</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fea1ad8c18"><code>fea1ad8</code></a>
Add ChangeLog for 2.3.21-RC2</li>
<li><a
href="09c341e858"><code>09c341e</code></a>
disable swift export execution tests in order to update macos</li>
<li><a
href="67a08681cd"><code>67a0868</code></a>
Avoid accessing KotlinNativeLink taskProvider when task was not
executed</li>
<li><a
href="f89e5dbc18"><code>f89e5db</code></a>
[K/N] Disable TSAN in runtime tests</li>
<li><a
href="45d6c859c0"><code>45d6c85</code></a>
[K/N] Don't generate generic safe casts for Objective-C types</li>
<li><a
href="9261a6f079"><code>9261a6f</code></a>
[K/N][tests] Add a reproducer for KT-85508</li>
<li><a
href="c9ab9db37a"><code>c9ab9db</code></a>
[K/N][tests] Add a reproducer for KT-85399</li>
<li><a
href="502e84484e"><code>502e844</code></a>
Explain: fix for destructuring declarations</li>
<li><a
href="0c26485d83"><code>0c26485</code></a>
Explain: fix for object literals</li>
<li><a
href="68a9e3f99f"><code>68a9e3f</code></a>
[minor] fix testdata name in explain test</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.21">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `kotlin` from 2.2.21 to 2.3.21.
Updates `org.jetbrains.kotlin.jvm` from 2.2.21 to 2.3.21
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.3.21</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.3.21</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85628"><code>KT-85628</code></a>
KGP: composite build FUS metrics fail on access of
'configurationTimeMetrics'</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fea1ad8c18"><code>fea1ad8</code></a>
Add ChangeLog for 2.3.21-RC2</li>
<li><a
href="09c341e858"><code>09c341e</code></a>
disable swift export execution tests in order to update macos</li>
<li><a
href="67a08681cd"><code>67a0868</code></a>
Avoid accessing KotlinNativeLink taskProvider when task was not
executed</li>
<li><a
href="f89e5dbc18"><code>f89e5db</code></a>
[K/N] Disable TSAN in runtime tests</li>
<li><a
href="45d6c859c0"><code>45d6c85</code></a>
[K/N] Don't generate generic safe casts for Objective-C types</li>
<li><a
href="9261a6f079"><code>9261a6f</code></a>
[K/N][tests] Add a reproducer for KT-85508</li>
<li><a
href="c9ab9db37a"><code>c9ab9db</code></a>
[K/N][tests] Add a reproducer for KT-85399</li>
<li><a
href="502e84484e"><code>502e844</code></a>
Explain: fix for destructuring declarations</li>
<li><a
href="0c26485d83"><code>0c26485</code></a>
Explain: fix for object literals</li>
<li><a
href="68a9e3f99f"><code>68a9e3f</code></a>
[minor] fix testdata name in explain test</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.21">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.2.21 to
2.3.21
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.plugin.serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.3.21</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.3.21</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85628"><code>KT-85628</code></a>
KGP: composite build FUS metrics fail on access of
'configurationTimeMetrics'</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fea1ad8c18"><code>fea1ad8</code></a>
Add ChangeLog for 2.3.21-RC2</li>
<li><a
href="09c341e858"><code>09c341e</code></a>
disable swift export execution tests in order to update macos</li>
<li><a
href="67a08681cd"><code>67a0868</code></a>
Avoid accessing KotlinNativeLink taskProvider when task was not
executed</li>
<li><a
href="f89e5dbc18"><code>f89e5db</code></a>
[K/N] Disable TSAN in runtime tests</li>
<li><a
href="45d6c859c0"><code>45d6c85</code></a>
[K/N] Don't generate generic safe casts for Objective-C types</li>
<li><a
href="9261a6f079"><code>9261a6f</code></a>
[K/N][tests] Add a reproducer for KT-85508</li>
<li><a
href="c9ab9db37a"><code>c9ab9db</code></a>
[K/N][tests] Add a reproducer for KT-85399</li>
<li><a
href="502e84484e"><code>502e844</code></a>
Explain: fix for destructuring declarations</li>
<li><a
href="0c26485d83"><code>0c26485</code></a>
Explain: fix for object literals</li>
<li><a
href="68a9e3f99f"><code>68a9e3f</code></a>
[minor] fix testdata name in explain test</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.21">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `kotlin` from 2.2.21 to 2.3.21.
Updates `org.jetbrains.kotlin.jvm` from 2.2.21 to 2.3.21
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.3.21</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.3.21</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85628"><code>KT-85628</code></a>
KGP: composite build FUS metrics fail on access of
'configurationTimeMetrics'</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fea1ad8c18"><code>fea1ad8</code></a>
Add ChangeLog for 2.3.21-RC2</li>
<li><a
href="09c341e858"><code>09c341e</code></a>
disable swift export execution tests in order to update macos</li>
<li><a
href="67a08681cd"><code>67a0868</code></a>
Avoid accessing KotlinNativeLink taskProvider when task was not
executed</li>
<li><a
href="f89e5dbc18"><code>f89e5db</code></a>
[K/N] Disable TSAN in runtime tests</li>
<li><a
href="45d6c859c0"><code>45d6c85</code></a>
[K/N] Don't generate generic safe casts for Objective-C types</li>
<li><a
href="9261a6f079"><code>9261a6f</code></a>
[K/N][tests] Add a reproducer for KT-85508</li>
<li><a
href="c9ab9db37a"><code>c9ab9db</code></a>
[K/N][tests] Add a reproducer for KT-85399</li>
<li><a
href="502e84484e"><code>502e844</code></a>
Explain: fix for destructuring declarations</li>
<li><a
href="0c26485d83"><code>0c26485</code></a>
Explain: fix for object literals</li>
<li><a
href="68a9e3f99f"><code>68a9e3f</code></a>
[minor] fix testdata name in explain test</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.21">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.2.21 to
2.3.21
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.plugin.serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.3.21</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.3.21</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85628"><code>KT-85628</code></a>
KGP: composite build FUS metrics fail on access of
'configurationTimeMetrics'</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fea1ad8c18"><code>fea1ad8</code></a>
Add ChangeLog for 2.3.21-RC2</li>
<li><a
href="09c341e858"><code>09c341e</code></a>
disable swift export execution tests in order to update macos</li>
<li><a
href="67a08681cd"><code>67a0868</code></a>
Avoid accessing KotlinNativeLink taskProvider when task was not
executed</li>
<li><a
href="f89e5dbc18"><code>f89e5db</code></a>
[K/N] Disable TSAN in runtime tests</li>
<li><a
href="45d6c859c0"><code>45d6c85</code></a>
[K/N] Don't generate generic safe casts for Objective-C types</li>
<li><a
href="9261a6f079"><code>9261a6f</code></a>
[K/N][tests] Add a reproducer for KT-85508</li>
<li><a
href="c9ab9db37a"><code>c9ab9db</code></a>
[K/N][tests] Add a reproducer for KT-85399</li>
<li><a
href="502e84484e"><code>502e844</code></a>
Explain: fix for destructuring declarations</li>
<li><a
href="0c26485d83"><code>0c26485</code></a>
Explain: fix for object literals</li>
<li><a
href="68a9e3f99f"><code>68a9e3f</code></a>
[minor] fix testdata name in explain test</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.21">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the kotlin group with 2 updates in the / directory:
[org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin)
and
[org.jetbrains.kotlin:kotlin-serialization](https://github.com/JetBrains/kotlin).
Updates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.3.20 to
2.3.21
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin:kotlin-gradle-plugin's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.3.21</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin:kotlin-gradle-plugin's
changelog</a>.</em></p>
<blockquote>
<h2>2.3.21</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85628"><code>KT-85628</code></a>
KGP: composite build FUS metrics fail on access of
'configurationTimeMetrics'</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fea1ad8c18"><code>fea1ad8</code></a>
Add ChangeLog for 2.3.21-RC2</li>
<li><a
href="09c341e858"><code>09c341e</code></a>
disable swift export execution tests in order to update macos</li>
<li><a
href="67a08681cd"><code>67a0868</code></a>
Avoid accessing KotlinNativeLink taskProvider when task was not
executed</li>
<li><a
href="f89e5dbc18"><code>f89e5db</code></a>
[K/N] Disable TSAN in runtime tests</li>
<li><a
href="45d6c859c0"><code>45d6c85</code></a>
[K/N] Don't generate generic safe casts for Objective-C types</li>
<li><a
href="9261a6f079"><code>9261a6f</code></a>
[K/N][tests] Add a reproducer for KT-85508</li>
<li><a
href="c9ab9db37a"><code>c9ab9db</code></a>
[K/N][tests] Add a reproducer for KT-85399</li>
<li><a
href="502e84484e"><code>502e844</code></a>
Explain: fix for destructuring declarations</li>
<li><a
href="0c26485d83"><code>0c26485</code></a>
Explain: fix for object literals</li>
<li><a
href="68a9e3f99f"><code>68a9e3f</code></a>
[minor] fix testdata name in explain test</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.20...v2.3.21">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin:kotlin-serialization` from 2.3.20 to
2.3.21
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin:kotlin-serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.3.21</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin:kotlin-serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.3.21</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85628"><code>KT-85628</code></a>
KGP: composite build FUS metrics fail on access of
'configurationTimeMetrics'</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fea1ad8c18"><code>fea1ad8</code></a>
Add ChangeLog for 2.3.21-RC2</li>
<li><a
href="09c341e858"><code>09c341e</code></a>
disable swift export execution tests in order to update macos</li>
<li><a
href="67a08681cd"><code>67a0868</code></a>
Avoid accessing KotlinNativeLink taskProvider when task was not
executed</li>
<li><a
href="f89e5dbc18"><code>f89e5db</code></a>
[K/N] Disable TSAN in runtime tests</li>
<li><a
href="45d6c859c0"><code>45d6c85</code></a>
[K/N] Don't generate generic safe casts for Objective-C types</li>
<li><a
href="9261a6f079"><code>9261a6f</code></a>
[K/N][tests] Add a reproducer for KT-85508</li>
<li><a
href="c9ab9db37a"><code>c9ab9db</code></a>
[K/N][tests] Add a reproducer for KT-85399</li>
<li><a
href="502e84484e"><code>502e844</code></a>
Explain: fix for destructuring declarations</li>
<li><a
href="0c26485d83"><code>0c26485</code></a>
Explain: fix for object literals</li>
<li><a
href="68a9e3f99f"><code>68a9e3f</code></a>
[minor] fix testdata name in explain test</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.20...v2.3.21">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin:kotlin-serialization` from 2.3.20 to
2.3.21
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin:kotlin-serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.3.21</h2>
<h2>Changelog</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin:kotlin-serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.3.21</h2>
<h3>Backend. Wasm</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a>
[Wasm] Failed to compile klibs in IC mode</li>
</ul>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a>
Prevent launching Default dispatcher threads from IJ SDK in kotlin
compiler</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a>
Native: roll back the workaround for KT-84678 once MapLibre has been
properly fixed</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a>
<code>@JvmRecord</code> in commonMain breaks
compileCommonMainKotlinMetadata with "Cannot access
'java.lang.Record'"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a>
Postpone/Revert
<code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a>
K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS
target</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a>
False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error
in multi-module project</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a>
Support top-level declarations from compiler plugins in JS incremental
compilation</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a>
K/JS: false-positive exportability warnings in multi-module project</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a>
Kotlin/JS: "Serializer for class not found" error when IR
output granularity is <code>whole-program</code></li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a>
Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion
generates incorrect d.ts</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a>
K/JS: bad mappings data in outputted Kotlin stdlib source map</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a>
Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li>
</ul>
<h3>Native. C and ObjC Import</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a>
Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass
with genericSafeCasts enabled</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a>
K/N: TypeCastException when using nw_parameters_create_secure_tcp block
parameter on 2.3.20</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a>
Update Gradle plugin-publish version to enable configuration cache badge
on Gradle plugins portal</li>
</ul>
<h3>Tools. Gradle. Compiler plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a>
AGP/Compose: MergeMappingFileTask clears R8 artifacts due to
<code>@OutputDirectory</code> annotation on AGP 9.1+</li>
</ul>
<h3>Tools. Scripts</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a>
Scripts: JVM backend internal error (IR lowering) when scratch file
contains anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a>
Exception while generating code when explain destructuring decls</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a>
scriptCompilationClasspathFromContext behavior changed from 2.3.10 to
2.3.20</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a>
Kotlin Scripting: ScriptDiagnostic reports "at null" instead
of error location</li>
</ul>
<h3>Tools. Statistics (FUS)</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-85628"><code>KT-85628</code></a>
KGP: composite build FUS metrics fail on access of
'configurationTimeMetrics'</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fea1ad8c18"><code>fea1ad8</code></a>
Add ChangeLog for 2.3.21-RC2</li>
<li><a
href="09c341e858"><code>09c341e</code></a>
disable swift export execution tests in order to update macos</li>
<li><a
href="67a08681cd"><code>67a0868</code></a>
Avoid accessing KotlinNativeLink taskProvider when task was not
executed</li>
<li><a
href="f89e5dbc18"><code>f89e5db</code></a>
[K/N] Disable TSAN in runtime tests</li>
<li><a
href="45d6c859c0"><code>45d6c85</code></a>
[K/N] Don't generate generic safe casts for Objective-C types</li>
<li><a
href="9261a6f079"><code>9261a6f</code></a>
[K/N][tests] Add a reproducer for KT-85508</li>
<li><a
href="c9ab9db37a"><code>c9ab9db</code></a>
[K/N][tests] Add a reproducer for KT-85399</li>
<li><a
href="502e84484e"><code>502e844</code></a>
Explain: fix for destructuring declarations</li>
<li><a
href="0c26485d83"><code>0c26485</code></a>
Explain: fix for object literals</li>
<li><a
href="68a9e3f99f"><code>68a9e3f</code></a>
[minor] fix testdata name in explain test</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.20...v2.3.21">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
add new sample: kotlinlang mcp server with 2 tools
- search
- get_page
## How Has This Been Tested?
inspector/unit
## Breaking Changes
none
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
<!-- Provide a brief summary of your changes -->
Add support for MCP extension negotiation during the initialize
handshake, as defined in the MCP extensions specification. Clients and
servers can now advertise supported extensions via a new `extensions:
Map<String, JsonObject>?` field on their respective capabilities
objects.
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
Extensions are supported part of the [MCP spec
](https://modelcontextprotocol.io/extensions/overview) and are available
in other language libraries e.g. [Golang
](862d78a265/mcp/protocol.go (L215)).
## How Has This Been Tested?
Existing and added unit tests
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
Adding a new field to existing ClientCapabilities and ServerCapabilities
fields will break already compiled clients. They will need to recompile
on upgrading.
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Co-authored-by: Pavel Gorgulov <devcrocod@gmail.com>
Bumps the other-dependencies group with 1 update in the
/samples/kotlin-mcp-client directory:
[com.anthropic:anthropic-java](https://github.com/anthropics/anthropic-sdk-java).
Updates `com.anthropic:anthropic-java` from 2.25.0 to 2.26.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/releases">com.anthropic:anthropic-java's
releases</a>.</em></p>
<blockquote>
<h2>v2.26.0</h2>
<h2>2.26.0 (2026-04-16)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.25.0...v2.26.0">v2.25.0...v2.26.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add claude-opus-4-7, token budgets and
user_profiles (<a
href="a240f4f01f">a240f4f</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>ci:</strong> remove release-doctor workflow (<a
href="5d22f5b0bd">5d22f5b</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/blob/main/CHANGELOG.md">com.anthropic:anthropic-java's
changelog</a>.</em></p>
<blockquote>
<h2>2.26.0 (2026-04-16)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.25.0...v2.26.0">v2.25.0...v2.26.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add claude-opus-4-7, token budgets and
user_profiles (<a
href="a240f4f01f">a240f4f</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>ci:</strong> remove release-doctor workflow (<a
href="5d22f5b0bd">5d22f5b</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ec3724d2c8"><code>ec3724d</code></a>
chore: release main (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/323">#323</a>)</li>
<li>See full diff in <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.25.0...v2.26.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [hono](https://github.com/honojs/hono) from 4.12.12 to 4.12.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/honojs/hono/releases">hono's
releases</a>.</em></p>
<blockquote>
<h2>v4.12.14</h2>
<h2>Security fixes</h2>
<p>This release includes fixes for the following security issues:</p>
<h3>Improper handling of JSX attribute names in hono/jsx SSR</h3>
<p>Affects: hono/jsx. Fixes missing validation of JSX attribute names
during server-side rendering, which could allow malformed attribute keys
to corrupt the generated HTML output and inject unintended attributes or
elements. GHSA-458j-xx4x-4375</p>
<h2>Other changes</h2>
<ul>
<li>fix(aws-lambda): handle invalid header names in request processing
(<a
href="https://redirect.github.com/honojs/hono/issues/4883">#4883</a>)
fa2c74fe</li>
</ul>
<h2>v4.12.13</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(types): infer response type from last handler in app.on
9-/10-handler overloads by <a
href="https://github.com/T4ko0522"><code>@T4ko0522</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4865">honojs/hono#4865</a></li>
<li>feat(trailing-slash): add <code>skip</code> option by <a
href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4862">honojs/hono#4862</a></li>
<li>feat(cache): add <code>onCacheNotAvailable</code> option by <a
href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4876">honojs/hono#4876</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/T4ko0522"><code>@T4ko0522</code></a>
made their first contribution in <a
href="https://redirect.github.com/honojs/hono/pull/4865">honojs/hono#4865</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/honojs/hono/compare/v4.12.12...v4.12.13">https://github.com/honojs/hono/compare/v4.12.12...v4.12.13</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="cf2d2b7edc"><code>cf2d2b7</code></a>
4.12.14</li>
<li><a
href="66daa2edef"><code>66daa2e</code></a>
Merge commit from fork</li>
<li><a
href="fa2c74fe5c"><code>fa2c74f</code></a>
fix(aws-lambda): handle invalid header names in request processing (<a
href="https://redirect.github.com/honojs/hono/issues/4883">#4883</a>)</li>
<li><a
href="3779927c17"><code>3779927</code></a>
4.12.13</li>
<li><a
href="faa6c46a1a"><code>faa6c46</code></a>
feat(cache): add <code>onCacheNotAvailable</code> option (<a
href="https://redirect.github.com/honojs/hono/issues/4876">#4876</a>)</li>
<li><a
href="f23e97b7f3"><code>f23e97b</code></a>
feat(trailing-slash): add <code>skip</code> option (<a
href="https://redirect.github.com/honojs/hono/issues/4862">#4862</a>)</li>
<li><a
href="1aa32fb91e"><code>1aa32fb</code></a>
fix(types): infer response type from last handler in app.on 9- and
10-handler...</li>
<li>See full diff in <a
href="https://github.com/honojs/hono/compare/v4.12.12...v4.12.14">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/modelcontextprotocol/kotlin-sdk/network/alerts).
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the kotlinx group with 1 update in the / directory:
[org.jetbrains.kotlinx:kotlinx-serialization-json](https://github.com/Kotlin/kotlinx.serialization).
Updates `org.jetbrains.kotlinx:kotlinx-serialization-json` from 1.10.0
to 1.11.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Kotlin/kotlinx.serialization/releases">org.jetbrains.kotlinx:kotlinx-serialization-json's
releases</a>.</em></p>
<blockquote>
<h2>1.11.0</h2>
<p>This release is based on Kotlin 2.3.20 and provides a new Json
exceptions API and some bugfixes and improvements.</p>
<h2>Expose Json exceptions structure</h2>
<p>To make working with exceptions easier and providing proper error
codes in e.g., REST APIs,
classes <code>JsonException</code>, <code>JsonDecodingException</code>,
and <code>JsonEncodingException</code> are now public.
They have relevant public properties, such as <code>shortMessage</code>,
<code>path</code>, <code>offset</code>, and others.
This API is currently experimental, and we're going to improve it
further in the subsequent releases.
See the linked issues for the details: <a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930">#1930</a>,
<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877">#1877</a>.</p>
<h2>Ability to hide user input from exception messages for
security/privacy reasons.</h2>
<p>Historically, exception messages in kotlinx.serialization often
included the input Json itself for debuggability reason.
Such behavior may pose additional challenges for logging, analytics, and
other systems, since
a system is not always allowed to store user data due to
privacy/security reasons, which imposes additional sanitation logic.
To address this issue, a new property
<code>exceptionsWithDebugInfo</code> is added to
<code>JsonConfiguration</code>.
Disable it to hide user input from exception messages.
IMPORTANT: This behavior will be enabled by default when this property
becomes stable.
See <a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590">#2590</a>
for more details.</p>
<h2>Bugfixes and improvements</h2>
<ul>
<li>CBOR: Relax value range check when decoding numbers (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167">#3167</a>)</li>
<li>Use a specialized writeDecimalLong method for IO stream integrations
in Json (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152">#3152</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md">org.jetbrains.kotlinx:kotlinx-serialization-json's
changelog</a>.</em></p>
<blockquote>
<h1>1.11.0 / 2026-04-10</h1>
<p>This release is based on Kotlin 2.3.20 and provides new Json
exceptions API and some bugfixes and improvements.</p>
<h2>Expose Json exceptions structure</h2>
<p>To make working with exceptions easier and providing proper error
codes in e.g., REST APIs,
classes <code>JsonException</code>, <code>JsonDecodingException</code>,
and <code>JsonEncodingException</code> are now public.
They have relevant public properties, such as <code>shortMessage</code>,
<code>path</code>, <code>offset</code>, and others.
This API is currently experimental, and we're going to improve it
further in the subsequent releases.
See the linked issues for the details: <a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1930">#1930</a>,
<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1877">#1877</a>.</p>
<h2>Ability to hide user input from exception messages for
security/privacy reasons.</h2>
<p>Historically, exception messages in kotlinx.serialization often
included the input Json itself for debuggability reason.
Such behavior may pose additional challenges for logging, analytics, and
other systems, since
a system is not always allowed to store user data due to
privacy/security reasons, which imposes additional sanitation logic.
To address this issue, a new property
<code>exceptionsWithDebugInfo</code> is added to
<code>JsonConfiguration</code>.
Disable it to hide user input from exception messages.
IMPORTANT: This behavior will be enabled by default when this property
becomes stable.
See <a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2590">#2590</a>
for more details.</p>
<h2>Bugfixes and improvements</h2>
<ul>
<li>CBOR: Relax value range check when decoding numbers (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167">#3167</a>)</li>
<li>Use a specialized writeDecimalLong method for IO stream integrations
in Json (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3152">#3152</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6956af2e60"><code>6956af2</code></a>
Prepare 1.11 release</li>
<li><a
href="390d84c68a"><code>390d84c</code></a>
Merge remote-tracking branch 'origin/master' into dev</li>
<li><a
href="431fe2dc0a"><code>431fe2d</code></a>
Use local repo for publishing (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3171">#3171</a>)</li>
<li><a
href="05c12b60a6"><code>05c12b6</code></a>
Add usage attribute to "testRepositories" configuration</li>
<li><a
href="a4e1f082ef"><code>a4e1f08</code></a>
Bump Kover version to 0.9.8 release (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3174">#3174</a>)</li>
<li><a
href="304e858ccc"><code>304e858</code></a>
Expose Json exceptions structure (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3145">#3145</a>)</li>
<li><a
href="4a0338ef50"><code>4a0338e</code></a>
Included G Play SDK verification file for core-jvm (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3169">#3169</a>)</li>
<li><a
href="421f64c74f"><code>421f64c</code></a>
CBOR: Relax value range check when decoding numbers (<a
href="https://redirect.github.com/Kotlin/kotlinx.serialization/issues/3167">#3167</a>)</li>
<li><a
href="85a4f126ec"><code>85a4f12</code></a>
KT-84955: mark apple x64 tagets as deprecated error</li>
<li><a
href="bd38b0e49b"><code>bd38b0e</code></a>
Remove dead code</li>
<li>Additional commits viewable in <a
href="https://github.com/Kotlin/kotlinx.serialization/compare/v1.10.0...v1.11.0">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the kotlin group with 2 updates in the / directory:
[org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin)
and
[org.jetbrains.kotlin:kotlin-serialization](https://github.com/JetBrains/kotlin).
Updates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.3.10 to
2.3.20
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin:kotlin-gradle-plugin's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.3.20</h2>
<h2>Changelog</h2>
<h3>Analysis API. FIR</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78090"><code>KT-78090</code></a>
Implement stubs support for new conditional returns and holdsIn
contracts</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82948"><code>KT-82948</code></a>
'FirRegularClass' expected as a containing declaration, got
'FirTypeAliasImpl'</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83467"><code>KT-83467</code></a>
Package-level JSpecify annotations are ignored when coming from jars or
libraries</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82057"><code>KT-82057</code></a>
K2. Cannot infer type parameter 'R' in Ktor routing post() function with
explicit response type</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82846"><code>KT-82846</code></a>
AA: unresolved KtExpression.expressionType for the reference to the
parameter with default value</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80485"><code>KT-80485</code></a>
False positive UNRESOLVED_REFERENCE on nested interface from super-super
class in the super type position inside an anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82772"><code>KT-82772</code></a>
Flaky false positive deprecation warning on PersistentMap.put in Kotlin
repo in IDE mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76487"><code>KT-76487</code></a>
StdLibSourcesLazyDeclarationResolveTestGenerated.testWrappedInt is
unstable</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82618"><code>KT-82618</code></a>
Various tests are failing with NPE in kt-master after updating the
compiler on 19.11.25</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82076"><code>KT-82076</code></a>
Error querying members of JavaClass created for
SymbolLightClassForAnnotationClass during library analysis</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71596"><code>KT-71596</code></a>
Include Js/Wasi checkers in AbstractLLFirDiagnosticsCollector</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82085"><code>KT-82085</code></a>
No OUTER_CLASS_ARGUMENTS_REQUIRED on type parameter bound in IDE</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81873"><code>KT-81873</code></a>
Provide a way of including traces in phase JFR events</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71929"><code>KT-71929</code></a>
Consider leaving the non-post-compute version at
EnhancementSymbolsCache.enhancedFunctions</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83173"><code>KT-83173</code></a>
Analysis API Tests: Library names with RC versions aren't sanitised</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65140"><code>KT-65140</code></a>
LL FIR: Implement AbstractFirPsiJsDiagnosticTest for LL FIR</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82212"><code>KT-82212</code></a>
[Analysis API, LL FIR] Implement AbstractDiagnosticsFirWasmTest and
AbstractDiagnosticsFirWasmWasiTest for LL FIR</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82227"><code>KT-82227</code></a>
Value classes should expose regular static methods</li>
</ul>
<h3>Analysis API. PSI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81710"><code>KT-81710</code></a>
'KtTypeReference.getTypeText' does not account for 'suspend' modifier on
suspend lambdas</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82258"><code>KT-82258</code></a>
Prepare PSI for migration from context receivers to context
parameters</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81074"><code>KT-81074</code></a>
KDoc: List rendering is broken</li>
</ul>
<h3>Analysis API. Providers and Caches</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82449"><code>KT-82449</code></a>
K2 IDE Analysis Freezes During Gradle Sync (Recursive Module Dependency
Computation in
KotlinModuleDependentsProviderBase.computeTransitiveDependents)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82629"><code>KT-82629</code></a>
'collectDiagnostics' returns stale syntax error after editor fix</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74907"><code>KT-74907</code></a>
Analysis API: Apply platform-based library module content restrictions
consistently</li>
</ul>
<h3>Analysis API. Standalone</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81107"><code>KT-81107</code></a>
AA: KtSourceModuleBuilder.sourceRoots doesn't works with symbolic
links</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin:kotlin-gradle-plugin's
changelog</a>.</em></p>
<blockquote>
<h2>2.3.20</h2>
<h3>Analysis API. FIR</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78090"><code>KT-78090</code></a>
Implement stubs support for new conditional returns and holdsIn
contracts</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82948"><code>KT-82948</code></a>
'FirRegularClass' expected as a containing declaration, got
'FirTypeAliasImpl'</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83467"><code>KT-83467</code></a>
Package-level JSpecify annotations are ignored when coming from jars or
libraries</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82057"><code>KT-82057</code></a>
K2. Cannot infer type parameter 'R' in Ktor routing post() function with
explicit response type</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82846"><code>KT-82846</code></a>
AA: unresolved KtExpression.expressionType for the reference to the
parameter with default value</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80485"><code>KT-80485</code></a>
False positive UNRESOLVED_REFERENCE on nested interface from super-super
class in the super type position inside an anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82772"><code>KT-82772</code></a>
Flaky false positive deprecation warning on PersistentMap.put in Kotlin
repo in IDE mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76487"><code>KT-76487</code></a>
StdLibSourcesLazyDeclarationResolveTestGenerated.testWrappedInt is
unstable</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82618"><code>KT-82618</code></a>
Various tests are failing with NPE in kt-master after updating the
compiler on 19.11.25</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82076"><code>KT-82076</code></a>
Error querying members of JavaClass created for
SymbolLightClassForAnnotationClass during library analysis</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71596"><code>KT-71596</code></a>
Include Js/Wasi checkers in AbstractLLFirDiagnosticsCollector</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82085"><code>KT-82085</code></a>
No OUTER_CLASS_ARGUMENTS_REQUIRED on type parameter bound in IDE</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81873"><code>KT-81873</code></a>
Provide a way of including traces in phase JFR events</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71929"><code>KT-71929</code></a>
Consider leaving the non-post-compute version at
EnhancementSymbolsCache.enhancedFunctions</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83173"><code>KT-83173</code></a>
Analysis API Tests: Library names with RC versions aren't sanitised</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65140"><code>KT-65140</code></a>
LL FIR: Implement AbstractFirPsiJsDiagnosticTest for LL FIR</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82212"><code>KT-82212</code></a>
[Analysis API, LL FIR] Implement AbstractDiagnosticsFirWasmTest and
AbstractDiagnosticsFirWasmWasiTest for LL FIR</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82227"><code>KT-82227</code></a>
Value classes should expose regular static methods</li>
</ul>
<h3>Analysis API. PSI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81710"><code>KT-81710</code></a>
'KtTypeReference.getTypeText' does not account for 'suspend' modifier on
suspend lambdas</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82258"><code>KT-82258</code></a>
Prepare PSI for migration from context receivers to context
parameters</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81074"><code>KT-81074</code></a>
KDoc: List rendering is broken</li>
</ul>
<h3>Analysis API. Providers and Caches</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82449"><code>KT-82449</code></a>
K2 IDE Analysis Freezes During Gradle Sync (Recursive Module Dependency
Computation in
KotlinModuleDependentsProviderBase.computeTransitiveDependents)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82629"><code>KT-82629</code></a>
'collectDiagnostics' returns stale syntax error after editor fix</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74907"><code>KT-74907</code></a>
Analysis API: Apply platform-based library module content restrictions
consistently</li>
</ul>
<h3>Analysis API. Standalone</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81107"><code>KT-81107</code></a>
AA: KtSourceModuleBuilder.sourceRoots doesn't works with symbolic
links</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d57eb4a26e"><code>d57eb4a</code></a>
Add ChangeLog for 2.3.20-RC3</li>
<li><a
href="41886bbf57"><code>41886bb</code></a>
[Gradle] Update KGP npm tooling dependency versions</li>
<li><a
href="210a9bde68"><code>210a9bd</code></a>
[Native] Do not mark iosX64 target as deprecate in DSL</li>
<li><a
href="7ed446ef70"><code>7ed446e</code></a>
Add ChangeLog for 2.3.20-RC2</li>
<li><a
href="520eadedf4"><code>520eade</code></a>
[K/JVM] Fix incorrect optimization of local delegation</li>
<li><a
href="7ef8bccc4b"><code>7ef8bcc</code></a>
Reflection: add LazyKProperty to fix recent performance regression</li>
<li><a
href="9fa7cf20c6"><code>9fa7cf2</code></a>
[Gradle] Link NoActiveThreadsAfterCompilerInvocationIT with
KT-84566</li>
<li><a
href="d410596086"><code>d410596</code></a>
[Gradle] Shutdown coroutines dispatcher threads after compiler
invocation</li>
<li><a
href="348430b268"><code>348430b</code></a>
[BTA] Fix compatibility between API 2.3.20 and KC 2.3.10</li>
<li><a
href="4058f3c6cd"><code>4058f3c</code></a>
[CMP] HiddenFromObjC remove outdated offset check</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.10...v2.3.20">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin:kotlin-serialization` from 2.3.10 to
2.3.20
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin:kotlin-serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.3.20</h2>
<h2>Changelog</h2>
<h3>Analysis API. FIR</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78090"><code>KT-78090</code></a>
Implement stubs support for new conditional returns and holdsIn
contracts</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82948"><code>KT-82948</code></a>
'FirRegularClass' expected as a containing declaration, got
'FirTypeAliasImpl'</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83467"><code>KT-83467</code></a>
Package-level JSpecify annotations are ignored when coming from jars or
libraries</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82057"><code>KT-82057</code></a>
K2. Cannot infer type parameter 'R' in Ktor routing post() function with
explicit response type</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82846"><code>KT-82846</code></a>
AA: unresolved KtExpression.expressionType for the reference to the
parameter with default value</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80485"><code>KT-80485</code></a>
False positive UNRESOLVED_REFERENCE on nested interface from super-super
class in the super type position inside an anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82772"><code>KT-82772</code></a>
Flaky false positive deprecation warning on PersistentMap.put in Kotlin
repo in IDE mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76487"><code>KT-76487</code></a>
StdLibSourcesLazyDeclarationResolveTestGenerated.testWrappedInt is
unstable</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82618"><code>KT-82618</code></a>
Various tests are failing with NPE in kt-master after updating the
compiler on 19.11.25</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82076"><code>KT-82076</code></a>
Error querying members of JavaClass created for
SymbolLightClassForAnnotationClass during library analysis</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71596"><code>KT-71596</code></a>
Include Js/Wasi checkers in AbstractLLFirDiagnosticsCollector</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82085"><code>KT-82085</code></a>
No OUTER_CLASS_ARGUMENTS_REQUIRED on type parameter bound in IDE</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81873"><code>KT-81873</code></a>
Provide a way of including traces in phase JFR events</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71929"><code>KT-71929</code></a>
Consider leaving the non-post-compute version at
EnhancementSymbolsCache.enhancedFunctions</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83173"><code>KT-83173</code></a>
Analysis API Tests: Library names with RC versions aren't sanitised</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65140"><code>KT-65140</code></a>
LL FIR: Implement AbstractFirPsiJsDiagnosticTest for LL FIR</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82212"><code>KT-82212</code></a>
[Analysis API, LL FIR] Implement AbstractDiagnosticsFirWasmTest and
AbstractDiagnosticsFirWasmWasiTest for LL FIR</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82227"><code>KT-82227</code></a>
Value classes should expose regular static methods</li>
</ul>
<h3>Analysis API. PSI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81710"><code>KT-81710</code></a>
'KtTypeReference.getTypeText' does not account for 'suspend' modifier on
suspend lambdas</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82258"><code>KT-82258</code></a>
Prepare PSI for migration from context receivers to context
parameters</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81074"><code>KT-81074</code></a>
KDoc: List rendering is broken</li>
</ul>
<h3>Analysis API. Providers and Caches</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82449"><code>KT-82449</code></a>
K2 IDE Analysis Freezes During Gradle Sync (Recursive Module Dependency
Computation in
KotlinModuleDependentsProviderBase.computeTransitiveDependents)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82629"><code>KT-82629</code></a>
'collectDiagnostics' returns stale syntax error after editor fix</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74907"><code>KT-74907</code></a>
Analysis API: Apply platform-based library module content restrictions
consistently</li>
</ul>
<h3>Analysis API. Standalone</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81107"><code>KT-81107</code></a>
AA: KtSourceModuleBuilder.sourceRoots doesn't works with symbolic
links</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin:kotlin-serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.3.20</h2>
<h3>Analysis API. FIR</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78090"><code>KT-78090</code></a>
Implement stubs support for new conditional returns and holdsIn
contracts</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82948"><code>KT-82948</code></a>
'FirRegularClass' expected as a containing declaration, got
'FirTypeAliasImpl'</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83467"><code>KT-83467</code></a>
Package-level JSpecify annotations are ignored when coming from jars or
libraries</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82057"><code>KT-82057</code></a>
K2. Cannot infer type parameter 'R' in Ktor routing post() function with
explicit response type</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82846"><code>KT-82846</code></a>
AA: unresolved KtExpression.expressionType for the reference to the
parameter with default value</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80485"><code>KT-80485</code></a>
False positive UNRESOLVED_REFERENCE on nested interface from super-super
class in the super type position inside an anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82772"><code>KT-82772</code></a>
Flaky false positive deprecation warning on PersistentMap.put in Kotlin
repo in IDE mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76487"><code>KT-76487</code></a>
StdLibSourcesLazyDeclarationResolveTestGenerated.testWrappedInt is
unstable</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82618"><code>KT-82618</code></a>
Various tests are failing with NPE in kt-master after updating the
compiler on 19.11.25</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82076"><code>KT-82076</code></a>
Error querying members of JavaClass created for
SymbolLightClassForAnnotationClass during library analysis</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71596"><code>KT-71596</code></a>
Include Js/Wasi checkers in AbstractLLFirDiagnosticsCollector</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82085"><code>KT-82085</code></a>
No OUTER_CLASS_ARGUMENTS_REQUIRED on type parameter bound in IDE</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81873"><code>KT-81873</code></a>
Provide a way of including traces in phase JFR events</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71929"><code>KT-71929</code></a>
Consider leaving the non-post-compute version at
EnhancementSymbolsCache.enhancedFunctions</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83173"><code>KT-83173</code></a>
Analysis API Tests: Library names with RC versions aren't sanitised</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65140"><code>KT-65140</code></a>
LL FIR: Implement AbstractFirPsiJsDiagnosticTest for LL FIR</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82212"><code>KT-82212</code></a>
[Analysis API, LL FIR] Implement AbstractDiagnosticsFirWasmTest and
AbstractDiagnosticsFirWasmWasiTest for LL FIR</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82227"><code>KT-82227</code></a>
Value classes should expose regular static methods</li>
</ul>
<h3>Analysis API. PSI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81710"><code>KT-81710</code></a>
'KtTypeReference.getTypeText' does not account for 'suspend' modifier on
suspend lambdas</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82258"><code>KT-82258</code></a>
Prepare PSI for migration from context receivers to context
parameters</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81074"><code>KT-81074</code></a>
KDoc: List rendering is broken</li>
</ul>
<h3>Analysis API. Providers and Caches</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82449"><code>KT-82449</code></a>
K2 IDE Analysis Freezes During Gradle Sync (Recursive Module Dependency
Computation in
KotlinModuleDependentsProviderBase.computeTransitiveDependents)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82629"><code>KT-82629</code></a>
'collectDiagnostics' returns stale syntax error after editor fix</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74907"><code>KT-74907</code></a>
Analysis API: Apply platform-based library module content restrictions
consistently</li>
</ul>
<h3>Analysis API. Standalone</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81107"><code>KT-81107</code></a>
AA: KtSourceModuleBuilder.sourceRoots doesn't works with symbolic
links</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d57eb4a26e"><code>d57eb4a</code></a>
Add ChangeLog for 2.3.20-RC3</li>
<li><a
href="41886bbf57"><code>41886bb</code></a>
[Gradle] Update KGP npm tooling dependency versions</li>
<li><a
href="210a9bde68"><code>210a9bd</code></a>
[Native] Do not mark iosX64 target as deprecate in DSL</li>
<li><a
href="7ed446ef70"><code>7ed446e</code></a>
Add ChangeLog for 2.3.20-RC2</li>
<li><a
href="520eadedf4"><code>520eade</code></a>
[K/JVM] Fix incorrect optimization of local delegation</li>
<li><a
href="7ef8bccc4b"><code>7ef8bcc</code></a>
Reflection: add LazyKProperty to fix recent performance regression</li>
<li><a
href="9fa7cf20c6"><code>9fa7cf2</code></a>
[Gradle] Link NoActiveThreadsAfterCompilerInvocationIT with
KT-84566</li>
<li><a
href="d410596086"><code>d410596</code></a>
[Gradle] Shutdown coroutines dispatcher threads after compiler
invocation</li>
<li><a
href="348430b268"><code>348430b</code></a>
[BTA] Fix compatibility between API 2.3.20 and KC 2.3.10</li>
<li><a
href="4058f3c6cd"><code>4058f3c</code></a>
[CMP] HiddenFromObjC remove outdated offset check</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.10...v2.3.20">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin:kotlin-serialization` from 2.3.10 to
2.3.20
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin:kotlin-serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.3.20</h2>
<h2>Changelog</h2>
<h3>Analysis API. FIR</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78090"><code>KT-78090</code></a>
Implement stubs support for new conditional returns and holdsIn
contracts</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82948"><code>KT-82948</code></a>
'FirRegularClass' expected as a containing declaration, got
'FirTypeAliasImpl'</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83467"><code>KT-83467</code></a>
Package-level JSpecify annotations are ignored when coming from jars or
libraries</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82057"><code>KT-82057</code></a>
K2. Cannot infer type parameter 'R' in Ktor routing post() function with
explicit response type</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82846"><code>KT-82846</code></a>
AA: unresolved KtExpression.expressionType for the reference to the
parameter with default value</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80485"><code>KT-80485</code></a>
False positive UNRESOLVED_REFERENCE on nested interface from super-super
class in the super type position inside an anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82772"><code>KT-82772</code></a>
Flaky false positive deprecation warning on PersistentMap.put in Kotlin
repo in IDE mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76487"><code>KT-76487</code></a>
StdLibSourcesLazyDeclarationResolveTestGenerated.testWrappedInt is
unstable</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82618"><code>KT-82618</code></a>
Various tests are failing with NPE in kt-master after updating the
compiler on 19.11.25</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82076"><code>KT-82076</code></a>
Error querying members of JavaClass created for
SymbolLightClassForAnnotationClass during library analysis</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71596"><code>KT-71596</code></a>
Include Js/Wasi checkers in AbstractLLFirDiagnosticsCollector</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82085"><code>KT-82085</code></a>
No OUTER_CLASS_ARGUMENTS_REQUIRED on type parameter bound in IDE</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81873"><code>KT-81873</code></a>
Provide a way of including traces in phase JFR events</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71929"><code>KT-71929</code></a>
Consider leaving the non-post-compute version at
EnhancementSymbolsCache.enhancedFunctions</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83173"><code>KT-83173</code></a>
Analysis API Tests: Library names with RC versions aren't sanitised</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65140"><code>KT-65140</code></a>
LL FIR: Implement AbstractFirPsiJsDiagnosticTest for LL FIR</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82212"><code>KT-82212</code></a>
[Analysis API, LL FIR] Implement AbstractDiagnosticsFirWasmTest and
AbstractDiagnosticsFirWasmWasiTest for LL FIR</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82227"><code>KT-82227</code></a>
Value classes should expose regular static methods</li>
</ul>
<h3>Analysis API. PSI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81710"><code>KT-81710</code></a>
'KtTypeReference.getTypeText' does not account for 'suspend' modifier on
suspend lambdas</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82258"><code>KT-82258</code></a>
Prepare PSI for migration from context receivers to context
parameters</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81074"><code>KT-81074</code></a>
KDoc: List rendering is broken</li>
</ul>
<h3>Analysis API. Providers and Caches</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82449"><code>KT-82449</code></a>
K2 IDE Analysis Freezes During Gradle Sync (Recursive Module Dependency
Computation in
KotlinModuleDependentsProviderBase.computeTransitiveDependents)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82629"><code>KT-82629</code></a>
'collectDiagnostics' returns stale syntax error after editor fix</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74907"><code>KT-74907</code></a>
Analysis API: Apply platform-based library module content restrictions
consistently</li>
</ul>
<h3>Analysis API. Standalone</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81107"><code>KT-81107</code></a>
AA: KtSourceModuleBuilder.sourceRoots doesn't works with symbolic
links</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin:kotlin-serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.3.20</h2>
<h3>Analysis API. FIR</h3>
<h4>New Features</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78090"><code>KT-78090</code></a>
Implement stubs support for new conditional returns and holdsIn
contracts</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82948"><code>KT-82948</code></a>
'FirRegularClass' expected as a containing declaration, got
'FirTypeAliasImpl'</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83467"><code>KT-83467</code></a>
Package-level JSpecify annotations are ignored when coming from jars or
libraries</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82057"><code>KT-82057</code></a>
K2. Cannot infer type parameter 'R' in Ktor routing post() function with
explicit response type</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82846"><code>KT-82846</code></a>
AA: unresolved KtExpression.expressionType for the reference to the
parameter with default value</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-80485"><code>KT-80485</code></a>
False positive UNRESOLVED_REFERENCE on nested interface from super-super
class in the super type position inside an anonymous object</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82772"><code>KT-82772</code></a>
Flaky false positive deprecation warning on PersistentMap.put in Kotlin
repo in IDE mode</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76487"><code>KT-76487</code></a>
StdLibSourcesLazyDeclarationResolveTestGenerated.testWrappedInt is
unstable</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82618"><code>KT-82618</code></a>
Various tests are failing with NPE in kt-master after updating the
compiler on 19.11.25</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82076"><code>KT-82076</code></a>
Error querying members of JavaClass created for
SymbolLightClassForAnnotationClass during library analysis</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71596"><code>KT-71596</code></a>
Include Js/Wasi checkers in AbstractLLFirDiagnosticsCollector</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82085"><code>KT-82085</code></a>
No OUTER_CLASS_ARGUMENTS_REQUIRED on type parameter bound in IDE</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81873"><code>KT-81873</code></a>
Provide a way of including traces in phase JFR events</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-71929"><code>KT-71929</code></a>
Consider leaving the non-post-compute version at
EnhancementSymbolsCache.enhancedFunctions</li>
</ul>
<h3>Analysis API. Infrastructure</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-83173"><code>KT-83173</code></a>
Analysis API Tests: Library names with RC versions aren't sanitised</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-65140"><code>KT-65140</code></a>
LL FIR: Implement AbstractFirPsiJsDiagnosticTest for LL FIR</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82212"><code>KT-82212</code></a>
[Analysis API, LL FIR] Implement AbstractDiagnosticsFirWasmTest and
AbstractDiagnosticsFirWasmWasiTest for LL FIR</li>
</ul>
<h3>Analysis API. Light Classes</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82227"><code>KT-82227</code></a>
Value classes should expose regular static methods</li>
</ul>
<h3>Analysis API. PSI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81710"><code>KT-81710</code></a>
'KtTypeReference.getTypeText' does not account for 'suspend' modifier on
suspend lambdas</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82258"><code>KT-82258</code></a>
Prepare PSI for migration from context receivers to context
parameters</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81074"><code>KT-81074</code></a>
KDoc: List rendering is broken</li>
</ul>
<h3>Analysis API. Providers and Caches</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82449"><code>KT-82449</code></a>
K2 IDE Analysis Freezes During Gradle Sync (Recursive Module Dependency
Computation in
KotlinModuleDependentsProviderBase.computeTransitiveDependents)</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-82629"><code>KT-82629</code></a>
'collectDiagnostics' returns stale syntax error after editor fix</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-74907"><code>KT-74907</code></a>
Analysis API: Apply platform-based library module content restrictions
consistently</li>
</ul>
<h3>Analysis API. Standalone</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-81107"><code>KT-81107</code></a>
AA: KtSourceModuleBuilder.sourceRoots doesn't works with symbolic
links</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d57eb4a26e"><code>d57eb4a</code></a>
Add ChangeLog for 2.3.20-RC3</li>
<li><a
href="41886bbf57"><code>41886bb</code></a>
[Gradle] Update KGP npm tooling dependency versions</li>
<li><a
href="210a9bde68"><code>210a9bd</code></a>
[Native] Do not mark iosX64 target as deprecate in DSL</li>
<li><a
href="7ed446ef70"><code>7ed446e</code></a>
Add ChangeLog for 2.3.20-RC2</li>
<li><a
href="520eadedf4"><code>520eade</code></a>
[K/JVM] Fix incorrect optimization of local delegation</li>
<li><a
href="7ef8bccc4b"><code>7ef8bcc</code></a>
Reflection: add LazyKProperty to fix recent performance regression</li>
<li><a
href="9fa7cf20c6"><code>9fa7cf2</code></a>
[Gradle] Link NoActiveThreadsAfterCompilerInvocationIT with
KT-84566</li>
<li><a
href="d410596086"><code>d410596</code></a>
[Gradle] Shutdown coroutines dispatcher threads after compiler
invocation</li>
<li><a
href="348430b268"><code>348430b</code></a>
[BTA] Fix compatibility between API 2.3.20 and KC 2.3.10</li>
<li><a
href="4058f3c6cd"><code>4058f3c</code></a>
[CMP] HiddenFromObjC remove outdated offset check</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.3.10...v2.3.20">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
fixes#242
## How Has This Been Tested?
new and existing tests pass
## Breaking Changes
none
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Validate `mcp-protocol-version` HTTP header during `InitializeRequest`
Fix `DEFAULT_NEGOTIATED_PROTOCOL_VERSION` to match the spec
fixes#547
## How Has This Been Tested?
Updated existing test (removed TODO referencing #547) to verify init
request
## Breaking Changes
none
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Bumps the other-dependencies group with 1 update in the
/samples/kotlin-mcp-client directory:
[com.anthropic:anthropic-java](https://github.com/anthropics/anthropic-sdk-java).
Updates `com.anthropic:anthropic-java` from 2.24.0 to 2.25.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/releases">com.anthropic:anthropic-java's
releases</a>.</em></p>
<blockquote>
<h2>v2.25.0</h2>
<h2>2.25.0 (2026-04-14)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.24.0...v2.25.0">v2.24.0...v2.25.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> mark Sonnet and Opus 4 as deprecated (<a
href="81c750e06a">81c750e</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>streaming:</strong> add missing events (<a
href="4ac1b6a507">4ac1b6a</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>client:</strong> reset .stats.yml (<a
href="1d409eaa60">1d409ea</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>improve examples (<a
href="64896b84b4">64896b8</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/blob/main/CHANGELOG.md">com.anthropic:anthropic-java's
changelog</a>.</em></p>
<blockquote>
<h2>2.25.0 (2026-04-14)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.24.0...v2.25.0">v2.24.0...v2.25.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> mark Sonnet and Opus 4 as deprecated (<a
href="81c750e06a">81c750e</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>streaming:</strong> add missing events (<a
href="4ac1b6a507">4ac1b6a</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>client:</strong> reset .stats.yml (<a
href="1d409eaa60">1d409ea</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>improve examples (<a
href="64896b84b4">64896b8</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="30a74c5119"><code>30a74c5</code></a>
chore: release main (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/320">#320</a>)</li>
<li>See full diff in <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.24.0...v2.25.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Add warn-only validation for tool names at registration time, following
the MCP tool naming standard (SEP-986)
closes#417
## How Has This Been Tested?
unit tests
## Breaking Changes
none
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Add optional `$schema` field to `ToolSchema`, establishing JSON Schema
2020-12 as the default dialect per SEP-1613.
closes#422
## How Has This Been Tested?
unit tests
## Breaking Changes
none
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Remove Codecov configuration and CI steps for uploading coverage/test
reports.
## Motivation and Context
- Codecov integration relies on third-party credentials
- Codecov has not demonstrated clear value for the project:
- Coverage analysis is already handled by kover, which runs locally and
in CI
- PR reviews still require manual inspection of tests regardless of
codecov reports
- Codecov flaky test detection is unreliable, it marks 3325 out of all
tests as flaky with similar failure rates, making the signal useless
(https://app.codecov.io/gh/modelcontextprotocol/kotlin-sdk/tests)
Remove unused OpenAPI Generator plugin, its configuration, and the
`.openapi-generator-ignore` file.
## Breaking Changes
none
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
- Added `setup-node` with Node.js 22 to the release workflow — without
it, TypeScript integration tests fail because the macOS runner has an
incompatible pre-installed Node.js version
Bumps the all-dependencies group in
/integration-test/src/jvmTest/typescript with 1 update:
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).
Updates `@types/node` from 25.5.2 to 25.6.0
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
mcp kotlin-sdk 0.11.0 -> 0.11.1
## Breaking Changes
none
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
`appendSseHeaders()` was called inside Ktor's `sse {}` block where
response headers are already committed. On Netty this throws
`UnsupportedOperationException`, killing the SSE stream and causing the
client to retry in a loop
## How Has This Been Tested?
unit, simple-streamable-server sample
## Breaking Changes
none
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x ] I have added appropriate error handling
- [ x] I have added or updated documentation as needed
Bumps [hono](https://github.com/honojs/hono) from 4.12.9 to 4.12.12.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/honojs/hono/releases">hono's
releases</a>.</em></p>
<blockquote>
<h2>v4.12.12</h2>
<h2>Security fixes</h2>
<p>This release includes fixes for the following security issues:</p>
<h3>Middleware bypass via repeated slashes in serveStatic</h3>
<p>Affects: Serve Static middleware. Fixes a path normalization
inconsistency where repeated slashes (<code>//</code>) could bypass
route-based middleware protections and allow access to protected static
files. GHSA-wmmm-f939-6g9c</p>
<h3>Path traversal in toSSG() allows writing files outside the output
directory</h3>
<p>Affects: <code>toSSG()</code> for Static Site Generation. Fixes a
path traversal issue where crafted <code>ssgParams</code> values could
write files outside the configured output directory.
GHSA-xf4j-xp2r-rqqx</p>
<h3>Incorrect IP matching in ipRestriction() for IPv4-mapped IPv6
addresses</h3>
<p>Affects: IP Restriction Middleware. Fixes improper handling of
IPv4-mapped IPv6 addresses (e.g. <code>::ffff:127.0.0.1</code>) that
could cause allow/deny rules to be bypassed. GHSA-xpcf-pg52-r92g</p>
<h3>Missing validation of cookie name on write path in setCookie()</h3>
<p>Affects: <code>setCookie()</code>, <code>serialize()</code>, and
<code>serializeSigned()</code> from <code>hono/cookie</code>. Fixes
missing validation of cookie names on the write path, preventing
inconsistent handling between parsing and serialization.
GHSA-26pp-8wgv-hjvm</p>
<h3>Non-breaking space prefix bypass in cookie name handling in
getCookie()</h3>
<p>Affects: <code>getCookie()</code> from <code>hono/cookie</code>.
Fixes a discrepancy in cookie name handling that could allow
attacker-controlled cookies to override legitimate ones and bypass
prefix protections. GHSA-r5rp-j6wh-rvv4</p>
<hr />
<p>Users who use Serve Static, Static Site Generation, Cookie utilities,
or IP restriction middleware are strongly encouraged to upgrade to this
version.</p>
<h2>v4.12.11</h2>
<h2>What's Changed</h2>
<ul>
<li>feat(css): add classNameSlug option to createCssContext by <a
href="https://github.com/flow-pie"><code>@flow-pie</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4834">honojs/hono#4834</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/flow-pie"><code>@flow-pie</code></a>
made their first contribution in <a
href="https://redirect.github.com/honojs/hono/pull/4834">honojs/hono#4834</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/honojs/hono/compare/v4.12.10...v4.12.11">https://github.com/honojs/hono/compare/v4.12.10...v4.12.11</a></p>
<h2>v4.12.10</h2>
<h2>What's Changed</h2>
<ul>
<li>test(router): fix <code>Simple capturing group</code> test by <a
href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4838">honojs/hono#4838</a></li>
<li>docs: fix impaired -> inspired typo in benchmark READMEs by <a
href="https://github.com/Abhi3975"><code>@Abhi3975</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4843">honojs/hono#4843</a></li>
<li>fix(jsx/dom): apply select value after children are rendered by <a
href="https://github.com/usualoma"><code>@usualoma</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4847">honojs/hono#4847</a></li>
<li>fix(compress): convert strong ETag to weak ETag when compressing by
<a href="https://github.com/usualoma"><code>@usualoma</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4848">honojs/hono#4848</a></li>
<li>docs(ip-restriction): add clear JSDoc examples and param types by <a
href="https://github.com/VISHNU7KASIREDDY"><code>@VISHNU7KASIREDDY</code></a>
in <a
href="https://redirect.github.com/honojs/hono/pull/4851">honojs/hono#4851</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Abhi3975"><code>@Abhi3975</code></a>
made their first contribution in <a
href="https://redirect.github.com/honojs/hono/pull/4843">honojs/hono#4843</a></li>
<li><a
href="https://github.com/VISHNU7KASIREDDY"><code>@VISHNU7KASIREDDY</code></a>
made their first contribution in <a
href="https://redirect.github.com/honojs/hono/pull/4851">honojs/hono#4851</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c37ba26da9"><code>c37ba26</code></a>
4.12.12</li>
<li><a
href="cc067c8559"><code>cc067c8</code></a>
Merge commit from fork</li>
<li><a
href="a586cd72e3"><code>a586cd7</code></a>
Merge commit from fork</li>
<li><a
href="48fa2233bc"><code>48fa223</code></a>
Merge commit from fork</li>
<li><a
href="b470278920"><code>b470278</code></a>
Merge commit from fork</li>
<li><a
href="9aff14bd72"><code>9aff14b</code></a>
Merge commit from fork</li>
<li><a
href="2c403c67eb"><code>2c403c6</code></a>
4.12.11</li>
<li><a
href="f82aba8e8e"><code>f82aba8</code></a>
feat(css): add classNameSlug option to createCssContext (<a
href="https://redirect.github.com/honojs/hono/issues/4834">#4834</a>)</li>
<li><a
href="9f374a55b2"><code>9f374a5</code></a>
4.12.10</li>
<li><a
href="a8c56a6620"><code>a8c56a6</code></a>
docs(ip-restriction): add clear JSDoc examples and param types (<a
href="https://redirect.github.com/honojs/hono/issues/4851">#4851</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/honojs/hono/compare/v4.12.9...v4.12.12">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
bump project version to 0.11.0
## Motivation and Context
Release 0.11
## How Has This Been Tested?
Regression
## Breaking Changes
No
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
- enable rule for checking undocumented public api
- add kdoc skill
## How Has This Been Tested?
./gradlew detekt
## Breaking Changes
none
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [x] I have added or updated documentation as needed
---------
Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
closes#546
## How Has This Been Tested?
unit
## Breaking Changes
none
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
Users currently must manually `install(ContentNegotiation) {
json(McpJson) }` before calling `mcp()`,
`mcpStreamableHttp()`, or `mcpStatelessStreamableHttp()`. Forgetting
this or using the default `json()`
instead of `json(McpJson)` causes silent serialization failures at
runtime (e.g., explicit null fields in JSON-RPC
responses). This PR makes the SDK install it automatically.
Fixes#664
## Changes
- **Core feature** — `mcp()`, `mcpStreamableHttp()`, and
`mcpStatelessStreamableHttp()` now auto-install `ContentNegotiation`
configured with `McpJson`. If the user already installed
`ContentNegotiation`, a warning is logged instead of crashing with
`DuplicatePluginException`.
- **`KtorServerHelpers.kt`** (new) — `installMcpContentNegotiation()`
internal helper with `pluginOrNull` guard and warning
- **`KtorServer.kt`** — calls the helper from all three entry points
- **`build.gradle.kts`** — adds `ktor-server-content-negotiation` and
`ktor-serialization` as `implementation` deps to `kotlin-sdk-server`
- **Removed manual installs** from `ConformanceServer.kt` and
`AbstractStreamableHttpIntegrationTest.kt`.
- **Test infrastructure** — replaced `slf4j-simple` with Logback and use
`ListAppender` (`LogCapture` utility) for deterministic log assertion.
Added `logback-test.xml` matching previous log levels.
- **`StreamableHttpServerConfigurationTest.kt`** (new) — verifies the
warning for all three entry points: `mcpStreamableHttp`,
`mcpStatelessStreamableHttp`, and `mcp` (SSE).
- **README.md** — removed manual `ContentNegotiation` boilerplate from
examples, documented automatic installation, added CORS configuration
snippet for browser-based clients.
- **CI** — added `ktlintCheck` to the Linux build matrix job.
## How Has This Been Tested?
Unit/integration tests. Conformance tests updated
## Breaking Changes
No
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Apply default values from the elicitation schema to the client's
response when the handler returns `Accept` with missing fields
closes#414
## How Has This Been Tested?
integration and conformance tests
## Breaking Changes
none
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
SseTransportTest passes on wasm after updating ktor
## How Has This Been Tested?
jvm/js/wasm/macos
## Breaking Changes
none
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Summary
Add `maxRequestBodySize` parameter to
`StreamableHttpServerTransport.Configuration`, allowing consumers to set
a custom request body size limit lower than the default 4 MB.
- Add `maxRequestBodySize: Long` property to `Configuration` with a
default of 4 MB (`4,194,304` bytes)
- Replace hardcoded `MAXIMUM_MESSAGE_SIZE` constant with the
configurable value in `parseBody()`
- Use `Long` for content-length comparison to avoid `Int` overflow on
large values
## Motivation and Context
Closes#521
The `StreamableHttpServerTransport` has a hardcoded 4 MB request body
limit. Consumers who need a lower limit currently have to manually count
the request payload size before passing it to the SDK. This change makes
the limit configurable via `Configuration`.
## How Has This Been Tested?
- Existing unit tests continue to pass (default 4 MB behavior unchanged)
- Added `POST with custom max request body size rejects oversized
payload` — verifies `PayloadTooLarge` is returned for payloads exceeding
the custom limit
- Added `POST at exactly custom max request body size is not rejected as
payload too large` — verifies payloads at exactly the limit are not
rejected by the size check
```bash
./gradlew :kotlin-sdk-server:jvmTest --tests "*.StreamableHttpServerTransportTest"
```
## Breaking Changes
None. The new parameter has a default value matching the previous
hardcoded limit.
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Add URL mode elicitation support and typed `PrimitiveSchemaDefinition`
hierarchy to align with MCP specification 2025-11-25
closes#540
## How Has This Been Tested?
unit/integration/conformance
## Breaking Changes
- `ElicitRequestParams` changed from `data class` to `sealed interface`.
A deprecated factory function preserves source compatibility for
`ElicitRequestParams(message, requestedSchema)`.
- `RequestedSchema.properties` changed from `JsonObject` to `Map<String,
PrimitiveSchemaDefinition>`.
- `ElicitRequest.requestedSchema` is deprecated, use `(params as
ElicitRequestFormParams).requestedSchema`.
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Update mcp-kotlin to 0.10.0 across sample projects
## How Has This Been Tested?
Locally, added ServerIntegrationTest to simple-streamable-server
## Breaking Changes
No
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
- [x] Test update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
bumps:
- kotlin 2.2.21 -> 2.3.10
- ktor 3.2.3 -> 3.3.3
- kotlinx-io 0.8.2 -> 0.9.0
- kotlinx-serialization 1.9.0 -> 1.10.0
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
Unfortunately, CodeQL does not yet support the latest version of Kotlin
Colses #608
`ServerSession.handleInitialize()` now rejects duplicate `initialize`
requests with `INVALID_REQUEST` (-32600) error. `clientCapabilities` and
`clientVersion` changed from `var` to `AtomicRef`-backed `val`, with
atomic `compareAndSet(null, ...)` serving as both the guard and the
write
## How Has This Been Tested?
second `initialize` returns error, original capabilities preserved
## Breaking Changes
none
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Remove `macosX64()` target from multiplatform configuration
## Motivation and Context
`macosX64` is [deprecated in Kotlin
2.2](https://kotlinlang.org/docs/whatsnew2220.html#deprecation-of-x86-64-apple-targets)
and scheduled for removal in
[2.3](https://kotlinlang.org/docs/native-target-support.html#deprecated-targets)
## How Has This Been Tested?
—
## Breaking Changes
for users of macosX64, no longer get a native `macosX64` artifact
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
- Add grouped dependency updates for root Gradle (ktor, kotlinx, kotlin,
kotest, testing, infrastructure, gradle-plugins)
- Track all sample projects via `directories: /samples/*` with separate
PRs for ktor, kotlin, and mcp-kotlin-sdk
- Track npm dependencies in integration tests
- Group github actions updates into a single PR
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Fix Kotlin language and api version to 2.1
- Remove language constructs not supported in Kotlin 2.1
<!-- Provide a brief summary of your changes -->
## Motivation and Context
To ensure binary compatibility
## How Has This Been Tested?
Regression tests
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Build update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
- Remove redundant Gradle flags, env vars, and unused settings across
all workflows
- Minimize GitHub Actions permissions to least-privilege
- Drop Windows build matrix (JVM tests covered by Linux)
- Simplify CodeQL workflow (remove matrix, unused permissions, stale
triggers)
- Clean up gradle.properties (remove unused KMP settings)
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
—
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- add tsconfig
- fix tsignore
- rename sse -> http
- clean up code
## How Has This Been Tested?
all tests passed
## Breaking Changes
none
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Remove all deprecation with error level
## Motivation and Context
next minor release
## How Has This Been Tested?
-
## Breaking Changes
Removing it is a binary-incompatible change
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Motivation and Context
closes#421#406
## How Has This Been Tested?
Unit tests
## Breaking Changes
NaN
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Improve AGENTS.md
## Motivation and Context
The previous AGENTS.md contained many elements contradicting [best
practices](https://code.claude.com/docs/en/best-practices).
AGENTS.md/CLAUDE.md is loaded into the context on every request, so a
~300+ line file is too large and fills the context window.
> Keep it concise. For each line, ask: “Would removing this cause Claude
to make mistakes?” If not, cut it. Bloated CLAUDE.md files cause Claude
to ignore your actual instructions!
> Most best practices are based on one constraint: Claude’s context
window fills up fast, and performance degrades as it fills.
> The over-specified CLAUDE.md. If your CLAUDE.md is too long, Claude
ignores half of it because important rules get lost in the noise.
Since the file is loaded on every request, it should be general-purpose
rather than targeting specific use cases.
> CLAUDE.md is loaded every session, so only include things that apply
broadly.
AI coding agents are used not only for writing tests and
implementations.
- AGENTS.md should not contain behavioral instructions, especially like
`Tests first, always.`. This causes the agent to trigger test runs even
when not required, increasing request time and token consumption
significantly due to large test outputs. For example, on a simple
codebase question, the agent ran the full test suite and I waited over
10 minutes for a response.
- `Uphold SOLID principles` — self-evident rules, explaining what SOLID
stands for is redundant since AI coding agents are already trained on
this knowledge.
> Exclude: "Standard language conventions Claude already knows"
> Exclude: "Self-evident practices like 'write clean code'"
- Mentioning specific MCP servers (jetbrains, intellij-index) can
mislead the agent if they are not installed in the environment.
Additionally, [Anthropic
recommends](https://resources.anthropic.com/hubfs/The-Complete-Guide-to-Building-Skill-for-Claude.pdf)
mentioning the use of MCP in skills.
- The large Kotest patterns block targets a specific use case and is
unnecessary for other agent interactions. Moreover, the agent already
looks at neighboring test classes and can learn patterns from existing
tests
- The large Module documentation block covers a very rare use case.
- The KDoc block — the agent can derive this information from the
codebase, this should be a skill instead
These and other changes follow the best practices.
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
https://code.claude.com/docs/en/best-practiceshttps://resources.anthropic.com/hubfs/The-Complete-Guide-to-Building-Skill-for-Claude.pdfhttps://agents.md/#examples
Add a Claude Code skill (`.claude/skills/mcp-docs/`) that provides live
MCP documentation and specification context
## Motivation and Context
The modelcontextprotocol.io site provides both an [MCP
server](https://modelcontextprotocol.io/mcp) and an
[llms.txt](https://modelcontextprotocol.io/llms.txt) index for
machine-readable access to the documentation. This skill leverages both
to give Claude live access to the current spec during development.
## How Has This Been Tested?
The skill was evaluated on 3 realistic scenarios (implementation, code
review, spec question) comparing with-skill vs without-skill baseline:
- **Pass rate**: 100% vs 67% — skill consistently cites spec sources and
uses RFC 2119 language
- **Token efficiency**: 41% fewer tokens on average (44k vs 75k) — goes
directly to spec instead of reverse-engineering from codebase
- **Accuracy**: with-skill discovered URL mode elicitation (new in spec
2025-11-25) that baseline missed entirely
- **Description triggering**: optimized through 5 iterations of
automated trigger evaluation against 20 test prompts
## Breaking Changes
None
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Motivation and Context
- removed unnecessary badges from readme
- add context7 json file
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Updated the client and server examples for further use in the following
guides: https://modelcontextprotocol.io/docs/develop/build-server and
https://modelcontextprotocol.io/docs/develop/build-client
## How Has This Been Tested?
claude desktop, cli
## Breaking Changes
NaN
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Example, Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Correct SEP-1330 enum schemas in test_elicitation_sep1330_enums
**NB! This PR contains changes from #599 and should be rebased and
merged after #599 is merged.**
Update conformance test according to [test
requirements](https://github.com/modelcontextprotocol/conformance/blob/main/src/scenarios/server/elicitation-enums.ts#L14C1-L35C9).
- Fix legacyEnum: was using `oneOf` with const/title pairs; now
correctly uses `enum` + `enumNames` arrays per LegacyEnumSchema spec
- Fix titledMulti: items were using `oneOf` with extra `type:"string"`;
now correctly uses `anyOf` per TitledMultiSelectEnumSchema spec
- Fix return text format to match expected "Elicitation completed:
action=..., content=..."
- Remove _elicitation-sep1330-enums_ from conformance baseline (test now
passes)
## How Has This Been Tested?
```shell
./conformance-test/run-conformance.sh server
```
## Breaking Changes
No
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
---------
Co-authored-by: devcrocod <devcrocod@gmail.com>
## Changes
- fix(server): keep SSE connection open until explicitly cancelled
- conformance: add logging to test_tool_with_logging and update
troubleshooting documentation
- chore(conformance): remove 5 passing server tests from conformance
baselines:
- tools-call-with-logging
- tools-call-with-progress
- tools-call-sampling
- tools-call-elicitation
- elicitation-sep1034-defaults
## Motivation and Context
Two bugs in StreamableHttpServerTransport caused server-to-client
notifications (e.g. notifications/message during tool calls) to be
silently dropped.
**Bug 1 — GET SSE stream closed immediately**
`handleGetRequest` rejected GET requests with 405 when
`enableJsonResponse = true` (which `mcpStreamableHttp` always sets).
Since the Ktor `sse {}` handler commits response headers before the body
runs, the reject failed silently and the function returned, causing Ktor
to close the SSE stream. There was also no `awaitCancellation()` to keep
the connection alive.
**Bug 2 — Notifications discarded in JSON mode**
In `send()`, notifications with a relatedRequestId entered the
POST-stream path but hit `if (!isTerminated) return` without being
forwarded anywhere.
**Fix**
- Remove the enableJsonResponse guard from handleGetRequest. The GET SSE
stream is an always-required notification channel, orthogonal to how
POST responses are delivered.
- Add `awaitCancellation()` to keep the GET SSE connection open until
the client disconnects or the transport closes.
- In `send()`, route notifications with a relatedRequestId to the
standalone GET SSE stream when `enableJsonResponse = true`.
## How Has This Been Tested?
Verified against the MCP conformance test suite — the
ToolsCallWithLogging scenario now passes. ngrep confirms the `GET /mcp`
stream stays open and `notifications/message` events arrive before the
`tools/call` response.
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
Fixes#587
Requires #585 to be merged first.
---------
Co-authored-by: devcrocod <devcrocod@gmail.com>
Adds a comprehensive conformance test suite for the Kotlin MCP SDK,
covering core protocol operations, tool calls, elicitation, resources,
prompts, and 20 OAuth/auth scenarios
- Conformance server and client implementations
- OAuth/auth test scenarios: JWT, authorization code flow, client
credentials, PKCE, scope handling, cross-app access, client registration
- CI workflow
- Baseline file for tracking expected failures
- Shell script
fixes:
- #592
- #593
- #596
## Remaining known failures (tracked issues, will be fixed directly in
`main`)
- [x] `tools-call-with-logging`, `tools-call-with-progress`,
`tools-call-sampling`, `tools-call-elicitation`,
`elicitation-sep1034-defaults`- see #599,
- [x] `elicitation-sep1330-enums` - #587#600
- [x] `initialize` - #588
- [x] `tools_call`, `auth/scope-step-up`, `auth/scope-retry-limit` -
#589
- [ ] `elicitation-sep1034-client-defaults` - #414
- [x] `sse-retry` - #590
- [ ] `resources-templates-read` - #591
## Breaking Changes
from #596
- `StreamableHttpClientTransport` and
`mcpStreamableHttp`/`mcpStreamableHttpTransport`: old constructors
accepting `Duration` timeout are now `@Deprecated` — use the new
overloads with `ReconnectionOptions` instead
- `StreamableHttpClientTransport.close()` no longer calls
`terminateSession()` automatically
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
---------
Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
closes#543
## How Has This Been Tested?
unit
## Breaking Changes
binary compatibility in the Tool class
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
---------
Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
- add a simple streamable http server example with auth
- update readme: replace quickstart example from sse server to
streamable server
- add readme files for samples, simple-streamable-server, notebooks
closes#170
## How Has This Been Tested?
knit and inspector
## Breaking Changes
NaN
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [x] I have added or updated documentation as needed
- Updated `detekt.yml` to exclude test folders from
`EmptyFunctionBlock`, `LargeClass`, and `LongMethod` checks.
- Cleanup detekt-baseline files.
- Simplified `.idea/detekt.xml`.
## Motivation and Context
To reduce linter noise and reduce tension
## How Has This Been Tested?
`./gradlew detekt`
## Breaking Changes
No
## Types of changes
- [x] Build tool/ci update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
#567
## Rethrow CancellationException in StdioServerTransport, fix ReadBuffer
### Changes
1. StdioServerTransport
- Replace generic `Throwable` catches with specific
`CancellationException` and `Exception` for clarity and correctness.
**breaking change** `Throwable` is not handled any more!
- Refactor launching jobs to separate methods
- Introduce `READ_BUFFER_SIZE` constant to replace inline buffer size
literals.
- Add suppress annotations for clearer intent and constructor
documentation for better usability.
- Extend StdioServerTransportTest
2. ReadBuffer
Previously, readMessage() returned null after consuming an unparseable
line even when more complete lines existed in the buffer. This caused
valid messages following a bad line in the same chunk to be silently
dropped until the next chunk arrived (or forever, in tests).
Fix the loop so null means only "no complete line available", not
"encountered a parse failure". Blank/whitespace-only lines are now
silently skipped via isBlank() rather than forwarded to the deserializer
and logged as errors.
Refactor the method into three focused helpers:
- readMessage() — outer loop over lines
- readLine() — consume the next newline-delimited line from the buffer
- tryRecover() — attempt deserialization from the first '{' onward
3. Add utility method `runIntegrationTest` for integration testing
(`runBlocking` + `withTimeout`). Use it in StdioServerTransportTest
4. Store processing Job reference and `calcelAndJoin()` it on close.
Partially addressing #574
## Motivation and Context
See #575, #564, #242
## How Has This Been Tested?
Unit test added
## Breaking Changes
Semantic change: `Throwable` and CancellationException are not handled
any more!
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
ci: update Codecov configuration for test and coverage upload
- Unified usage of `codecov/codecov-action@v5` for both test results and
coverage upload.
- Added `CODECOV_TOKEN` and `report_type` parameters for improved
configuration.
## Motivation and Context
Actually, CODECOV_TOKEN is required, even though the CodeCov banner
previously said the project can upload without a token.
## How Has This Been Tested?
CI
## Breaking Changes
No
## Types of changes
- [x] CI fix
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
Bumps [dev.mokksy:mokksy](https://github.com/mokksy/ai-mocks) from 0.6.2
to 0.8.0.
- Update dependency and migrate to new API
---------
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
## Add Codecov coverage upload and XML report generation
- Add `koverXmlReport` to Gradle tasks in Ubuntu workflow
- Configure Codecov action to upload coverage reports
Reports will be available on
https://app.codecov.io/gh/modelcontextprotocol/kotlin-sdk
## Motivation and Context
To provide better test coverage visibility
## How Has This Been Tested?
CI
## Breaking Changes
No
## Types of changes
- [x] CI update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
## Introduce Configuration class for StreamableHttpServerTransport
Replace the six-parameter flat constructor of
`StreamableHttpServerTransport` with a typed `Configuration` class. This
improves API ergonomics, enables structural equality and copy(), and
provides a stable extension point for future options without further
breaking the constructor signature.
### Changes:
- Add `Configuration` as a public class nested directly on
`StreamableHttpServerTransport`, with `enableJsonResponse` as the first
parameter (most commonly set)
- Change the primary constructor to accept `Configuration`.
- Rename `retryIntervalMillis: Long?` to `retryInterval: Duration?` in
Configuration, aligning with Kotlin's type-safe time API
- Deprecate the old flat constructor with a compatibility bridge
- Update KotlinTestBase integration test to use the new constructor
- Enable test
AbstractResourceIntegrationTest.testSubscribeAndUnsubscribe() since #249
is closed
## Motivation and Context
The current StreamableHttpServerTransport API cannot be easily extended:
adding more parameters would be a breaking change. But this is already
needed for #521.
This PR is a prerequisite for #535
## How Has This Been Tested?
Regression tests
## Breaking Changes
No. Current StreamableHttpServerTransport constructor was deprecated
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Summary
Fix SSE endpoint resolution so absolute paths resolve against the
origin, and add tests covering absolute vs relative endpoint events.
## Motivation and Context
The SSE transport currently resolves all endpoint events against the SSE
URL’s base path. When the server sends an absolute endpoint (starting
with `/`), the client incorrectly prefixes it with the SSE path. This
change resolves absolute endpoints against the origin while keeping
relative behavior unchanged.
addresses: https://github.com/modelcontextprotocol/kotlin-sdk/issues/329
## How Has This Been Tested?
Unit tests added in `SseClientTransportTest` for absolute and relative
endpoint events.
## Breaking Changes
No.
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
The endpoint resolution logic now treats paths starting with `/` as
origin-relative. Relative paths continue to resolve against the SSE base
URL.
## Motivation and Context
Adds a `ClientConnection` context receiver to server call handlers,
which provides access to the client communication channel. This is
necessary to allow tools to send notifications, logging, elicitations,
etc.
Supersedes https://github.com/modelcontextprotocol/kotlin-sdk/pull/144,
discussed in
https://github.com/modelcontextprotocol/kotlin-sdk/issues/295.
## How Has This Been Tested?
With the added integration test.
## Breaking Changes
It breaks binary compatibility and breaks source compatibility for tool
handlers that already use `this`.
If you care a lot about maintaining compatibility, I could add some
overloads to ease the transition. But the new methods would likely need
to be named differently for resolution.
Future compatibility should be easier to maintain - `Context` is an
interface (with experimental opt-in subclassing), so new fields can be
added without breaking compatibility. Different types could also be
introduced for different handles without breaking compatibility, as long
as they extend `ClientConnection`.
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
---------
Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
<!-- Provide a brief summary of your changes -->
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
Replace `withTimeout` with `eventually` in test assertions and improve
readability in exception handling
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
None
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Test update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
# Migrate Ktor extension functions from `Routing` to `Route` (#237)
- Replaced `Routing` with `Route` in MCP-related functions for better
composability in nested contexts.
- Updated tests to verify compatibility with nested routes and subpaths.
- Deprecated legacy signatures and removed redundant overloads.
## How Has This Been Tested?
Unit test
## Breaking Changes
`Routing.mcp(...) `extension was replaced with `Route.mcp(...)`
## Types of changes
- [X] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
Based on #314 by @IainHull but that PR is too outdated.
# Add DSL builder tests for Request, Capabilities, and Content types
- Introduced unit tests for `RequestDslTest`, `CapabilitiesDslTest`, and
`ContentDslTest` to validate DSL builder functionality.
- Covered edge cases, nested properties, custom fields, and overwrite
behavior for requests, capabilities, and content creation.
- Update AGENTS.md
## Motivation and Context
for confidence
## Breaking Changes
No
## Types of changes
- [x] Tests
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
- Introduced `withTimeout` to avoid indefinite hangs during test
execution (#514)
## Motivation and Context
Workaround for #514 in tests
## How Has This Been Tested?
Integration test updated, CI
## Breaking Changes
No
## Types of changes
- [x] Test fix
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
#514
1. Migrate test-utils module to multiplatform, add serialization
utilities
- Migrated `test-utils` to support Kotlin Multiplatform (JVM, JS,
Native).
- Added `verifySerialization`, `verifyDeserialization`,
`verifySerializationRoundTrip` utilities to streamline and validate JSON
serialization/deserialization
2. Refactor serialization tests to use test serialization utilities
- Updated serialization tests across the project to use
`verifySerialization` and `verifyDeserialization` utilities.
- Improved consistency and ensured proper round-trip validation for JSON
deserialization.
3. Remove some detekt baseline files and suppress `LongMethod` findings
- Deleted detekt baseline XML files for test sources.
- Suppressed `LongMethod` findings in relevant tests using `@Suppress`
annotations.
- Replaced empty method implementations with explicit `// noop` comments
for clarity.
- Adjusted min test coverage threshold in `build.gradle.kts`.
## Motivation and Context
To improve serialization testing
## How Has This Been Tested?
Unit tests
## Breaking Changes
No
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Refactoring
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
Add $defs support in ToolSchema and update tests.
Motivation and Context
Fix parsing when tool schemas include $defs.
How Has This Been Tested?
`./gradlew :kotlin-sdk-core:jvmTest --tests
"io.modelcontextprotocol.kotlin.sdk.types.ToolsTest"`
Breaking Changes
No.
Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
Checklist
- [x] I have read the MCP Documentation
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
Additional context
N/A
# feat: Add kotlin-sdk-testing module with channel-based transport
implementation
- Introduced `kotlin-sdk-testing` module for testing utilities in the
MCP Kotlin SDK.
- Implemented `ChannelTransport`, providing JSON-RPC transport via
Kotlin coroutines channels.
<!-- Provide a brief summary of your changes -->
## Motivation and Context
This ChannelTransport can be used for testing Server implementation
without using real transports.
## How Has This Been Tested?
Unit test
## Breaking Changes
No
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Bumps gradle-wrapper from 9.3.0 to 9.3.1.
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
# Detekt setup hardeing; address some issues
- Address some detekt findings: missing KDocs, formatting, use `check*`
& `orEmpty()``
- Remove unnecessary KDoc comments from deprecated classes in `types.kt`
- Add Detekt baseline XML files for all modules
- Enforce stricter Detekt rules by setting `failOnSeverity` from `None`
to `Error`
## Motivation and Context
Detekt is not actually failing the build on violations. This PR is
enabling Detekt to fail on errors. Baseline fines added for historical
issues. Follow-up for #501
## How Has This Been Tested?
Regressions
## Breaking Changes
No breaking changes.
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] Refactoring
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
Bumps the npm_and_yarn group with 2 updates in the
/integration-test/src/jvmTest/typescript directory:
[@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk)
and [qs](https://github.com/ljharb/qs).
Updates `@modelcontextprotocol/sdk` from 1.25.2 to 1.26.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/typescript-sdk/releases"><code>@modelcontextprotocol/sdk</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v1.26.0</h2>
<p>Addresses "Sharing server/transport instances can leak
cross-client response data" in this GHSA <a
href="https://github.com/modelcontextprotocol/typescript-sdk/security/advisories/GHSA-345p-7cg4-v4c7">https://github.com/modelcontextprotocol/typescript-sdk/security/advisories/GHSA-345p-7cg4-v4c7</a></p>
<h2>What's Changed</h2>
<ul>
<li>chore: bump v1.25.3 for backport fixes by <a
href="https://github.com/pcarleton"><code>@pcarleton</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1412">modelcontextprotocol/typescript-sdk#1412</a></li>
<li>fix(deps): resolve npm audit vulnerabilities and bump dependencies
(v1.x backport) by <a
href="https://github.com/samuv"><code>@samuv</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1382">modelcontextprotocol/typescript-sdk#1382</a></li>
<li>Fix <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1430">#1430</a>:
Client Credentials providers scopes support (backported) by <a
href="https://github.com/NSeydoux"><code>@NSeydoux</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1442">modelcontextprotocol/typescript-sdk#1442</a></li>
<li>chore: bump version to 1.26.0 by <a
href="https://github.com/pcarleton"><code>@pcarleton</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1479">modelcontextprotocol/typescript-sdk#1479</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/samuv"><code>@samuv</code></a> made
their first contribution in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1382">modelcontextprotocol/typescript-sdk#1382</a></li>
<li><a href="https://github.com/NSeydoux"><code>@NSeydoux</code></a>
made their first contribution in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1442">modelcontextprotocol/typescript-sdk#1442</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.25.3...v1.26.0">https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.25.3...v1.26.0</a></p>
<h2>v1.25.3</h2>
<h2>What's Changed</h2>
<ul>
<li>[v1.x backport] Use correct schema for client sampling validation
when tools are present by <a
href="https://github.com/olaservo"><code>@olaservo</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1407">modelcontextprotocol/typescript-sdk#1407</a></li>
<li>fix: prevent Hono from overriding global Response object (v1.x) by
<a href="https://github.com/mattzcarey"><code>@mattzcarey</code></a> in
<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1411">modelcontextprotocol/typescript-sdk#1411</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.25.2...v1.25.3">https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.25.2...v1.25.3</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fe9c07b465"><code>fe9c07b</code></a>
chore: bump version to 1.26.0 (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1479">#1479</a>)</li>
<li><a
href="4f01e7e070"><code>4f01e7e</code></a>
fix: add non-null assertions for optional setupServer fields in stateful
test</li>
<li><a
href="a05be176ca"><code>a05be17</code></a>
Merge commit from fork</li>
<li><a
href="50d9fa3cd1"><code>50d9fa3</code></a>
Fix <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1430">#1430</a>:
Client Credentials providers scopes support (backported) (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1442">#1442</a>)</li>
<li><a
href="aa81a66556"><code>aa81a66</code></a>
fix(deps): resolve npm audit vulnerabilities and bump dependencies (v1.x
back...</li>
<li><a
href="6aba065965"><code>6aba065</code></a>
chore: bump v1.25.3 for backport fixes (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1412">#1412</a>)</li>
<li><a
href="6e8f7e1a43"><code>6e8f7e1</code></a>
fix: prevent Hono from overriding global Response object (v1.x) (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1411">#1411</a>)</li>
<li><a
href="12ae856cee"><code>12ae856</code></a>
[v1.x backport] Use correct schema for client sampling validation when
tools ...</li>
<li>See full diff in <a
href="https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.25.2...v1.26.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `qs` from 6.14.1 to 6.14.2
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ljharb/qs/blob/main/CHANGELOG.md">qs's
changelog</a>.</em></p>
<blockquote>
<h2><strong>6.14.2</strong></h2>
<ul>
<li>[Fix] <code>parse</code>: mark overflow objects for indexed notation
exceeding <code>arrayLimit</code> (<a
href="https://redirect.github.com/ljharb/qs/issues/546">#546</a>)</li>
<li>[Fix] <code>arrayLimit</code> means max count, not max index, in
<code>combine</code>/<code>merge</code>/<code>parseArrayValue</code></li>
<li>[Fix] <code>parse</code>: throw on <code>arrayLimit</code> exceeded
with indexed notation when <code>throwOnLimitExceeded</code> is true (<a
href="https://redirect.github.com/ljharb/qs/issues/529">#529</a>)</li>
<li>[Fix] <code>parse</code>: enforce <code>arrayLimit</code> on
<code>comma</code>-parsed values</li>
<li>[Fix] <code>parse</code>: fix error message to reflect arrayLimit as
max index; remove extraneous comments (<a
href="https://redirect.github.com/ljharb/qs/issues/545">#545</a>)</li>
<li>[Robustness] avoid <code>.push</code>, use <code>void</code></li>
<li>[readme] document that <code>addQueryPrefix</code> does not add
<code>?</code> to empty output (<a
href="https://redirect.github.com/ljharb/qs/issues/418">#418</a>)</li>
<li>[readme] clarify <code>parseArrays</code> and
<code>arrayLimit</code> documentation (<a
href="https://redirect.github.com/ljharb/qs/issues/543">#543</a>)</li>
<li>[readme] replace runkit CI badge with shields.io check-runs
badge</li>
<li>[meta] fix changelog typo (<code>arrayLength</code> →
<code>arrayLimit</code>)</li>
<li>[actions] fix rebase workflow permissions</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="bdcf0c7f82"><code>bdcf0c7</code></a>
v6.14.2</li>
<li><a
href="294db90c81"><code>294db90</code></a>
[readme] document that <code>addQueryPrefix</code> does not add
<code>?</code> to empty output</li>
<li><a
href="5c308e5516"><code>5c308e5</code></a>
[readme] clarify <code>parseArrays</code> and <code>arrayLimit</code>
documentation</li>
<li><a
href="6addf8cf73"><code>6addf8c</code></a>
[Fix] <code>parse</code>: mark overflow objects for indexed notation
exceeding <code>arrayLimit</code></li>
<li><a
href="cfc108f662"><code>cfc108f</code></a>
[Fix] <code>arrayLimit</code> means max count, not max index, in
<code>combine</code>/<code>merge</code>/`pars...</li>
<li><a
href="febb64442a"><code>febb644</code></a>
[Fix] <code>parse</code>: throw on <code>arrayLimit</code> exceeded with
indexed notation when `thr...</li>
<li><a
href="f6a7abff1f"><code>f6a7abf</code></a>
[Fix] <code>parse</code>: enforce <code>arrayLimit</code> on
<code>comma</code>-parsed values</li>
<li><a
href="fbc5206c25"><code>fbc5206</code></a>
[Fix] <code>parse</code>: fix error message to reflect arrayLimit as max
index; remove e...</li>
<li><a
href="1b9a8b4e78"><code>1b9a8b4</code></a>
[actions] fix rebase workflow permissions</li>
<li><a
href="2a35775614"><code>2a35775</code></a>
[meta] fix changelog typo (<code>arrayLength</code> →
<code>arrayLimit</code>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ljharb/qs/compare/v6.14.1...v6.14.2">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/modelcontextprotocol/kotlin-sdk/network/alerts).
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
# ci: enhance stale issue/PR workflow
- Split stale workflow into marking and closing jobs
- Add dry-run mode input and environment variables
- Improve configuration for timing, messages, and operations per run
## Motivation and Context
To mark and close stale issues/PRs automatically
## How it works
The automations.yml workflow automates the lifecycle of inactive issues
and pull requests using a two-stage process. It is scheduled to run
daily at 2:00 AM UTC and supports manual execution with a dry-run
option.
### 1. Marking Phase (mark-stale job)
This job identifies inactive items and labels them as stale without
closing them.
- Criteria: Any issue or PR with no activity for 30 days.
- Action: Adds the stale label and posts a notification comment.
- Exemptions:
- Draft PRs are ignored.
- Issues labeled with awaiting-approval or work-in-progress are ignored.
- Recovery: If a contributor updates the item, the stale label is
automatically removed.
- Safety: This job is explicitly configured never to close items
(days-before-*-close: -1).
### 2. Closing Phase (close-stale job)
This job handles the final closure of items that have remained inactive
after being marked.
- Criteria: Only targets items that already have the stale label and
have seen no further activity for 15 days.
- Action: Closes the issue or PR and posts a final closure message.
- Safety: This job is explicitly configured never to mark new items
(days-before-*-stale: -1).
### Global Configuration
- Dry Run: Controlled by the DRY_RUN variable. When true, the bot logs
planned actions in the workflow output but does not actually apply
labels, post comments, or close items.
- Throttling: Processes up to 100 items per run to avoid hitting GitHub
API rate limits.
- Permissions: Requires write access to issues and pull requests to
perform its actions.
## How Has This Been Tested?
[Manually tested on
CI](https://github.com/modelcontextprotocol/kotlin-sdk/actions/runs/21984701285)
with dry run
## Breaking Changes
No
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Workflow update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
## refactor: Introduce AbstractClientTransport and simplify client
transport lifecycle
This PR unifies state management logic across client transports, except
for the websocket transport, as it needs more refactoring first and is
not the primary transport.
- Introduce `AbstractClientTransport` as base class for other client
transports.
- Migrate to `ClientTransportState` states with state machine,
streamline state management.
- Ensure proper cleanup and error handling consistency across transport
implementations.
- Add unit tests to validate `AbstractClientTransport` behavior and
state transitions.
- Update related documentation and API contract.
- Make sure `onClose` callback is called at most once
- fix
[StreamableHttpClientTransportTest.kt](https://github.com/modelcontextprotocol/kotlin-sdk/pull/516/changes#diff-b9fe8891d08a492448a7ed2dc782151c6a915ae1403a4d70c2034c6062c84cb5)
to throw `McpException` on connect when received invalid Json
## Motivation and Context
Unify lifecycle handling and eliminate duplication in client Transport
implementations.
## How Has This Been Tested?
Unit test, regression tests
## Breaking Changes
- `onClose` callback is now called only once
- send(...) will throw McpException with message "Transport is not
ready" when `ClientTransportState != Operational`
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] Refactoring
- [ ] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
See #517
## Motivation and Context
Adds Ktor extensions for streaming data over the server-side HTTP
transport
## How Has This Been Tested?
Integration test
## Breaking Changes
-
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
# docs: Update AGENTS.md
- Introduce CLAUDE.md symlink to AGENTS.md
- Enhance AGENTS.md with updated test setup, coding standards, and
module-specific practices
## Motivation and Context
Motivation: Improve consistency, readability, and maintainability of
code contributions across AI agents and developers.
## Breaking Changes
No
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Verified
<img width="584" height="225" alt="image"
src="https://github.com/user-attachments/assets/591202a3-56aa-4901-ad5d-9e2d4b9f0013"
/>
(I have other files locally, but AGENTS.md is known to Claude)
# fix(test): Refactor flaky StdioClientTransport tests to use real stdin
pipes
- Replace mock-based stdin with real input/output pipes for better
parity with actual usage.
- Ensure proper cleanup of resources (stdin and stdout pipes).
- Improve test stability by migrating from `runTest` to `runBlocking`
for real-time I/O operations.
## Motivation and Context
StdioClientTransportTest is flaky.
## How Has This Been Tested?
Unit test
## Breaking Changes
No
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
#162
## Motivation and Context
- update readme
- add more snippets
- add knit
## How Has This Been Tested?
knit on CI
## Breaking Changes
None
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [x] I have added or updated documentation as needed
---------
Co-authored-by: devcrocod <devcrocod@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Bumps
[com.vanniktech:gradle-maven-publish-plugin](https://github.com/vanniktech/gradle-maven-publish-plugin)
from 0.35.0 to 0.36.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vanniktech/gradle-maven-publish-plugin/releases">com.vanniktech:gradle-maven-publish-plugin's
releases</a>.</em></p>
<blockquote>
<h2>0.36.0</h2>
<p><strong>BREAKING</strong></p>
<ul>
<li>Updated minimum supported JDK, Gradle, Android Gradle Plugin and
Kotlin versions.</li>
<li>Removed support for Dokka v1, it's now required to use Dokka in v2
mode.</li>
<li>Mark <code>DirectorySignatureType</code> internal.</li>
</ul>
<p><strong>Behavior changes</strong></p>
<ul>
<li><code>validateDeployment</code> now has the
<code>DeploymentValidation</code> enum as type instead of being a
boolean. The default
is now to just wait for the <code>VALIDATED</code> state. The previous
behavior can be achieved by setting it to <code>PUBLISHED</code>.
<code>NONE</code> can be used for disabling the validation
completely.</li>
<li>When calling <code>configure(...)</code> manually to configure what
to publish and not passing <code>javadocJar</code> explicity,
the plugin now defaults to publishing an empty javadoc jar.</li>
</ul>
<p><strong>Features</strong></p>
<ul>
<li>Android projects now support using Dokka for javadoc creation, this
will happen automatically
when using the default options and the Dokka plugin is applied to the
project.</li>
<li>Added consistent <code>JavadocJar</code> and <code>SourcesJar</code>
options to <code>configureBasedOnAppliedPlugins</code> and to all
applicable project types that can be passed to <code>configure</code>.
The previous <code>Boolean</code> based versions have
been deprecated.</li>
<li>When enabling Maven Central publishing through the DSL, the
<code>mavenCentralDeploymentValidation</code> and
<code>mavenCentralAutomaticPublishing</code> are used for the default
values of the 2 parameters when they are not passed
explicitly. This allows to more easily override them in certain
environments.</li>
<li>When isolated projects is enabled the module/project specific
<code>gradle.properties</code> files are now considered in
the same way they are when isolated projects is disabled.</li>
</ul>
<p><strong>Improvements</strong></p>
<ul>
<li>Better error message when Maven Central credentials are
missing.</li>
</ul>
<h4>Minimum supported versions</h4>
<ul>
<li>JDK 17</li>
<li>Gradle 9.0.0</li>
<li>Android Gradle Plugin 8.13.0</li>
<li>Kotlin Gradle Plugin 2.2.0</li>
</ul>
<h4>Compatibility tested up to</h4>
<ul>
<li>JDK 25</li>
<li>Gradle 9.3.0</li>
<li>Gradle 9.4.0-milestone-4</li>
<li>Android Gradle Plugin 8.13.2</li>
<li>Android Gradle Plugin 9.0.0</li>
<li>Android Gradle Plugin 9.1.0-alpha05</li>
<li>Kotlin Gradle Plugin 2.3.0</li>
<li>Kotlin Gradle Plugin 2.3.20-Beta1</li>
</ul>
<h2>0.36.0-rc2</h2>
<p><strong>BREAKING</strong></p>
<ul>
<li>Updated minimum supported JDK, Gradle, Android Gradle Plugin and
Kotlin versions.</li>
<li>Removed support for Dokka v1, it's now required to use Dokka in v2
mode.</li>
<li>Mark <code>DirectorySignatureType</code> internal.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vanniktech/gradle-maven-publish-plugin/blob/main/CHANGELOG.md">com.vanniktech:gradle-maven-publish-plugin's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/vanniktech/gradle-maven-publish-plugin/releases/tag/0.36.0">0.36.0</a>
<em>(2026-01-13)</em></h2>
<p><strong>BREAKING</strong></p>
<ul>
<li>Updated minimum supported JDK, Gradle, Android Gradle Plugin and
Kotlin versions.</li>
<li>Removed support for Dokka v1, it's now required to use Dokka in v2
mode.</li>
<li>Mark <code>DirectorySignatureType</code> internal.</li>
</ul>
<p><strong>Behavior changes</strong></p>
<ul>
<li><code>validateDeployment</code> now has the
<code>DeploymentValidation</code> enum as type instead of being a
boolean. The default
is now to just wait for the <code>VALIDATED</code> state. The previous
behavior can be achieved by setting it to <code>PUBLISHED</code>.
<code>NONE</code> can be used for disabling the validation
completely.</li>
<li>When calling <code>configure(...)</code> manually to configure what
to publish and not passing <code>javadocJar</code> explicity,
the plugin now defaults to publishing an empty javadoc jar.</li>
</ul>
<p><strong>Features</strong></p>
<ul>
<li>Android projects now support using Dokka for javadoc creation, this
will happen automatically
when using the default options and the Dokka plugin is applied to the
project.</li>
<li>Added consistent <code>JavadocJar</code> and <code>SourcesJar</code>
options to <code>configureBasedOnAppliedPlugins</code> and to all
applicable project types that can be passed to <code>configure</code>.
The previous <code>Boolean</code> based versions have
been deprecated.</li>
<li>When enabling Maven Central publishing through the DSL, the
<code>mavenCentralDeploymentValidation</code> and
<code>mavenCentralAutomaticPublishing</code> are used for the default
values of the 2 parameters when they are not passed
explicitly. This allows to more easily override them in certain
environments.</li>
<li>When isolated projects is enabled the module/project specific
<code>gradle.properties</code> files are now considered in
the same way they are when isolated projects is disabled.</li>
</ul>
<p><strong>Improvements</strong></p>
<ul>
<li>Better error message when Maven Central credentials are
missing.</li>
</ul>
<h4>Minimum supported versions</h4>
<ul>
<li>JDK 17</li>
<li>Gradle 9.0.0</li>
<li>Android Gradle Plugin 8.13.0</li>
<li>Kotlin Gradle Plugin 2.2.0</li>
</ul>
<h4>Compatibility tested up to</h4>
<ul>
<li>JDK 25</li>
<li>Gradle 9.3.0</li>
<li>Gradle 9.4.0-milestone-4</li>
<li>Android Gradle Plugin 8.13.2</li>
<li>Android Gradle Plugin 9.0.0</li>
<li>Android Gradle Plugin 9.1.0-alpha05</li>
<li>Kotlin Gradle Plugin 2.3.0</li>
<li>Kotlin Gradle Plugin 2.3.20-Beta1</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0a5fa58778"><code>0a5fa58</code></a>
rc2 and wait for published</li>
<li><a
href="695e18a932"><code>695e18a</code></a>
rc1</li>
<li><a
href="f92dc3a37b"><code>f92dc3a</code></a>
Changelog for 0.36.0</li>
<li><a
href="bddd1e6d7b"><code>bddd1e6</code></a>
Update dependency org.jetbrains.kotlin.jvm to v2.3.20-Beta1 (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1289">#1289</a>)</li>
<li><a
href="22f90b2df5"><code>22f90b2</code></a>
Update Gradle to v9.3.0 (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1301">#1301</a>)</li>
<li><a
href="d7d5f34301"><code>d7d5f34</code></a>
Update android.gradle to v9 (major) (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1298">#1298</a>)</li>
<li><a
href="3d262a6a47"><code>3d262a6</code></a>
Update dependency com.android.library to v9.1.0-alpha05 (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1300">#1300</a>)</li>
<li><a
href="a8573eda99"><code>a8573ed</code></a>
Update plugin com.gradle.develocity to v4.3.1 (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1299">#1299</a>)</li>
<li><a
href="ee0f2e3bba"><code>ee0f2e3</code></a>
Fix typo in default <code>DeploymentValidation</code> and correct
documentation (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1296">#1296</a>)</li>
<li><a
href="783599f03e"><code>783599f</code></a>
Update dependency com.android.library to v9.0.0 (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1297">#1297</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vanniktech/gradle-maven-publish-plugin/compare/0.35.0...0.36.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the npm_and_yarn group with 1 update in the
/integration-test/src/jvmTest/typescript directory:
[hono](https://github.com/honojs/hono).
Updates `hono` from 4.11.4 to 4.11.7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/honojs/hono/releases">hono's
releases</a>.</em></p>
<blockquote>
<h2>v4.11.7</h2>
<h1>Security Release</h1>
<p>This release includes security fixes for multiple vulnerabilities in
Hono and related middleware. We recommend upgrading if you are using any
of the affected components.</p>
<h2>Components</h2>
<h3>IP Restriction Middleware</h3>
<p>Fixed an IPv4 address validation bypass that could allow IP-based
access control to be bypassed under certain configurations.</p>
<h3>Cache Middleware</h3>
<p>Fixed an issue where responses marked with <code>Cache-Control:
private</code> or <code>no-store</code> could be cached, potentially
leading to information disclosure on some runtimes.</p>
<h3>Serve Static Middleware (Cloudflare Workers adapter)</h3>
<p>Fixed an issue that could allow unintended access to internal asset
keys when serving static files with user-controlled paths.</p>
<h3>hono/jsx <code>ErrorBoundary</code></h3>
<p>Fixed a reflected Cross-Site Scripting (XSS) issue in the
<code>ErrorBoundary</code> component that could occur when untrusted
strings were rendered without proper escaping.</p>
<h2>Recommendation</h2>
<p>Users are encouraged to upgrade to this release, especially if
they:</p>
<ul>
<li>Use IP Restriction Middleware</li>
<li>Use Cache Middleware on Deno, Bun, or Node.js</li>
<li>Use Serve Static Middleware with user-controlled paths on Cloudflare
Workers</li>
<li>Render untrusted data inside <code>ErrorBoundary</code>
components</li>
</ul>
<h2>Security Advisories & CVEs</h2>
<ul>
<li>
<p><strong>IP Restriction Middleware – IPv4 address validation
bypass</strong></p>
<ul>
<li>Advisory: <a
href="https://github.com/honojs/hono/security/advisories/GHSA-r354-f388-2fhh">https://github.com/honojs/hono/security/advisories/GHSA-r354-f388-2fhh</a></li>
<li>CVE: CVE-2026-24398</li>
</ul>
</li>
<li>
<p><strong>Cache Middleware ignores <code>Cache-Control:
private</code></strong></p>
<ul>
<li>Advisory: <a
href="https://github.com/honojs/hono/security/advisories/GHSA-6wqw-2p9w-4vw4">https://github.com/honojs/hono/security/advisories/GHSA-6wqw-2p9w-4vw4</a></li>
<li>CVE: CVE-2026-24472</li>
</ul>
</li>
<li>
<p><strong>Serve Static Middleware (Cloudflare Workers adapter) –
Arbitrary key read</strong></p>
<ul>
<li>Advisory: <a
href="https://github.com/honojs/hono/security/advisories/GHSA-w332-q679-j88p">https://github.com/honojs/hono/security/advisories/GHSA-w332-q679-j88p</a></li>
<li>CVE: CVE-2026-24473</li>
</ul>
</li>
<li>
<p><strong>hono/jsx <code>ErrorBoundary</code> – Cross-Site Scripting
(XSS)</strong></p>
<ul>
<li>Advisory: <a
href="https://github.com/honojs/hono/security/advisories/GHSA-9r54-q6cx-xmh5">https://github.com/honojs/hono/security/advisories/GHSA-9r54-q6cx-xmh5</a></li>
<li>CVE: Pending</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f7d272abe1"><code>f7d272a</code></a>
4.11.7</li>
<li><a
href="2cf60046d7"><code>2cf6004</code></a>
Merge commit from fork</li>
<li><a
href="cf9a78db4d"><code>cf9a78d</code></a>
Merge commit from fork</li>
<li><a
href="edbf6eea8e"><code>edbf6ee</code></a>
Merge commit from fork</li>
<li><a
href="12c511745b"><code>12c5117</code></a>
Merge commit from fork</li>
<li><a
href="7343487e62"><code>7343487</code></a>
4.11.6</li>
<li><a
href="b6e5a97cd4"><code>b6e5a97</code></a>
feat(bun): export getBunServer (<a
href="https://redirect.github.com/honojs/hono/issues/4626">#4626</a>)</li>
<li><a
href="2a9cd953b6"><code>2a9cd95</code></a>
fix(sse): handle <code>\r</code> and <code>\r\n</code> line endings in
writeSSE (<a
href="https://redirect.github.com/honojs/hono/issues/4644">#4644</a>)</li>
<li><a
href="8078bbf759"><code>8078bbf</code></a>
docs: align CODE_OF_CONDUCT.md wording with Contributor Covenant (<a
href="https://redirect.github.com/honojs/hono/issues/4630">#4630</a>)</li>
<li><a
href="a5be555b31"><code>a5be555</code></a>
refactor: use <code>unique symbol</code> for more accurate typing. (<a
href="https://redirect.github.com/honojs/hono/issues/4651">#4651</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/honojs/hono/compare/v4.11.4...v4.11.7">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/modelcontextprotocol/kotlin-sdk/network/alerts).
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `kotest` from 6.1.1 to 6.1.2.
Updates `io.kotest:kotest-assertions-core` from 6.1.1 to 6.1.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/kotest/kotest/releases">io.kotest:kotest-assertions-core's
releases</a>.</em></p>
<blockquote>
<h2>v6.1.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Improve JS execution to use common spec executor and fix after
project listeners by <a
href="https://github.com/sksamuel"><code>@sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5609">kotest/kotest#5609</a></li>
<li>Add test to confirm async calls in JS SpecExtension.intercept by <a
href="https://github.com/sksamuel"><code>@sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5610">kotest/kotest#5610</a></li>
<li>Add option to the gradle plugin to always rerun tests by <a
href="https://github.com/sksamuel"><code>@sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5636">kotest/kotest#5636</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/kotest/kotest/compare/6.1.2...v6.1.2">https://github.com/kotest/kotest/compare/6.1.2...v6.1.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="cbd905312e"><code>cbd9053</code></a>
Run superclasses on EDT for test explorer service (<a
href="https://redirect.github.com/kotest/kotest/issues/5633">#5633</a>)</li>
<li><a
href="d66e03ed84"><code>d66e03e</code></a>
Restore forEachAsClue.</li>
<li><a
href="028be67052"><code>028be67</code></a>
Migrate JUnit 4 runner to common source sets for JVM and Android
code.</li>
<li><a
href="b6ff74bf3f"><code>b6ff74b</code></a>
Add Android specific JUnit4 implementation with filter (<a
href="https://redirect.github.com/kotest/kotest/issues/5632">#5632</a>)</li>
<li><a
href="a12e3e0c7c"><code>a12e3e0</code></a>
add similarity to containOnly (<a
href="https://redirect.github.com/kotest/kotest/issues/5626">#5626</a>)
(<a
href="https://redirect.github.com/kotest/kotest/issues/5627">#5627</a>)</li>
<li><a
href="79d76734d2"><code>79d7673</code></a>
Add JUnitTestEngineListener tests and update runBlocking context for
single-t...</li>
<li><a
href="34acaeb1ba"><code>34acaeb</code></a>
add-similarity-to-startWith-endWith (<a
href="https://redirect.github.com/kotest/kotest/issues/5629">#5629</a>)</li>
<li><a
href="aef140ccfc"><code>aef140c</code></a>
Update support for nested JUnit4 tests used by Android (<a
href="https://redirect.github.com/kotest/kotest/issues/5630">#5630</a>)</li>
<li><a
href="fe90631dd8"><code>fe90631</code></a>
Setup intellij plugin for 253 and Android development (<a
href="https://redirect.github.com/kotest/kotest/issues/5623">#5623</a>)</li>
<li><a
href="d9f3757261"><code>d9f3757</code></a>
Add missing docker compose file for test</li>
<li>Additional commits viewable in <a
href="https://github.com/kotest/kotest/compare/6.1.1...6.1.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `io.kotest:kotest-assertions-json` from 6.1.1 to 6.1.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/kotest/kotest/releases">io.kotest:kotest-assertions-json's
releases</a>.</em></p>
<blockquote>
<h2>v6.1.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Improve JS execution to use common spec executor and fix after
project listeners by <a
href="https://github.com/sksamuel"><code>@sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5609">kotest/kotest#5609</a></li>
<li>Add test to confirm async calls in JS SpecExtension.intercept by <a
href="https://github.com/sksamuel"><code>@sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5610">kotest/kotest#5610</a></li>
<li>Add option to the gradle plugin to always rerun tests by <a
href="https://github.com/sksamuel"><code>@sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5636">kotest/kotest#5636</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/kotest/kotest/compare/6.1.2...v6.1.2">https://github.com/kotest/kotest/compare/6.1.2...v6.1.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="cbd905312e"><code>cbd9053</code></a>
Run superclasses on EDT for test explorer service (<a
href="https://redirect.github.com/kotest/kotest/issues/5633">#5633</a>)</li>
<li><a
href="d66e03ed84"><code>d66e03e</code></a>
Restore forEachAsClue.</li>
<li><a
href="028be67052"><code>028be67</code></a>
Migrate JUnit 4 runner to common source sets for JVM and Android
code.</li>
<li><a
href="b6ff74bf3f"><code>b6ff74b</code></a>
Add Android specific JUnit4 implementation with filter (<a
href="https://redirect.github.com/kotest/kotest/issues/5632">#5632</a>)</li>
<li><a
href="a12e3e0c7c"><code>a12e3e0</code></a>
add similarity to containOnly (<a
href="https://redirect.github.com/kotest/kotest/issues/5626">#5626</a>)
(<a
href="https://redirect.github.com/kotest/kotest/issues/5627">#5627</a>)</li>
<li><a
href="79d76734d2"><code>79d7673</code></a>
Add JUnitTestEngineListener tests and update runBlocking context for
single-t...</li>
<li><a
href="34acaeb1ba"><code>34acaeb</code></a>
add-similarity-to-startWith-endWith (<a
href="https://redirect.github.com/kotest/kotest/issues/5629">#5629</a>)</li>
<li><a
href="aef140ccfc"><code>aef140c</code></a>
Update support for nested JUnit4 tests used by Android (<a
href="https://redirect.github.com/kotest/kotest/issues/5630">#5630</a>)</li>
<li><a
href="fe90631dd8"><code>fe90631</code></a>
Setup intellij plugin for 253 and Android development (<a
href="https://redirect.github.com/kotest/kotest/issues/5623">#5623</a>)</li>
<li><a
href="d9f3757261"><code>d9f3757</code></a>
Add missing docker compose file for test</li>
<li>Additional commits viewable in <a
href="https://github.com/kotest/kotest/compare/6.1.1...6.1.2">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Summary
Add integration tests for Prompts, Resources, and Tools over Streamable
HTTP transport as outlined in #183.
## Changes
- [x] Infrastructure: Enable `STREAMABLE_HTTP` transport in test base
- [x] Prompts: Add functional integration tests
- [x] Resources: Add functional integration tests
- [x] Tools: Add functional integration tests
Related to #332
---------
Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
- increase the deprecation level
- remove tests that use deprecated objects with deprecation level =
error
## Motivation and Context
deprecation lifecycle
## How Has This Been Tested?
-
## Breaking Changes
-
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
- generate detekt config
- enable several rules
- disable ktlint backing property check
## Motivation and Context
Centralized control of detekt rules. Using detekt 2 configuration
## How Has This Been Tested?
locally
## Breaking Changes
-
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
- Add Detekt configuration (`detekt.yml`) with custom rules
- Apply Detekt plugin to all subprojects
- Configure Detekt tasks in Gradle workflow
- Update Gradle dependency versions to include Detekt plugin
## Motivation and Context
Enhance static code analysis for improved code quality.
## Breaking Changes
No
## Types of changes
- [x] CI update
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
Update version to 0.8.3. Prepare for release
## Motivation and Context
Prepare for release
## How Has This Been Tested?
CI
## Breaking Changes
No
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] CI update
# chore(ci): Update deploy pipeline
## Motivation and Context
To troubleshoot deployment failure, it has to be merged to main first
## How Has This Been Tested?
Will be tested manually on main branch
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
- [x] CI update
# Prepare for release version 0.8.2
bump mcp kotlin-sdk to 0.8.2
## How Has This Been Tested?
CI
## Breaking Changes
No
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] CI update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
# Fix conformance tests.
1. fix node version to workaround
https://github.com/nodejs/node/issues/56645
2. use `@argfile` to handle long classpaths
3. specify extension for npx for windows
4. Install `@modelcontextprotocol/conformance@0.1.8` GitHub Actions
workflow.
5. Centralize logging for process streams in conformance tests: Add
`startLogging` utility for InputStream logging with `KotlinLogging`.
Replace inline process stream handling with `startLogging` calls
Note: Currently tests pass using
`@modelcontextprotocol/conformance@0.1.8`/ But changing to 0.1.9 will
fail client scenarios (it is not related to this PR).
## Motivation and Context
Before fix conformance tests are broken on Windows
## How Has This Been Tested?
Run test locally and in github actions
## Breaking Changes
No
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
May be we should update `CONTRIBUTING.md/Building/Requirements`. But
currently it does not mention at all: node, android, etc.
---------
Co-authored-by: f.bobin <f.bobin@vk.team>
Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
As part of MCP joining the Linux Foundation, this PR updates licensing
to Apache 2.0 for new contributions while grandfathering existing MIT
code. See modelcontextprotocol/modelcontextprotocol#1994
---------
Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
# Refactor integration test infrastructure, fix and enable tests with
ts-client
- Refactor TypeScript integration test infrastructure to support
parallel execution and real I/O operations.
- Extract reusable TypeScriptClient component
- Migrate some tests from `runTest` to `runBlocking` for tests that
spawn actual processes and communicate over real network connections.
## Key Changes
- Extract `TypeScriptClient` class for managing TS client processes
- Move client scripts to integration-test/src/jvmTest/typescript/client/
- Migrate typescript: `myClient.ts`(2) → `sse-client.ts`,
`stdio-client.ts`
- Automate TypeScript dependency installation in static initializer
- Enable JUnit parallel execution (dynamic strategy, concurrent mode)
with test timeout of 2 minutes
- Replace `mutableListOf` with `ConcurrentLinkedQueue` for thread-safe
notification handling
- Migrate integration tests from `runTest` to `runBlocking`
**Rationale:** Integration tests that spawn real TypeScript processes,
establish actual
HTTP/SSE connections, and manage server lifecycles require real-time I/O
behavior. The runTest framework's virtual time is designed for fast unit
tests with simulated timing, not for integration scenarios where
external processes and network communication must occur in real time.
Parallel execution requires thread-safe data structures
(ConcurrentLinkedQueue)
to safely collect notifications from multiple concurrent test instances.
- Add `EmbeddedServer.actualPort()` extension to get bound port
- Standardize kotlin.time.Duration usage across test utilities
- Update processUtils.stopProcess() to accept Duration parameter
- Replace RuntimeException checks with idiomatic check() calls
- Revert `--rerun-tasks` flag to Gradle workflows for reliable builds
## Motivation and Context
Integration tests with typescript client are now broken. Enabling
parallel test execution will force writing thread-safe independent tests
and will highlight problems faster.
## How Has This Been Tested?
CI
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] CI Update
- [x] Test Fix
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
Follow up for #477
# refactor(test): add centralized TypeScript server factory for
integration tests
- Create TypeScriptServer class for managing TypeScript MCP servers
- Add dedicated typescript/ directory with server infrastructure
- Refactor TsTestBase to use TypeScriptServer for stdio transport
- Extract TypeScript test tools (greet, multi-greet, prompts, resources)
- Use npx tsx for direct execution (better performance than npm run)
- Install TypeScript dependencies automatically in test setup
The TypeScriptServer factory provides:
- startSse(port): Start SSE transport server
- startStdio(): Start STDIO transport server
- stop(): Graceful server shutdown
- installDependencies(): npm install automation
<!-- Provide a brief summary of your changes -->
## Motivation and Context
To resurrect typescript tests
## How Has This Been Tested?
Locally, CI
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] Test fix
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
#475
# Refactor test utilities, fix conformance
- Add `test-utils` module to streamline test cases
- Rename module `kotlin-sdk-test` -> `integration-test`
- Move test utilities for managing processes, ports, and TypeScript
execution logic
- Make conformance tests work by specifying conformance package version
(0.1.8)
## Motivation and Context
Reuse test infrastructure code, resurrect conformance tests
## How Has This Been Tested?
CI, locally
## Breaking Changes
No
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] Tests update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
<!-- Provide a brief summary of your changes -->
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
The dsl builders in [this
commit](74c93745cd (diff-598edaa01d))
were mistakenly marked internal and are therefore unusable. I have
simply marked them as public.
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
No
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
---------
Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
Bumps
[actions/upload-artifact](https://github.com/actions/upload-artifact)
from 5 to 6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/upload-artifact/releases">actions/upload-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v6.0.0</h2>
<h2>v6 - What's new</h2>
<blockquote>
<p>[!IMPORTANT]
actions/upload-artifact@v6 now runs on Node.js 24 (<code>runs.using:
node24</code>) and requires a minimum Actions Runner version of 2.327.1.
If you are using self-hosted runners, ensure they are updated before
upgrading.</p>
</blockquote>
<h3>Node.js 24</h3>
<p>This release updates the runtime to Node.js 24. v5 had preliminary
support for Node.js 24, however this action was by default still running
on Node.js 20. Now this action by default will run on Node.js 24.</p>
<h2>What's Changed</h2>
<ul>
<li>Upload Artifact Node 24 support by <a
href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/719">actions/upload-artifact#719</a></li>
<li>fix: update <code>@actions/artifact</code> for Node.js 24 punycode
deprecation by <a
href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/744">actions/upload-artifact#744</a></li>
<li>prepare release v6.0.0 for Node.js 24 support by <a
href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/745">actions/upload-artifact#745</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/upload-artifact/compare/v5.0.0...v6.0.0">https://github.com/actions/upload-artifact/compare/v5.0.0...v6.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b7c566a772"><code>b7c566a</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/upload-artifact/issues/745">#745</a>
from actions/upload-artifact-v6-release</li>
<li><a
href="e516bc8500"><code>e516bc8</code></a>
docs: correct description of Node.js 24 support in README</li>
<li><a
href="ddc45ed9bc"><code>ddc45ed</code></a>
docs: update README to correct action name for Node.js 24 support</li>
<li><a
href="615b319bd2"><code>615b319</code></a>
chore: release v6.0.0 for Node.js 24 support</li>
<li><a
href="017748b48f"><code>017748b</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/upload-artifact/issues/744">#744</a>
from actions/fix-storage-blob</li>
<li><a
href="38d4c7997f"><code>38d4c79</code></a>
chore: rebuild dist</li>
<li><a
href="7d27270e0c"><code>7d27270</code></a>
chore: add missing license cache files for <code>@actions/core</code>,
<code>@actions/io</code>, and mi...</li>
<li><a
href="5f643d3c94"><code>5f643d3</code></a>
chore: update license files for <code>@actions/artifact</code><a
href="https://github.com/5"><code>@5</code></a>.0.1 dependencies</li>
<li><a
href="1df1684032"><code>1df1684</code></a>
chore: update package-lock.json with <code>@actions/artifact</code><a
href="https://github.com/5"><code>@5</code></a>.0.1</li>
<li><a
href="b5b1a91840"><code>b5b1a91</code></a>
fix: update <code>@actions/artifact</code> to ^5.0.0 for Node.js 24
punycode fix</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/upload-artifact/compare/v5...v6">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [io.netty:netty-bom](https://github.com/netty/netty) from
4.2.7.Final to 4.2.9.Final.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a853a399b5"><code>a853a39</code></a>
[maven-release-plugin] prepare release netty-4.2.9.Final</li>
<li><a
href="6d29a4f343"><code>6d29a4f</code></a>
Add missing publishing config for the bom module</li>
<li><a
href="ea911deea6"><code>ea911de</code></a>
Optimize HTTP startline validation (<a
href="https://redirect.github.com/netty/netty/issues/16030">#16030</a>)</li>
<li><a
href="d7108a36bb"><code>d7108a3</code></a>
LocalChannel: Reduce GC by re-using same Runnable (<a
href="https://redirect.github.com/netty/netty/issues/16014">#16014</a>)</li>
<li><a
href="207afcbbc7"><code>207afcb</code></a>
Fix MpscIntQueue bug (<a
href="https://redirect.github.com/netty/netty/issues/16023">#16023</a>)</li>
<li><a
href="27bfd56461"><code>27bfd56</code></a>
Fix HTTP startline validation (<a
href="https://redirect.github.com/netty/netty/issues/16022">#16022</a>)</li>
<li><a
href="40ab4184d8"><code>40ab418</code></a>
[maven-release-plugin] prepare for next development iteration</li>
<li><a
href="e2d9d11c67"><code>e2d9d11</code></a>
[maven-release-plugin] prepare release netty-4.2.8.Final</li>
<li><a
href="2f2e437f10"><code>2f2e437</code></a>
Merge commit from fork</li>
<li><a
href="d011634cf2"><code>d011634</code></a>
Build fixes to allow using the epoll native transport on Android (<a
href="https://redirect.github.com/netty/netty/issues/16016">#16016</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/netty/netty/compare/netty-4.2.7.Final...netty-4.2.9.Final">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[org.jetbrains.kotlinx.kover](https://github.com/Kotlin/kotlinx-kover)
from 0.9.3 to 0.9.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Kotlin/kotlinx-kover/releases">org.jetbrains.kotlinx.kover's
releases</a>.</em></p>
<blockquote>
<h2>0.9.4</h2>
<h2>Kover Gradle Plugin</h2>
<h3>Bugfixes</h3>
<ul>
<li><a
href="https://redirect.github.com/Kotlin/kotlinx-kover/issues/776"><code>[#776](https://github.com/Kotlin/kotlinx-kover/issues/776)</code></a>
Added support for Android Gradle Plugin 9.0.0</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Kotlin/kotlinx-kover/blob/main/CHANGELOG.md">org.jetbrains.kotlinx.kover's
changelog</a>.</em></p>
<blockquote>
<h1>0.9.4 / 2025-12-09</h1>
<h2>Kover Gradle Plugin</h2>
<h3>Bugfixes</h3>
<ul>
<li><a
href="https://redirect.github.com/Kotlin/kotlinx-kover/issues/776"><code>[#776](https://github.com/Kotlin/kotlinx-kover/issues/776)</code></a>
Added support for Android Gradle Plugin 9.0.0</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="34e42b95d9"><code>34e42b9</code></a>
Release 0.9.4</li>
<li><a
href="298bf8b95b"><code>298bf8b</code></a>
Added support for Android Gradle Plugin 9.0.0</li>
<li><a
href="0ba9e9e68e"><code>0ba9e9e</code></a>
Aligned filtering for JaCoCo reports with Kover reporting</li>
<li>See full diff in <a
href="https://github.com/Kotlin/kotlinx-kover/compare/v0.9.3...v0.9.4">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
[//]: # (dependabot-start)
⚠️ **Dependabot is rebasing this PR** ⚠️
Rebasing might not happen immediately, so don't worry if this takes some
time.
Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.
---
[//]: # (dependabot-end)
Bumps org.openapi.generator from 7.17.0 to 7.18.0.
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
# Update/Fix build workflow
- `macos-latest-xlarge` is no longer available. Switch to cheaper
runner: `macos-latest-xlarge` -> `macos-latest`
- Refactor build to run matrix job under Linux and macOS
- Tune caching GH caching
- Add junit and logger properties
- Downgrade Junit to 5.14.2
- Extract `ProcessBuilder` creation logic into helper functions
- Disable `StdioClientTransportTest` on windows temporary
## How Has This Been Tested?
CI
## Breaking Changes
Functionally - no. Outdated/broken TypeScript tests were disabled
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] CI Update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
GitHub actions workflows were blocked because the selected
"macos-latest-xlarge" runner, which is not available for the free
open-source plan. With "macos-latest" workflow works.
<!-- Provide a brief summary of your changes -->
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
# Revert publishing junit-report comments
Build on Forks is broken now, because Junit-Reports plugin can't write
comments.
<!-- Provide a brief summary of your changes -->
## Motivation and Context
Revert [this
change](https://github.com/modelcontextprotocol/kotlin-sdk/pull/442/files#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721)
## How Has This Been Tested?
CI
## Breaking Changes
No
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
Update GitHub Actions workflow
- Rename `validate-pr` job to `build`
- Update `comment` and `updateComment` parameters to be false on forks
<!-- Provide a brief summary of your changes -->
## Motivation and Context
mikepenz/action-junit-report GH Action can't create/update comments on
forks
## How Has This Been Tested?
CI
## Breaking Changes
No
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
<!-- Provide a brief summary of your changes -->
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
## Changes
Fix flaky StdioClientTransportErrorHandlingTest
Use non-empty buffer for reliability
## How Has This Been Tested?
Unit test
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
# [WIP] StreamableHttpServerTransport implementation
- Implement StreamableHttpServerTransport for MCP spec
- Support both SSE streaming and direct HTTP JSON responses
- Add event store interface for resumability
> [!IMPORTANT]
> The work is in progress. StreamableHttpServerTransport is not
production-ready yet!!!
Based on #235
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
None
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
# Prepare for next development iteration
Bump mcp kotlin-sdk to 0.8.1
## How Has This Been Tested?
Regression
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] CI update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
# Prepare for release version 0.8.1
Bump mcp kotlin-sdk to 0.8.1
## How Has This Been Tested?
Regression tests on CI
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
# Better exception handling in StdioClientTransport
Refactor `McpException` for improved handling with convenience
constructors and enhanced exception wrapping logic in
`StdioClientTransport`. Update tests to use `kotest` matchers and add
JUnit parameterized tests for exception handling.
## Motivation and Context
#442 follow up
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
<!-- Provide a brief summary of your changes -->
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
Implemented thread-safe notification service following eventual
consistency principle.
Fixes https://github.com/modelcontextprotocol/kotlin-sdk/issues/249
Contracts:
* If the client connection and feature update happened in the same
thread, the timestamps of the events will be consequent
```
server.connect(client)
server.add(feature)
// client will receive the notification
```
```
server.add(feature)
server.connect(client)
// client will NOT receive the notification
```
* If the client connection and feature update happened in the different
threads, both options can be possible
The flow of the notification is explained in the diagram:
<img width="663" height="413" alt="image"
src="https://github.com/user-attachments/assets/e2c4c108-53dd-408d-97ef-97110ce5c979"
/>
Documentation references:
https://modelcontextprotocol.io/specification/2025-06-18/server/prompts#list-changed-notificationhttps://modelcontextprotocol.io/specification/2025-06-18/server/tools#list-changed-notificationhttps://modelcontextprotocol.io/specification/2025-06-18/server/resources#list-changed-notificationhttps://modelcontextprotocol.io/specification/2025-06-18/server/resources#subscriptions
Questions:
* I haven't found the subscription confirmed response message content
docs, how it should look like?
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
Multiple tests with various notification scenarios were added
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Bumps
[org.jetbrains.kotlinx:kotlinx-io-core](https://github.com/Kotlin/kotlinx-io)
from 0.8.1 to 0.8.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Kotlin/kotlinx-io/releases">org.jetbrains.kotlinx:kotlinx-io-core's
releases</a>.</em></p>
<blockquote>
<h2>v0.8.2</h2>
<h3>Bugfixes</h3>
<ul>
<li>Fixed the issue with Webpack not being able to process module import
introduced in <code>0.8.1</code> <a
href="https://redirect.github.com/Kotlin/kotlinx-io/issues/483">#483</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Kotlin/kotlinx-io/blob/master/CHANGELOG.md">org.jetbrains.kotlinx:kotlinx-io-core's
changelog</a>.</em></p>
<blockquote>
<h2>0.8.2</h2>
<blockquote>
<p>Published 24 November 2025</p>
</blockquote>
<h3>Bugfixes</h3>
<ul>
<li>Fixed the issue with Webpack not being able to process module import
introduced in <code>0.8.1</code> <a
href="https://redirect.github.com/Kotlin/kotlinx-io/issues/483">#483</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b4e59a49a0"><code>b4e59a4</code></a>
Release 0.8.2</li>
<li><a
href="b1914c2a87"><code>b1914c2</code></a>
Prevent node:module import processing by Webpack (<a
href="https://redirect.github.com/Kotlin/kotlinx-io/issues/485">#485</a>)</li>
<li>See full diff in <a
href="https://github.com/Kotlin/kotlinx-io/compare/0.8.1...0.8.2">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
<!-- Provide a brief summary of your changes -->
## Motivation and Context
1. The currently failing checks are commented out in `ConformanceTest`,
see the TODOs.
2. I added detailed logging for Gradle task, Server, and Client to allow
easier output reading when viewing tests results outside of IDE.
3. As a future improvement, instead of hard-coding scenarios, we can get
them with `npx @modelcontextprotocol/conformance list` and run all of
them.
4. The conformance framework writes its result into
`kotlin-sdk-test/results` directory and contains JSONs like the one
below:
```json
[
{
"id": "mcp-client-initialization",
"name": "MCPClientInitialization",
"description": "Validates that MCP client properly initializes with server",
"status": "SUCCESS",
"timestamp": "2025-11-28T14:38:36.718Z",
"specReferences": [
{
"id": "MCP-Lifecycle",
"url": "https://modelcontextprotocol.io/specification/2025-06-18/basic/lifecycle"
}
],
"details": {
"protocolVersionSent": "2025-06-18",
"expectedSpecVersion": "2025-06-18",
"versionMatch": true,
"clientName": "kotlin-conformance-client",
"clientVersion": "1.0.0"
}
},
{
"id": "server-info",
"name": "ServerInfo",
"description": "Test server info returned to client",
"status": "INFO",
"timestamp": "2025-11-28T14:38:36.718Z",
"specReferences": [
{
"id": "MCP-Lifecycle",
"url": "https://modelcontextprotocol.io/specification/2025-06-18/basic/lifecycle"
}
],
"details": {
"serverName": "test-server",
"serverVersion": "1.0.0"
}
}
]
```
As another future improvement, we can do somethig with these JSON files,
like putting them into a job summary on GitHub.
5. The client test also generated stderr.txt file in
`kotlin-sdk-test/results/initialize-.......` which contains errors
because it tries to call a tool. I haven't investigated if it's just the
way I wrote the client or related to `StreamableHttpClientTransport`.
6. The server is the simplified version of the existing server for
Kotlin<--->Typescript tests. If conformance tests extend significantly,
we can either combine the server implementations or ditch the
integration tests.
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
---------
Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
Upgrade SDK version to 0.8.0 in Weather STDIO server sample
## Motivation and Context
Keep samples up to date
## How Has This Been Tested?
Locally + CI
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Refactoring
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Refactor StreamableHttpClientTransport to skip SSE when the data field
is empty.
## Motivation and Context
TypeScript SSE Server started returning Server-Sent Events with only id
and empty data field (Heartbeat/Checkpoint), followed by an event with
data, e.g.:
```
id: d85c6bb0-0fa2-4828-81ad-3e951131aea5_1764226144689_7qb3iojc
data:
event: message
id: d85c6bb0-0fa2-4828-81ad-3e951131aea5_1764226144690_sodh20lo
data: {"result":{"protocolVersion":"2025-06-18","capabilities":{"logging":{},"tools":{"listChanged":true},"prompts":{"listChanged":true},"completions":{},"resources":{"listChanged":true}},"serverInfo":{"name":"simple-streamable-http-server","version":"1.0.0"}},"jsonrpc":"2.0","id":"7ce065b0678f49e5b04ce5a0fcc7d518"}
```
Such empty events might be used by the server as **Heartbeat** or
**Checkpoint** events. The client should retain the updated
Last-Event-ID and disregard the payload. It is essential to handle such
responses to ensure compatibility with updated TypeScript SDK.
## How Has This Been Tested?
- Added integration test
- Regression tests are green now
## Breaking Changes
No
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Bumps
[org.jetbrains.kotlinx:kotlinx-io-core](https://github.com/Kotlin/kotlinx-io)
from 0.8.0 to 0.8.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Kotlin/kotlinx-io/releases">org.jetbrains.kotlinx:kotlinx-io-core's
releases</a>.</em></p>
<blockquote>
<h2>v0.8.1</h2>
<p>This release addresses an issue with Wasm/JS, where the
<code>require</code> function will no longer be available starting from
Kotlin <code>2.3.20</code> (and it was never guaranteed to be available
in Wasm/JS).</p>
<p>The release also includes some infrastructure changes.</p>
<h3>Bugfixes</h3>
<ul>
<li>Fixed the issue with the <code>require</code>-function that
Wasm/JS-projects migrating to future versions of Kotlin might face <a
href="https://redirect.github.com/Kotlin/kotlinx-io/pull/481">#481</a></li>
</ul>
<p>Thanks to <a
href="https://github.com/alex28sh"><code>@alex28sh</code></a>, <a
href="https://github.com/sargunv"><code>@sargunv</code></a>, and <a
href="https://github.com/iseki0"><code>@iseki0</code></a> for
contributions!</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Kotlin/kotlinx-io/blob/master/CHANGELOG.md">org.jetbrains.kotlinx:kotlinx-io-core's
changelog</a>.</em></p>
<blockquote>
<h2>0.8.1</h2>
<blockquote>
<p>Published 21 November 2025</p>
</blockquote>
<p>This release addresses an issue with Wasm/JS,
where the <code>require</code> function will no longer be available
starting from Kotlin <code>2.3.20</code>
(and it was never guaranteed to be available in Wasm/JS).</p>
<p>The release also includes some infrastructure changes.</p>
<h3>Bugfixes</h3>
<ul>
<li>Fixed the issue with the <code>require</code>-function that
Wasm/JS-projects migrating to future versions of Kotlin might face <a
href="https://redirect.github.com/Kotlin/kotlinx-io/pull/481">#481</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="843f4d2af6"><code>843f4d2</code></a>
Release 0.8.1</li>
<li><a
href="855d120d9d"><code>855d120</code></a>
Merge branch 'develop'</li>
<li><a
href="45e6cea4bc"><code>45e6cea</code></a>
Add a list of published packages (<a
href="https://redirect.github.com/Kotlin/kotlinx-io/issues/482">#482</a>)</li>
<li><a
href="08e5fd8912"><code>08e5fd8</code></a>
Wasm/JS uses ES modules [1], and the require function is not guaranteed
to be...</li>
<li><a
href="dc2b7c5693"><code>dc2b7c5</code></a>
Apply power-assert plugin (<a
href="https://redirect.github.com/Kotlin/kotlinx-io/issues/478">#478</a>)</li>
<li><a
href="6fd869747c"><code>6fd8697</code></a>
Commit codestyle (<a
href="https://redirect.github.com/Kotlin/kotlinx-io/issues/474">#474</a>)</li>
<li><a
href="3aac3a5427"><code>3aac3a5</code></a>
Migrate to the BCV shipped with KGP (<a
href="https://redirect.github.com/Kotlin/kotlinx-io/issues/466">#466</a>)</li>
<li><a
href="e6d0f705b3"><code>e6d0f70</code></a>
Support a new publication scheme (<a
href="https://redirect.github.com/Kotlin/kotlinx-io/issues/460">#460</a>)</li>
<li><a
href="b1db70bb98"><code>b1db70b</code></a>
Update api reference url (<a
href="https://redirect.github.com/Kotlin/kotlinx-io/issues/462">#462</a>)</li>
<li><a
href="8f03d33fae"><code>8f03d33</code></a>
Update Kotlin version badge</li>
<li>See full diff in <a
href="https://github.com/Kotlin/kotlinx-io/compare/0.8.0...0.8.1">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Motivation and Context
Prepare for next develoment version
## How Has This Been Tested?
Regression tests
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] CI update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
bump mcp kotlin-sdk to 0.8.0
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
- Add convenience constructors to JSONRPCRequest
- Make UUID string a default JSONRPCRequest
## Motivation and Context
To create request objects more easily
## How Has This Been Tested?
Unit tests
## Breaking Changes
No, this is a new API
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Add support for `TransportSendOptions` in `Transport.send` method
## Motivation and Context
This change extends the `Transport.send` method signature to support
advanced transport features like resumption tokens and progress
callbacks. This is needed to enable:
- Long-running request resumption after reconnection
- Request-response association tracking
- Progress token handling in transport layer
needed for #235
## How Has This Been Tested?
All transport tests passed
## Breaking Changes
Yes, it’s necessary to update the custom Transport implementations.
For users who rely on the transports provided by the sdk, there’s no
breaking change
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
This PR introduces type-safe DSL builders for all MCP request types,
making it easier to construct requests
### Current Solution
All request types now have DSL builders:
```kotlin
// Initialize request
val request = initializeRequest {
protocolVersion = "2024-11-05"
capabilities {
sampling(ClientCapabilities.sampling)
roots(listChanged = true)
}
info("MyClient", "1.0.0")
}
// Create message request with conversation
val messageRequest = createMessageRequest {
maxTokens = 1000
systemPrompt = "You are a helpful assistant"
messages {
user { "What is the capital of France?" }
assistant { "The capital of France is Paris." }
user { "What about Germany?" }
}
}
// Call tool request
val toolRequest = callToolRequest {
name = "searchDatabase"
arguments {
put("query", "users")
put("limit", 10)
}
}
// Elicit request with schema
val elicitRequest = elicitationRequest {
message = "Please provide your contact information"
requestedSchema {
properties {
put("email", JsonObject(mapOf(
"type" to JsonPrimitive("string"),
"description" to JsonPrimitive("Your email address")
)))
}
required = listOf("email")
}
}
```
Each DSL builder includes:
- Clear separation of required (but runtime) vs optional fields
- Multiple usage examples
- Concise error messages with examples when required fields are missing
- Cross-references to related types
### Design Considerations
1. Function Naming Convention
The current naming convention (e.g., initializeRequest, callToolRequest) might be confusing since these functions don't send requests, they just build request objects.
Alternative approach: Add a build prefix to clarify intent:
- `initializeRequest` → `buildInitializeRequest`
- `callToolRequest` → `buildCallToolRequest`
- `createMessageRequest` → `buildCreateMessageRequest`
This would make it clearer that these are builder functions.
2. Runtime vs Compile-Time Validation
Currently, required fields are validated at runtime in the `build()` method:
```kotlin
val request = initializeRequest {
protocolVersion = "2024-11-05"
// Missing required fields: capabilities, info
// Error thrown at runtime ❌
}
```
Alternative approach: Use Compose UI style where required parameters are in the function signature:
```kotlin
fun initializeRequest(
protocolVersion: String,
capabilities: ClientCapabilities,
info: Implementation,
block: InitializeRequestBuilder.() -> Unit = {}
): InitializeRequest
```
```kotlin
// Usage
val request = initializeRequest(
protocolVersion = "2024-11-05",
capabilities = ClientCapabilities(sampling =
ClientCapabilities.sampling),
info = Implementation("MyClient", "1.0.0")
) {
// Optional fields only
meta { put("key", "value") }
}
```
Pros:
- Compile-time safety for required fields ✅
- Clear which fields are required ✅
- Better IDE autocomplete ✅
Cons:
- Multiple trailing lambdas can be confusing:
```kotlin
// When required fields include lambdas
val request = elicitationRequest(
message = "Enter info",
requestedSchema = { /* lambda 1 */ }
) { /* lambda 2 for optional fields */ }
```
- Less consistent DSL feel
- More verbose for simple cases
## Motivation and Context
fix#220
## How Has This Been Tested?
locally
## Breaking Changes
None
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
May throw the following exceptions: `CancellationException`,
`McpException`, `StreamableHttpError`, and `SerializationException`
## Motivation and Context
This makes it possible to handle errors directly without needing to
inspect the cause. For example:
```kotlin
try {
client.connect(transport)
} catch (e: StreamableHttpError) {
// ...
}
```
## How Has This Been Tested?
locally
## Breaking Changes
None
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
Bumps
[com.vanniktech:gradle-maven-publish-plugin](https://github.com/vanniktech/gradle-maven-publish-plugin)
from 0.34.0 to 0.35.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vanniktech/gradle-maven-publish-plugin/releases">com.vanniktech:gradle-maven-publish-plugin's
releases</a>.</em></p>
<blockquote>
<h2>0.35.0</h2>
<ul>
<li>Add support for publishing Kotlin Multiplatform libraries that use
<code>com.android.kotlin.multiplatform.library</code>.</li>
<li>Add support for validating deployments to Central Portal</li>
<li>Raise minimum Gradle version to 8.13</li>
<li>Raise minimum Android Gradle Plugin version to 8.2.2</li>
<li>Do not unconditionally disable DocLint</li>
<li>Fail publishing if <code>SONATYPE_HOST</code> is not set to
<code>CENTRAL_PORTAL</code>.</li>
<li>Fix misleading error message when Android library variant is not
found.</li>
<li>Downgrade transitive OkHttp version.</li>
<li>Don't check project heirarchy for POM properties when Isolated
proejcts is enabled.</li>
</ul>
<p>Thanks to <a
href="https://github.com/joshfriend"><code>@joshfriend</code></a>, <a
href="https://github.com/Flowdalic"><code>@Flowdalic</code></a> and <a
href="https://github.com/Goooler"><code>@Goooler</code></a> for their
contributions to this release.</p>
<h4>Minimum supported versions</h4>
<ul>
<li>JDK 11</li>
<li>Gradle 8.13</li>
<li>Android Gradle Plugin 8.2.2</li>
<li>Kotlin Gradle Plugin 1.9.20</li>
</ul>
<h4>Compatibility tested up to</h4>
<ul>
<li>JDK 24</li>
<li>Gradle 9.2.0</li>
<li>Gradle 9.3.0-milestone-1</li>
<li>Android Gradle Plugin 8.13.1</li>
<li>Android Gradle Plugin 9.0.0-alpha14</li>
<li>Kotlin Gradle Plugin 2.2.21</li>
<li>Kotlin Gradle Plugin 2.3.0-Beta2</li>
</ul>
<h2>0.35.0-rc1</h2>
<ul>
<li>Add support for publishing Kotlin Multiplatform libraries that use
<code>com.android.kotlin.multiplatform.library</code>.</li>
<li>Add support for validating deployments to Central Portal</li>
<li>Raise minimum Gradle version to 8.13</li>
<li>Raise minimum Android Gradle Plugin version to 8.2.2</li>
<li>Do not unconditionally disable DocLint</li>
<li>Fail publishing if <code>SONATYPE_HOST</code> is not set to
<code>CENTRAL_PORTAL</code>.</li>
<li>Fix misleading error message when Android library variant is not
found.</li>
<li>Downgrade transitive OkHttp version.</li>
<li>Don't check project heirarchy for POM properties when Isolated
proejcts is enabled.</li>
</ul>
<p>Thanks to <a
href="https://github.com/joshfriend"><code>@joshfriend</code></a>, <a
href="https://github.com/Flowdalic"><code>@Flowdalic</code></a> and <a
href="https://github.com/Goooler"><code>@Goooler</code></a> for their
contributions to this release.</p>
<h4>Minimum supported versions</h4>
<ul>
<li>JDK 11</li>
<li>Gradle 8.13</li>
<li>Android Gradle Plugin 8.2.2</li>
<li>Kotlin Gradle Plugin 1.9.20</li>
</ul>
<h4>Compatibility tested up to</h4>
<ul>
<li>JDK 24</li>
<li>Gradle 9.2.0</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vanniktech/gradle-maven-publish-plugin/blob/main/CHANGELOG.md">com.vanniktech:gradle-maven-publish-plugin's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/vanniktech/gradle-maven-publish-plugin/releases/tag/0.35.0">0.35.0</a>
<em>(2025-11-11)</em></h2>
<ul>
<li>Add support for publishing Kotlin Multiplatform libraries that use
<code>com.android.kotlin.multiplatform.library</code>.</li>
<li>Add support for validating deployments to Central Portal</li>
<li>Raise minimum Gradle version to 8.13</li>
<li>Raise minimum Android Gradle Plugin version to 8.2.2</li>
<li>Do not unconditionally disable DocLint</li>
<li>Fail publishing if <code>SONATYPE_HOST</code> is not set to
<code>CENTRAL_PORTAL</code>.</li>
<li>Fix misleading error message when Android library variant is not
found.</li>
<li>Downgrade transitive OkHttp version.</li>
<li>Don't check project heirarchy for POM properties when Isolated
proejcts is enabled.</li>
</ul>
<p>Thanks to <a
href="https://github.com/joshfriend"><code>@joshfriend</code></a>, <a
href="https://github.com/Flowdalic"><code>@Flowdalic</code></a> and <a
href="https://github.com/Goooler"><code>@Goooler</code></a> for their
contributions to this release.</p>
<h4>Minimum supported versions</h4>
<ul>
<li>JDK 11</li>
<li>Gradle 8.13</li>
<li>Android Gradle Plugin 8.2.2</li>
<li>Kotlin Gradle Plugin 1.9.20</li>
</ul>
<h4>Compatibility tested up to</h4>
<ul>
<li>JDK 24</li>
<li>Gradle 9.2.0</li>
<li>Gradle 9.3.0-milestone-1</li>
<li>Android Gradle Plugin 8.13.1</li>
<li>Android Gradle Plugin 9.0.0-alpha14</li>
<li>Kotlin Gradle Plugin 2.2.21</li>
<li>Kotlin Gradle Plugin 2.3.0-Beta2</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8232338286"><code>8232338</code></a>
update to 0.35.0-rc1</li>
<li><a
href="85b409d29d"><code>85b409d</code></a>
0.35.0 prep</li>
<li><a
href="2e01bc6c45"><code>2e01bc6</code></a>
Always run CI on the latest Java (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1193">#1193</a>)</li>
<li><a
href="fb36ee35ad"><code>fb36ee3</code></a>
Update android.gradle to v8.13.1 (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1194">#1194</a>)</li>
<li><a
href="0f8135b032"><code>0f8135b</code></a>
Use Java 25 on CI (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1184">#1184</a>)</li>
<li><a
href="4cc5b526b5"><code>4cc5b52</code></a>
Clean up toolchain usages in tests (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1191">#1191</a>)</li>
<li><a
href="aa456e1f2b"><code>aa456e1</code></a>
Update plugin android-lint to v8.13.1 (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1195">#1195</a>)</li>
<li><a
href="32a9226878"><code>32a9226</code></a>
Update dependency com.android.library to v9.0.0-alpha14 (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1188">#1188</a>)</li>
<li><a
href="48a58afe3e"><code>48a58af</code></a>
Support deploying API html (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1192">#1192</a>)</li>
<li><a
href="a795a97d65"><code>a795a97</code></a>
Clean up android extensions in tests (<a
href="https://redirect.github.com/vanniktech/gradle-maven-publish-plugin/issues/1190">#1190</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vanniktech/gradle-maven-publish-plugin/compare/0.34.0...0.35.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps org.jlleitschuh.gradle.ktlint from 13.1.0 to 14.0.1.
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Add `McpClient.ipynb` example notebook demonstrating MCP client
## Motivation and Context
Provide more examples
## How Has This Been Tested?
Run Kotlin Notebook locally
## Breaking Changes
No
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Add tests with new schema types
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
## How Has This Been Tested?
The repository currently contains duplicated tests:
- tests using the new schema
- tests using the old schema for compatibility checks. they will be
removed once the deprecation level is raised
## Breaking Changes
No
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Testing
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
---------
Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
- add the warning message to `ExperimentalMcpApi` annotation
- change level from error to warning
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [x] I have added or updated documentation as needed
- Introduced `@ExperimentalMcpApi` annotation to mark experimental APIs.
- Added `mcpClient` function for initializing and connecting MCP
clients.
- Modified tests to utilize the new `mcpClient` function.
- Refactored variable naming in transport tests for improved
readability.
## Motivation and Context
To improve the creation of the MCP Client experience.
## How Has This Been Tested?
Integration test updated
## Breaking Changes
No
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
- Updated integration tests to include assertions for `meta` being
`null` in the `listTools`, `listResources`, `readResource`, and
`callTool` results.
- Renamed test cases in `SseServerIntegrationTest` for clarity.
- Added (deprecated) synthetic constructors for various request
parameter classes.
- Enhanced naming conventions and structure in integration test cases.
- Replaced `throw Error(...)` with `error(...)` for cleaner error
handling.
## Motivation and Context
To verify backwards-compatibility after schema change
## How Has This Been Tested?
CI, integration tests, regression tests (samples)
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Test update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
# Refactor and enhance prompt handling logic and tests, update Kotest
version and modularize `AbstractTransport`
- Added more post-conditions/scenarios to ServerPromptsTest
- Extracted `AbstractTransport` to a dedicated file for modularity.
- Improved Protocol connection state validation: When disconnected, the
Protocol will throw `IllegalStateException` instead of `Error`.
- Minor Kotlin fixes and suppressions to improve code quality.
## Motivation and Context
Improve test scenarios in ServerPromptsTest
## How Has This Been Tested?
Integration tests updated
## Breaking Changes
When disconnected, the Protocol will throw `IllegalStateException`
instead of `Error`.
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Test update
- [x] Refactoring
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Update JVM target to 11 in Gradle build configuration
## Motivation and Context
Drop the obsolete JVM 1.8 target to keep up with up-to-date tools, like
Kotest
## How Has This Been Tested?
CI
## Breaking Changes
The minimum JVM version is now 11
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Add properties for types of new schema
## Motivation and Context
Added getters to simplify access to properties in request and
notification types.
## How Has This Been Tested?
All tests pass
## Breaking Changes
None
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
<!-- Provide a brief summary of your changes -->
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
Add ids for server sessions (auto generated when created)
Support methods proxying from server to server session by id
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Implement the last version of the mcp schema and complete restructuring
of the mcp schema implementation from a monolithic `types.kt` file into
separate files.
- #158
- #185
- #353
- #298
- #248
## Motivation and Context
The previous implementation of the mcp schema was outdated and contained
several issues. In addition, it stored all mcp types in a single large
file, which made maintenance and further development more difficult
## How Has This Been Tested?
All tests passed
## Breaking Changes
Yes. The new types are now located in a separate package. Additionally,
many types have new parameters and modified constructors
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
to adopt the new structure:
**Before:**
```kotlin
import io.modelcontextprotocol.kotlin.sdk.InitializeRequest
import io.modelcontextprotocol.kotlin.sdk.Resource
```
**After:**
```kotlin
import io.modelcontextprotocol.kotlin.sdk.types.InitializeRequest
import io.modelcontextprotocol.kotlin.sdk.types.Resource
```
Bump version to 0.8.0-SNAPSHOT and update `mcp-kotlin` dependency to
0.7.7 in samples
## How Has This Been Tested?
Regression
## Breaking Changes
No
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
## Motivation and Context
Prepare to release 0.7.7
## How Has This Been Tested?
Regression
## Breaking Changes
No
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Replace `Instant` with `String` for `lastModified` in `Annotations`
## Motivation and Context
To fix serialization/kotlin library version conflicts
## How Has This Been Tested?
Unit test
## Breaking Changes
Yes
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
## Motivation and Context
Prepare for the subsequent development iteration
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Dependency update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Upgrade Gradle
## Motivation and Context
KTLO (🪔 To keep the lights on)
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Build tools update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Update Kotlin-MCP-Server with STDIO support, logging & CORS
### Summary
- Added support for STDIO transport mode (default behavior).
- Configured CORS and migrated SSE server to Ktor's Netty engine.
- Redirected logs to `./build/stdout.log` and updated log levels.
- New `TestEnvironment` setup for integration testing.
- Enhanced documentation with examples for server execution and MCP
Inspector usage.
- Introduced shadow JAR plugin for building runnable artifacts.
### Motivation and Context
Improves server versatility and developer experience by enabling STDIO
and refining setup.
## How Has This Been Tested?
Unit tests, tested locally (see README.md in sample)
**NB! sse plain configuration is not working at the moment**
## Breaking Changes
No
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
<!-- Provide a brief summary of your changes -->
## Motivation and Context
The recently released openAI [Apps SDK
](https://developers.openai.com/apps-sdk/reference/#_meta-fields-the-client-provides)adds
a '__meta_' field on the Tool Descriptor. This would be in addition to
it being available on Messages. It remains optional and defaults to an
empty json object, following existing conventions.
## How Has This Been Tested?
Unit tests for serialization added
## Breaking Changes
N/A
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [X] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [X] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [X] My code follows the repository's style guidelines
- [X] New and existing tests pass locally
- [X] I have added appropriate error handling
- [X] I have added or updated documentation as needed
## Additional context
https://developers.openai.com/apps-sdkhttps://developers.openai.com/apps-sdk/reference/#_meta-fields-the-client-provides
---------
Co-authored-by: Pavel Gorgulov <devcrocod@gmail.com>
Add test for sse server
TODO: Add tests for the other protocols
<!-- Provide a brief summary of your changes -->
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Tests
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
## Motivation and Context
- 📦 Unifies Ktor library versioning by introducing the Ktor BOM
dependency.
- ✅ Re-enable build of MCP Server Sample
## How Has This Been Tested?
Regression tests
## Breaking Changes
No
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Build configuration update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Fix#293
Also fixed a bug with initialization: properties must be declared before
the init block; otherwise, the initialization order is violated and an
NPE will occur in the init block.
## Motivation and Context
After initialization, MCP clients send a `logging/setLevel` request if
the logging capability is enabled. This request was previously not
handled, leading to an error that blocked the use of the MCP server in
the inspector and other clients.
## How Has This Been Tested?
Added integration test
## Breaking Changes
None
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Bumps org.openapi.generator from 7.16.0 to 7.17.0.
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Split ServerTest per feature test classes
<!-- Provide a brief summary of your changes -->
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
## Motivation and Context
Sessions were added to the `sessions` list on connect but never removed
when closed, causing a memory leak in long-running server processes. The
closed sessions and their closures would accumulate indefinitely,
preventing garbage collection.
## Breaking Changes
None
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
- Rename `connect` to `createSession` in `Server.kt `to make naming more
clear
- Add block to configure build to `Server.kt`
- Move sse test to jvm to be able to run, small test refactoring
- Introduce base integration test for sse server / client
* Fix debug logging in the `createMessage` method to include message
count, `maxTokens`, `temperature`, and presence of a system prompt;
* Fix debug logging in the `createElicitation` method to show message
length and schema property count
* Added trace logging
## Motivation and Context
The full message was printed in the debug logs, which could contain
confidential information
## Breaking Changes
None
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
- updated the sdk version in all examples
- fixed `kotlin-mcp-server` example (#331)
## Motivation and Context
Removed the WASM example, as it duplicates the JVM example and only adds
unnecessary complexity
## How Has This Been Tested?
Locally
## Breaking Changes
No
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [x] I have added or updated documentation as needed
With Ktor 3.2.3, tests don’t work correctly with wasm, so the websocket
tests were moved to the jvm target as the most important one
## How Has This Been Tested?
local
## Breaking Changes
None
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Refactoring
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
improve git repository
## Breaking Changes
no
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
Update server-side tool error handling to return `CallToolResult` with
`isError: true` instead of throwing protocol-level exceptions,
conforming with MCP specification
## Motivation and Context
[The MCP specification
states](https://modelcontextprotocol.io/specification/2025-06-18/schema#calltoolresult):
> Any errors that originate from the tool SHOULD be reported inside the
result object, with isError set to true, not as an MCP protocol-level
error response. Otherwise, the LLM would not be able
to see that an error occurred and self-correct.
This PR updates the kotlin sdk to match this behavior
## How Has This Been Tested?
All tests pass successfully with the new behavior
## Breaking Changes
None
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
The TypeScript SDK was recently updated
[#1044](https://github.com/modelcontextprotocol/typescript-sdk/pull/1044)
to conform with the MCP specification regarding tool error handling.
That’s why we got exceptions in the integration tests
Introduce `AGENTS.md` documenting repository layout, build/test
commands, API compatibility checks, code conventions, logging/error
handling guidance, and the PR/review checklist for the Kotlin MCP SDK.
- ktor 3.2.3
- Tests are ignored because Ktor 3.2.3 has issues with wasm in the test
environment. However, it works outside of tests. All other targets pass
these tests successfully.
## Motivation and Context
compatibility with older versions of Ktor
kotlin: 2.2.10 -> 2.2.21
ktor: 3.3.0 -> 3.3.1
dokka: 2.0.0 -> 2.1.0
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
simplification
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Refactoring
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
Exclude samples from composite gradle build
## Motivation and Context
Circular dependency in composite build. Let's make samples more
independent
## How Has This Been Tested?
CI
## Breaking Changes
No
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Build configuration update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
## Changes
- Updated `DecimalFormatSymbols` to use period as decimal separator
(Locale.US)
- Fixed test expectations in `testComplexInputSchemaTool`:
- `formattedResult`: `"11,000"` → `"11.000"`
- `tags`: Added actual test values `["test", "calculator",
"integration"]`
- Fixed test expectations in `testComplexNestedSchema`:
- `formattedResult`: `"0,00"` → `"0.00"`
## Motivation
1. **Standard Decimal Notation**: Using a comma as a decimal separator
could be confusing as it's commonly used for thousands separators in
many locales. Standardizing on the period (`.`) follows international
conventions and makes the output clearer.
2. **Test Data Correction**: During the Validate PR workflow for #289,
discovered that the `tags` array in the `expectedContent` variable of
`testComplexInputSchemaTool()` was incorrectly set to an empty array,
which didn't match the actual input values being tested.
---------
Co-authored-by: MAERYO <maeryo@hanwha.com>
According to
https://modelcontextprotocol.io/specification/2025-06-18/basic/index#meta,
the _meta parameter should be passable when calling tools. While the
CallToolRequest class (in types.kt) currently includes _meta in its
definition, SDK users cannot actually input _meta when invoking the
callTool method.
This Pull Request adds a metadata parameter to the CallTool method and
includes functionality to convert various data formats without loss.
Additionally, to encourage the use of valid Key name formats as defined
by the protocol, validation for prefixes has been implemented.
---------
Co-authored-by: MAERYO <maeryo@hanwha.com>
Co-authored-by: devcrocod <devcrocod@gmail.com>
# #302 Update samples build workflow
- Introduce workflow to build samples independently from the main
project
- Keep building samples against the current snapshot version of the SDK.
Update composite build configuration.
- Temporarily disable "samples/kotlin-mcp-server": the multiplatform
project is broken. **It doesn't compile for me even on the main
branch**. Not working with [MCP
Instepcor](https://modelcontextprotocol.io/docs/tools/inspector),
because CORS is not configured. Deserves a separate PR to fix.
## Motivation and Context
Samples should be independently buildable
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Build improvement
- [x] Tests
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Bumps
[org.jetbrains.kotlinx.kover](https://github.com/Kotlin/kotlinx-kover)
from 0.9.2 to 0.9.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Kotlin/kotlinx-kover/releases">org.jetbrains.kotlinx.kover's
releases</a>.</em></p>
<blockquote>
<h2>0.9.3</h2>
<h2>Kover Gradle Plugin</h2>
<h3>Bugfixes</h3>
<ul>
<li><a
href="https://redirect.github.com/Kotlin/kotlinx-kover/issues/759"><code>[#759](https://github.com/Kotlin/kotlinx-kover/issues/759)</code></a>
Fixed locating of host tests for the multiplatform Android library</li>
<li><a
href="https://redirect.github.com/Kotlin/kotlinx-kover/issues/766"><code>[#766](https://github.com/Kotlin/kotlinx-kover/issues/766)</code></a>
Fixed support of KSP plugin</li>
</ul>
<h3>Build features</h3>
<ul>
<li>Upgraded Gradle version to <code>9.1.0</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Kotlin/kotlinx-kover/blob/main/CHANGELOG.md">org.jetbrains.kotlinx.kover's
changelog</a>.</em></p>
<blockquote>
<h1>0.9.3 / 2025-10-16</h1>
<h2>Kover Gradle Plugin</h2>
<h3>Bugfixes</h3>
<ul>
<li><a
href="https://redirect.github.com/Kotlin/kotlinx-kover/issues/759"><code>[#759](https://github.com/Kotlin/kotlinx-kover/issues/759)</code></a>
Fixed locating of host tests for the multiplatform Android library</li>
<li><a
href="https://redirect.github.com/Kotlin/kotlinx-kover/issues/766"><code>[#766](https://github.com/Kotlin/kotlinx-kover/issues/766)</code></a>
Fixed support of KSP plugin</li>
</ul>
<h3>Build features</h3>
<ul>
<li>Upgraded Gradle version to <code>9.1.0</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f182e705ea"><code>f182e70</code></a>
Release 0.9.3</li>
<li><a
href="fd9521e902"><code>fd9521e</code></a>
Fixed support of KSP plugin</li>
<li><a
href="90c305a678"><code>90c305a</code></a>
Fixed the locating of host tests for the multiplatform android
library</li>
<li><a
href="5c7951b2cb"><code>5c7951b</code></a>
Upgraded Gradle to 9.1.0</li>
<li>See full diff in <a
href="https://github.com/Kotlin/kotlinx-kover/compare/v0.9.2...v0.9.3">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[com.anthropic:anthropic-java](https://github.com/anthropics/anthropic-sdk-java)
from 2.7.0 to 2.9.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/releases">com.anthropic:anthropic-java's
releases</a>.</em></p>
<blockquote>
<h2>v2.9.0</h2>
<h2>2.9.0 (2025-10-15)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.8.1...v2.9.0">v2.8.1...v2.9.0</a></p>
<h3>Features</h3>
<ul>
<li>add more helper methods to instantiate union objects (<a
href="3e3a4bbab3">3e3a4bb</a>)</li>
<li><strong>api:</strong> manual updates (<a
href="d2170e9bf1">d2170e9</a>)</li>
</ul>
<h2>v2.8.1</h2>
<h2>2.8.1 (2025-09-29)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.8.0...v2.8.1">v2.8.0...v2.8.1</a></p>
<h3>Chores</h3>
<ul>
<li><strong>client:</strong> add context-management-2025-06-27 beta
header (<a
href="b6c56838bc">b6c5683</a>)</li>
<li><strong>client:</strong> add
model-context-window-exceeded-2025-08-26 beta header (<a
href="d9d0493fc7">d9d0493</a>)</li>
</ul>
<h2>v2.8.0</h2>
<h2>2.8.0 (2025-09-29)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.7.0...v2.8.0">v2.7.0...v2.8.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> adds support for Claude Sonnet 4.5 and context
management features (<a
href="c286ab85ad">c286ab8</a>)</li>
<li><strong>client:</strong> expose sleeper option (<a
href="ca9ce4f05f">ca9ce4f</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>client:</strong> deserialization of empty objects (<a
href="af93581b6a">af93581</a>)</li>
<li><strong>client:</strong> ensure single timer is created per client
(<a
href="ca9ce4f05f">ca9ce4f</a>)</li>
<li><strong>client:</strong> incorrect <code>getPackageVersion</code>
impl (<a
href="a8b170b391">a8b170b</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>improve formatter performance (<a
href="c57630b565">c57630b</a>)</li>
<li>improve formatter performance (<a
href="100e6adc25">100e6ad</a>)</li>
<li><strong>internal:</strong> change some comment formatting (<a
href="f725d582e1">f725d58</a>)</li>
<li><strong>internal:</strong> codegen related update (<a
href="14a3c9cc52">14a3c9c</a>)</li>
<li><strong>internal:</strong> codegen related update (<a
href="e6fddb403c">e6fddb4</a>)</li>
<li><strong>internal:</strong> fix tests (<a
href="cc05673958">cc05673</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/blob/main/CHANGELOG.md">com.anthropic:anthropic-java's
changelog</a>.</em></p>
<blockquote>
<h2>2.9.0 (2025-10-15)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.8.1...v2.9.0">v2.8.1...v2.9.0</a></p>
<h3>Features</h3>
<ul>
<li>add more helper methods to instantiate union objects (<a
href="3e3a4bbab3">3e3a4bb</a>)</li>
<li><strong>api:</strong> manual updates (<a
href="d2170e9bf1">d2170e9</a>)</li>
</ul>
<h2>2.8.1 (2025-09-29)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.8.0...v2.8.1">v2.8.0...v2.8.1</a></p>
<h3>Chores</h3>
<ul>
<li><strong>client:</strong> add context-management-2025-06-27 beta
header (<a
href="b6c56838bc">b6c5683</a>)</li>
<li><strong>client:</strong> add
model-context-window-exceeded-2025-08-26 beta header (<a
href="d9d0493fc7">d9d0493</a>)</li>
</ul>
<h2>2.8.0 (2025-09-29)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.7.0...v2.8.0">v2.7.0...v2.8.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> adds support for Claude Sonnet 4.5 and context
management features (<a
href="c286ab85ad">c286ab8</a>)</li>
<li><strong>client:</strong> expose sleeper option (<a
href="ca9ce4f05f">ca9ce4f</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>client:</strong> deserialization of empty objects (<a
href="af93581b6a">af93581</a>)</li>
<li><strong>client:</strong> ensure single timer is created per client
(<a
href="ca9ce4f05f">ca9ce4f</a>)</li>
<li><strong>client:</strong> incorrect <code>getPackageVersion</code>
impl (<a
href="a8b170b391">a8b170b</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>improve formatter performance (<a
href="c57630b565">c57630b</a>)</li>
<li>improve formatter performance (<a
href="100e6adc25">100e6ad</a>)</li>
<li><strong>internal:</strong> change some comment formatting (<a
href="f725d582e1">f725d58</a>)</li>
<li><strong>internal:</strong> codegen related update (<a
href="14a3c9cc52">14a3c9c</a>)</li>
<li><strong>internal:</strong> codegen related update (<a
href="e6fddb403c">e6fddb4</a>)</li>
<li><strong>internal:</strong> fix tests (<a
href="cc05673958">cc05673</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f93cdaa53f"><code>f93cdaa</code></a>
release: 2.9.0</li>
<li><a
href="3a37cfc3a8"><code>3a37cfc</code></a>
feat(api): manual updates</li>
<li><a
href="d581f2aad2"><code>d581f2a</code></a>
feat: add more helper methods to instantiate union objects</li>
<li><a
href="5a0a815be5"><code>5a0a815</code></a>
codegen metadata</li>
<li><a
href="4f816b21fb"><code>4f816b2</code></a>
release: 2.8.1</li>
<li><a
href="dec4738aea"><code>dec4738</code></a>
chore(client): add model-context-window-exceeded-2025-08-26 beta
header</li>
<li><a
href="1479b2c5bf"><code>1479b2c</code></a>
chore(client): add context-management-2025-06-27 beta header</li>
<li><a
href="ef6a706593"><code>ef6a706</code></a>
release: 2.8.0</li>
<li><a
href="618bb972e8"><code>618bb97</code></a>
feat(api): adds support for Claude Sonnet 4.5 and context management
features</li>
<li><a
href="1c6be51c97"><code>1c6be51</code></a>
fix(client): deserialization of empty objects</li>
<li>Additional commits viewable in <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.7.0...v2.9.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#302 Add GitHub workflow to validate samples
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Update badges in README and set version to 0.7.4-SNAPSHOT
Not updating the version of sample projects because of #302
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Release 0.7.3
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Add `StreamableHttpClientTest` with test infrastructure setup and
dependencies
<!-- Provide a brief summary of your changes -->
## Motivation and Context
To test Streaming HTTP Transport
## How Has This Been Tested?
Integration test added
## Breaking Changes
No, only tests
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Tests
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Bumps org.openapi.generator from 7.15.0 to 7.16.0.
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action)
from 3 to 4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.30.8</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.30.8 - 10 Oct 2025</h2>
<p>No user facing changes.</p>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.30.8/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
<h2>v3.30.7</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.30.7 - 06 Oct 2025</h2>
<p>No user facing changes.</p>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.30.7/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
<h2>v3.30.6</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.30.6 - 02 Oct 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.23.2. <a
href="https://redirect.github.com/github/codeql-action/pull/3168">#3168</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.30.6/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
<h2>v3.30.5</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.30.5 - 26 Sep 2025</h2>
<ul>
<li>We fixed a bug that was introduced in <code>3.30.4</code> with
<code>upload-sarif</code> which resulted in files without a
<code>.sarif</code> extension not getting uploaded. <a
href="https://redirect.github.com/github/codeql-action/pull/3160">#3160</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.30.5/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
<h2>v3.30.4</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.30.4 - 25 Sep 2025</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h2>3.29.4 - 23 Jul 2025</h2>
<p>No user facing changes.</p>
<h2>3.29.3 - 21 Jul 2025</h2>
<p>No user facing changes.</p>
<h2>3.29.2 - 30 Jun 2025</h2>
<ul>
<li>Experimental: When the <code>quality-queries</code> input for the
<code>init</code> action is provided with an argument, separate
<code>.quality.sarif</code> files are produced and uploaded for each
language with the results of the specified queries. Do not use this in
production as it is part of an internal experiment and subject to change
at any time. <a
href="https://redirect.github.com/github/codeql-action/pull/2935">#2935</a></li>
</ul>
<h2>3.29.1 - 27 Jun 2025</h2>
<ul>
<li>Fix bug in PR analysis where user-provided <code>include</code>
query filter fails to exclude non-included queries. <a
href="https://redirect.github.com/github/codeql-action/pull/2938">#2938</a></li>
<li>Update default CodeQL bundle version to 2.22.1. <a
href="https://redirect.github.com/github/codeql-action/pull/2950">#2950</a></li>
</ul>
<h2>3.29.0 - 11 Jun 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.22.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2925">#2925</a></li>
<li>Bump minimum CodeQL bundle version to 2.16.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2912">#2912</a></li>
</ul>
<h2>3.28.21 - 28 July 2025</h2>
<p>No user facing changes.</p>
<h2>3.28.20 - 21 July 2025</h2>
<ul>
<li>Remove support for combining SARIF files from a single upload for
GHES 3.18, see <a
href="https://github.blog/changelog/2024-05-06-code-scanning-will-stop-combining-runs-from-a-single-upload/">the
changelog post</a>. <a
href="https://redirect.github.com/github/codeql-action/pull/2959">#2959</a></li>
</ul>
<h2>3.28.19 - 03 Jun 2025</h2>
<ul>
<li>The CodeQL Action no longer includes its own copy of the extractor
for the <code>actions</code> language, which is currently in public
preview.
The <code>actions</code> extractor has been included in the CodeQL CLI
since v2.20.6. If your workflow has enabled the <code>actions</code>
language <em>and</em> you have pinned
your <code>tools:</code> property to a specific version of the CodeQL
CLI earlier than v2.20.6, you will need to update to at least CodeQL
v2.20.6 or disable
<code>actions</code> analysis.</li>
<li>Update default CodeQL bundle version to 2.21.4. <a
href="https://redirect.github.com/github/codeql-action/pull/2910">#2910</a></li>
</ul>
<h2>3.28.18 - 16 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.3. <a
href="https://redirect.github.com/github/codeql-action/pull/2893">#2893</a></li>
<li>Skip validating SARIF produced by CodeQL for improved performance.
<a
href="https://redirect.github.com/github/codeql-action/pull/2894">#2894</a></li>
<li>The number of threads and amount of RAM used by CodeQL can now be
set via the <code>CODEQL_THREADS</code> and <code>CODEQL_RAM</code>
runner environment variables. If set, these environment variables
override the <code>threads</code> and <code>ram</code> inputs
respectively. <a
href="https://redirect.github.com/github/codeql-action/pull/2891">#2891</a></li>
</ul>
<h2>3.28.17 - 02 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.2. <a
href="https://redirect.github.com/github/codeql-action/pull/2872">#2872</a></li>
</ul>
<h2>3.28.16 - 23 Apr 2025</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a841c540b7"><code>a841c54</code></a>
Scratch <code>uploadSpecifiedFiles</code> tests, make
<code>uploadPayload</code> tests instead</li>
<li><a
href="aeb12f6eaa"><code>aeb12f6</code></a>
Merge branch 'main' into redsun82/skip-sarif-upload-tests</li>
<li><a
href="6fd4ceb7bb"><code>6fd4ceb</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/3189">#3189</a>
from github/henrymercer/download-codeql-rate-limit</li>
<li><a
href="196a3e577b"><code>196a3e5</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/3188">#3188</a>
from github/mbg/telemetry/partial-config</li>
<li><a
href="98abb870dc"><code>98abb87</code></a>
Add configuration error for rate limited CodeQL download</li>
<li><a
href="bdd2cdf891"><code>bdd2cdf</code></a>
Also include <code>language</code> in error status report for
<code>start-proxy</code>, if available</li>
<li><a
href="fb148789ab"><code>fb14878</code></a>
Include <code>languages</code> in <code>start-proxy</code>
telemetry</li>
<li><a
href="2ff418f28a"><code>2ff418f</code></a>
Parse <code>language</code> before calling
<code>getCredentials</code></li>
<li>See full diff in <a
href="https://github.com/github/codeql-action/compare/v3...v4">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Changes to kotlin-sdk-core/build.gradle.kts to be compatible with gradle
9.x.x
## Motivation and Context
If including this project into a composite build that uses gradle 9.x.x,
recent changes to the build.gradle.kts are not compatible.
## How Has This Been Tested?
The build still works with gradle 8.x
## Breaking Changes
N/A
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Don't bind the sample server to `0.0.0.0` by default as that exposes the
server to anyone else on the local network.
If anyone were to use these samples as staring points to build larger
services, those servers would thus expose developers to attack
immediately upon launch.
I'd prefer if we avoided that 😆
## Motivation and Context
🔒 Security
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
I haven't checked out the code locally to verify it works. All the
editing to the code was done on GitHub.com
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
No.
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
<!-- Provide a brief summary of your changes -->
## Motivation and Context
The
[schema](cca15204f6/schema/2025-03-26/schema.ts (L192))
for the InitializeResult contains an optional 'instructions' string
## Additional context
The instructions string is included in the schema for for version
"2025-03-26"
The instructions in the Server class are given as a provider function
with the result of the provider propagated to the underlying
ServerSession. As the ServerSession change is meant to allow for a
'Singleton scoped' server class, this provides the ability to
dynamically modify the instructions at the server level but have them be
immutable per session.
This also refactors the `serverInfo` and `instructions` properties to be
protected. This `Server` class is open and meant to be overridden, there
is no harm in having these immutable properties available to subclasses.
This adds the serverInstructions to the client as returned from the
InitializeResult. This is used to verify the response in the Server
tests.
One may run it manually to generate classes from JSON Schema
## Motivation and Context
Most of the generated classes could not be used in the current API
today.
On the other hand, it is useful to be able to generate such classes to
simplify manual API synchronization. So, Gradle plugin configuration is
preserved, but detached from the build pipeline.
- Add OpenAPI Generator to build system to automatically generate MCP
protocol data classes from the official schema.
- Configure code quality tools to exclude generated files
- Add deserialization test
## Motivation and Context
Writing classes by hand is error-prone, when json schema exists. See
#185,
Also, autogenerating model classes ensures the SDK is in sync with the
protocol and can quickly catch up with its changes (see #218)
## How Has This Been Tested?
Regression tests
## Breaking Changes
No
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Introduce a `ServerSession` to manage multiple connections to the mcp
server. `Protocall` logic of the `Server` was moved to `ServerSession`,
while MCP resources logic remained in `Server`
## Motivation and Context
1. Fix the multiple connection issues reported for SSE transport
2. Avoid server duplications during configurations: currently every connection
creates a session, but the server stays single
## How Has This Been Tested?
Added `SseIntegrationTest` and `WebSocketIntegrationTest` integration
tests to check connection with single and multiple clients
## Breaking Changes
This change caused several depreciations:
1. The `Server` -> `Protocol` inheritance (which caused single
connection issue) should be removed in future releases, now, all the
methods inherited from `Protocall` marked as `Deprecated` with a
`Warning`
2. Websocket Ktor server initialization changes in order not to create
server instance per connection
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
---------
Co-authored-by: devcrocod <devcrocod@gmail.com>
Change the property name to search for `GPG_SECRET_KEY`
## Motivation and Context
enable signing publications
## Breaking Changes
no
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
Bump version to 0.7.2-alpha2
## Motivation and Context
New prerelease version with signing fixes
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
Add a new function for signing publications
## Motivation and Context
In the [latest release
build](https://github.com/modelcontextprotocol/kotlin-sdk/actions/runs/17830036899/job/50692417727),
the artifact signing tasks were not included
## Breaking Changes
no
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Motivation and Context
- test new publish plugin
- add package.kt to kotlin-sdk umbrella module to resolve klib
generation errors during Maven publishing
## Breaking Changes
no
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
#152
## Motivation and Context
To simplify publishing, use the [recommended
plugin](https://www.jetbrains.com/help/kotlin-multiplatform-dev/multiplatform-publish-libraries.html#set-up-the-publishing-plugin)
## Breaking Changes
no
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
This PR adds integration test coverage by covering the Stdio transport.
The tests were refactored to accommodate Stdio without adding
duplication.
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Test improvement
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
---------
Co-authored-by: Pavel Gorgulov <devcrocod@gmail.com>
#196 Update build configuration and workflows for enhanced local
publishing and sample builds
- Add `mavenLocal()` to repository configuration in sample projects.
- Update dependencies to distinguish between `mcp.kotlin.client` and
`mcp.kotlin.server`.
- Include `JAVA_OPTS` for optimized memory usage in GitHub workflow.
- Enhance build workflow to include local publishing and build steps for
sample projects.
- Add package-lock.json for Kotlin JS/WASM Store
- Switch to SNAPSHOT versions by default
## Motivation and Context
#196 Samples MUST be validated as part of the build
## How Has This Been Tested?
```sh
./gradlew :kotlin-sdk-core:publishToMavenLocal
./gradlew :kotlin-sdk-client:publishToMavenLocal
./gradlew :kotlin-sdk-server:publishToMavenLocal
( cd ./samples/kotlin-mcp-client && ./../../gradlew clean build )
( cd ./samples/kotlin-mcp-server && ./../../gradlew clean build )
( cd ./samples/weather-stdio-server && ./../../gradlew clean build )
```
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
fix#272
## How Has This Been Tested?
Locally
## Breaking Changes
No
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
Bump version to 0.7.1
## How Has This Been Tested?
Locally
## Breaking Changes
-
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [x] I have added or updated documentation as needed
Remove `docs:clean` and `docs:dokkaGenerate` from apidocs workflow
## Motivation and Context
fix build and deploy docs to github pages
## Breaking Changes
no
## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## #252 Add module documentation and enhance Dokka configuration
## How Has This Been Tested?
`./gradlew :docs:dokkaGenerate`
## Changes
- Add workflow to build and publish API documentation with Dokka
- Introduce `.github/workflows/apidocs.yaml` to build and deploy API
docs on `main` and release events.
- Configure Gradle for Dokka builds and update project dependencies.
- Include `:docs` module in project settings.
- Introduce `Module.md` for `kotlin-sdk-server`, `kotlin-sdk-client`,
and `kotlin-sdk-core` modules.
- Update `.gitignore` to include `.idea/icon.png` and add placeholder
icon files
- Remove outdated documentation HTML files
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
---------
Co-authored-by: devcrocod <devcrocod@gmail.com>
Bumps `kotlin` from 2.2.0 to 2.2.10.
Updates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.2.0 to 2.2.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin:kotlin-gradle-plugin's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.2.10</h2>
<h2>Changelog</h2>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79276"><code>KT-79276</code></a>
Dexing fails with "Cannot read field X because <!-- raw HTML
omitted --> is null" with 2.2.0</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79442"><code>KT-79442</code></a>
"Multiple annotations of type
kotlin.coroutines.jvm.internal.DebugMetadata": 2.2.0-Beta1
generates broken code with JVM default suspend methods in
interfaces</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78815"><code>KT-78815</code></a>
<code>Symbol not found: __ZNSt3__117bad_function_callD1Ev</code> error
on iOS 15.5 simulator in Xcode 16.3 after update to 2.2.0-Beta2</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78501"><code>KT-78501</code></a>
K2: Missing [ABSTRACT_SUPER_CALL] diagnostics for delegated interface
method leads to AssertionError: isCompiledToJvmDefault during IR
lowering</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
IR lowering failed / Unexpected null argument for composable call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76477"><code>KT-76477</code></a>
Kotlin/Native: fix compiler performance reporting in sources->klib
and klibs->binary</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78736"><code>KT-78736</code></a>
Missing [NOT_YET_SUPPORTED_IN_INLINE] diagnostics because of incorrect
context update</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77685"><code>KT-77685</code></a>
"IllegalArgumentException: Sequence contains more than one matching
element"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76365"><code>KT-76365</code></a>
K2: Missing ABSTRACT_SUPER_CALL</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78352"><code>KT-78352</code></a>
False-positive IDENTITY_SENSITIVE_OPERATIONS_WITH_VALUE_TYPE when
comparing with equality operator (==)</li>
</ul>
<h3>Compose compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
Ensure that default transform affects functions entered through a
call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
Fix visibility for default wrappers of protected methods</li>
<li><a
href="https://issuetracker.google.com/issues/408492167"><code>b/408492167</code></a>
Emit parameter names in Compose source information</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79050"><code>KT-79050</code></a>
KJS / IC: "Unexpected body of primary constructor for processing
irClass"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79089"><code>KT-79089</code></a>
KJS: Could not load reporter / Cannot find module 'mocha' when running
jsNode tests</li>
</ul>
<h3>Native</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79075"><code>KT-79075</code></a>
Stuck on Kotlin_getSourceInfo_core_symbolication</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76178"><code>KT-76178</code></a>
LLVM Update: symbol '__ZnwmSt19__type_descriptor_t' missing</li>
</ul>
<h3>Native. Runtime. Memory</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78925"><code>KT-78925</code></a>
Crash SIGABRT on Apple Watch after updating Kotlin to 2.2.0</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77445"><code>KT-77445</code></a>
UNRESOLVED_REFERENCE when importing classes from kotlin-stdlib</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78263"><code>KT-78263</code></a>
java.lang.NoClassDefFoundError: Could not initialize class
com.intellij.psi.impl.PsiSubstitutorImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78318"><code>KT-78318</code></a>
Unresolved reference when compiling kotlin/JS project on fresh
master</li>
</ul>
<h3>Tools. Compiler Plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
"AssertionError: SyntheticAccessorLowering should not attempt to
modify other files" when calling protected open composable with
default argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78038"><code>KT-78038</code></a>
Make jvm-abi-gen compiler plugin output classloader-friendly</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77023"><code>KT-77023</code></a>
Support creating KotlinJvmAndroidCompilation in KotlinBaseApiPlugin</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin:kotlin-gradle-plugin's
changelog</a>.</em></p>
<blockquote>
<h2>2.2.10</h2>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79276"><code>KT-79276</code></a>
Dexing fails with "Cannot read field X because <!-- raw HTML
omitted --> is null" with 2.2.0</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79442"><code>KT-79442</code></a>
"Multiple annotations of type
kotlin.coroutines.jvm.internal.DebugMetadata": 2.2.0-Beta1
generates broken code with JVM default suspend methods in
interfaces</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78815"><code>KT-78815</code></a>
<code>Symbol not found: __ZNSt3__117bad_function_callD1Ev</code> error
on iOS 15.5 simulator in Xcode 16.3 after update to 2.2.0-Beta2</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78501"><code>KT-78501</code></a>
K2: Missing [ABSTRACT_SUPER_CALL] diagnostics for delegated interface
method leads to AssertionError: isCompiledToJvmDefault during IR
lowering</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
IR lowering failed / Unexpected null argument for composable call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76477"><code>KT-76477</code></a>
Kotlin/Native: fix compiler performance reporting in sources->klib
and klibs->binary</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78736"><code>KT-78736</code></a>
Missing [NOT_YET_SUPPORTED_IN_INLINE] diagnostics because of incorrect
context update</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77685"><code>KT-77685</code></a>
"IllegalArgumentException: Sequence contains more than one matching
element"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76365"><code>KT-76365</code></a>
K2: Missing ABSTRACT_SUPER_CALL</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78352"><code>KT-78352</code></a>
False-positive IDENTITY_SENSITIVE_OPERATIONS_WITH_VALUE_TYPE when
comparing with equality operator (==)</li>
</ul>
<h3>Compose compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
Ensure that default transform affects functions entered through a
call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
Fix visibility for default wrappers of protected methods</li>
<li><a
href="https://issuetracker.google.com/issues/408492167"><code>b/408492167</code></a>
Emit parameter names in Compose source information</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79050"><code>KT-79050</code></a>
KJS / IC: "Unexpected body of primary constructor for processing
irClass"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79089"><code>KT-79089</code></a>
KJS: Could not load reporter / Cannot find module 'mocha' when running
jsNode tests</li>
</ul>
<h3>Native</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79075"><code>KT-79075</code></a>
Stuck on Kotlin_getSourceInfo_core_symbolication</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76178"><code>KT-76178</code></a>
LLVM Update: symbol '__ZnwmSt19__type_descriptor_t' missing</li>
</ul>
<h3>Native. Runtime. Memory</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78925"><code>KT-78925</code></a>
Crash SIGABRT on Apple Watch after updating Kotlin to 2.2.0</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77445"><code>KT-77445</code></a>
UNRESOLVED_REFERENCE when importing classes from kotlin-stdlib</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78263"><code>KT-78263</code></a>
java.lang.NoClassDefFoundError: Could not initialize class
com.intellij.psi.impl.PsiSubstitutorImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78318"><code>KT-78318</code></a>
Unresolved reference when compiling kotlin/JS project on fresh
master</li>
</ul>
<h3>Tools. Compiler Plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
"AssertionError: SyntheticAccessorLowering should not attempt to
modify other files" when calling protected open composable with
default argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78038"><code>KT-78038</code></a>
Make jvm-abi-gen compiler plugin output classloader-friendly</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77023"><code>KT-77023</code></a>
Support creating KotlinJvmAndroidCompilation in KotlinBaseApiPlugin</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c448af19de"><code>c448af1</code></a>
Add ChangeLog for 2.2.10-RC2</li>
<li><a
href="4925857c81"><code>4925857</code></a>
[JS] Upgrade NPM dependencies</li>
<li><a
href="0e3327f52a"><code>0e3327f</code></a>
[K/N] Use coreSymbolicationImageListType=all_loaded by default</li>
<li><a
href="21231f535f"><code>21231f5</code></a>
[JVM] avoid unnecessary spills of some dead locals</li>
<li><a
href="4297254394"><code>4297254</code></a>
[gradle] Fix missing mocha reporter module</li>
<li><a
href="95639d5e5b"><code>95639d5</code></a>
[JVM] Fix detection of $DefaultImpl bridges</li>
<li><a
href="09a5926c90"><code>09a5926</code></a>
FIR: allow to resolve some Java classes with
<code>@kotlin.Metadata</code></li>
<li><a
href="4bf855d50d"><code>4bf855d</code></a>
[K/JS] Fix incremental compilation for overridden external
properties</li>
<li><a
href="69050bd292"><code>69050bd</code></a>
[K/N][llvm] Update LLVM build to incorporate the recent changes</li>
<li><a
href="accbf36dfd"><code>accbf36</code></a>
Add ChangeLog for 2.2.10-RC</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.2.10">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin:kotlin-serialization` from 2.2.0 to 2.2.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin:kotlin-serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.2.10</h2>
<h2>Changelog</h2>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79276"><code>KT-79276</code></a>
Dexing fails with "Cannot read field X because <!-- raw HTML
omitted --> is null" with 2.2.0</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79442"><code>KT-79442</code></a>
"Multiple annotations of type
kotlin.coroutines.jvm.internal.DebugMetadata": 2.2.0-Beta1
generates broken code with JVM default suspend methods in
interfaces</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78815"><code>KT-78815</code></a>
<code>Symbol not found: __ZNSt3__117bad_function_callD1Ev</code> error
on iOS 15.5 simulator in Xcode 16.3 after update to 2.2.0-Beta2</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78501"><code>KT-78501</code></a>
K2: Missing [ABSTRACT_SUPER_CALL] diagnostics for delegated interface
method leads to AssertionError: isCompiledToJvmDefault during IR
lowering</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
IR lowering failed / Unexpected null argument for composable call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76477"><code>KT-76477</code></a>
Kotlin/Native: fix compiler performance reporting in sources->klib
and klibs->binary</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78736"><code>KT-78736</code></a>
Missing [NOT_YET_SUPPORTED_IN_INLINE] diagnostics because of incorrect
context update</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77685"><code>KT-77685</code></a>
"IllegalArgumentException: Sequence contains more than one matching
element"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76365"><code>KT-76365</code></a>
K2: Missing ABSTRACT_SUPER_CALL</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78352"><code>KT-78352</code></a>
False-positive IDENTITY_SENSITIVE_OPERATIONS_WITH_VALUE_TYPE when
comparing with equality operator (==)</li>
</ul>
<h3>Compose compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
Ensure that default transform affects functions entered through a
call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
Fix visibility for default wrappers of protected methods</li>
<li><a
href="https://issuetracker.google.com/issues/408492167"><code>b/408492167</code></a>
Emit parameter names in Compose source information</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79050"><code>KT-79050</code></a>
KJS / IC: "Unexpected body of primary constructor for processing
irClass"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79089"><code>KT-79089</code></a>
KJS: Could not load reporter / Cannot find module 'mocha' when running
jsNode tests</li>
</ul>
<h3>Native</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79075"><code>KT-79075</code></a>
Stuck on Kotlin_getSourceInfo_core_symbolication</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76178"><code>KT-76178</code></a>
LLVM Update: symbol '__ZnwmSt19__type_descriptor_t' missing</li>
</ul>
<h3>Native. Runtime. Memory</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78925"><code>KT-78925</code></a>
Crash SIGABRT on Apple Watch after updating Kotlin to 2.2.0</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77445"><code>KT-77445</code></a>
UNRESOLVED_REFERENCE when importing classes from kotlin-stdlib</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78263"><code>KT-78263</code></a>
java.lang.NoClassDefFoundError: Could not initialize class
com.intellij.psi.impl.PsiSubstitutorImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78318"><code>KT-78318</code></a>
Unresolved reference when compiling kotlin/JS project on fresh
master</li>
</ul>
<h3>Tools. Compiler Plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
"AssertionError: SyntheticAccessorLowering should not attempt to
modify other files" when calling protected open composable with
default argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78038"><code>KT-78038</code></a>
Make jvm-abi-gen compiler plugin output classloader-friendly</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77023"><code>KT-77023</code></a>
Support creating KotlinJvmAndroidCompilation in KotlinBaseApiPlugin</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin:kotlin-serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.2.10</h2>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79276"><code>KT-79276</code></a>
Dexing fails with "Cannot read field X because <!-- raw HTML
omitted --> is null" with 2.2.0</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79442"><code>KT-79442</code></a>
"Multiple annotations of type
kotlin.coroutines.jvm.internal.DebugMetadata": 2.2.0-Beta1
generates broken code with JVM default suspend methods in
interfaces</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78815"><code>KT-78815</code></a>
<code>Symbol not found: __ZNSt3__117bad_function_callD1Ev</code> error
on iOS 15.5 simulator in Xcode 16.3 after update to 2.2.0-Beta2</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78501"><code>KT-78501</code></a>
K2: Missing [ABSTRACT_SUPER_CALL] diagnostics for delegated interface
method leads to AssertionError: isCompiledToJvmDefault during IR
lowering</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
IR lowering failed / Unexpected null argument for composable call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76477"><code>KT-76477</code></a>
Kotlin/Native: fix compiler performance reporting in sources->klib
and klibs->binary</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78736"><code>KT-78736</code></a>
Missing [NOT_YET_SUPPORTED_IN_INLINE] diagnostics because of incorrect
context update</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77685"><code>KT-77685</code></a>
"IllegalArgumentException: Sequence contains more than one matching
element"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76365"><code>KT-76365</code></a>
K2: Missing ABSTRACT_SUPER_CALL</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78352"><code>KT-78352</code></a>
False-positive IDENTITY_SENSITIVE_OPERATIONS_WITH_VALUE_TYPE when
comparing with equality operator (==)</li>
</ul>
<h3>Compose compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
Ensure that default transform affects functions entered through a
call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
Fix visibility for default wrappers of protected methods</li>
<li><a
href="https://issuetracker.google.com/issues/408492167"><code>b/408492167</code></a>
Emit parameter names in Compose source information</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79050"><code>KT-79050</code></a>
KJS / IC: "Unexpected body of primary constructor for processing
irClass"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79089"><code>KT-79089</code></a>
KJS: Could not load reporter / Cannot find module 'mocha' when running
jsNode tests</li>
</ul>
<h3>Native</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79075"><code>KT-79075</code></a>
Stuck on Kotlin_getSourceInfo_core_symbolication</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76178"><code>KT-76178</code></a>
LLVM Update: symbol '__ZnwmSt19__type_descriptor_t' missing</li>
</ul>
<h3>Native. Runtime. Memory</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78925"><code>KT-78925</code></a>
Crash SIGABRT on Apple Watch after updating Kotlin to 2.2.0</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77445"><code>KT-77445</code></a>
UNRESOLVED_REFERENCE when importing classes from kotlin-stdlib</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78263"><code>KT-78263</code></a>
java.lang.NoClassDefFoundError: Could not initialize class
com.intellij.psi.impl.PsiSubstitutorImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78318"><code>KT-78318</code></a>
Unresolved reference when compiling kotlin/JS project on fresh
master</li>
</ul>
<h3>Tools. Compiler Plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
"AssertionError: SyntheticAccessorLowering should not attempt to
modify other files" when calling protected open composable with
default argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78038"><code>KT-78038</code></a>
Make jvm-abi-gen compiler plugin output classloader-friendly</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77023"><code>KT-77023</code></a>
Support creating KotlinJvmAndroidCompilation in KotlinBaseApiPlugin</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c448af19de"><code>c448af1</code></a>
Add ChangeLog for 2.2.10-RC2</li>
<li><a
href="4925857c81"><code>4925857</code></a>
[JS] Upgrade NPM dependencies</li>
<li><a
href="0e3327f52a"><code>0e3327f</code></a>
[K/N] Use coreSymbolicationImageListType=all_loaded by default</li>
<li><a
href="21231f535f"><code>21231f5</code></a>
[JVM] avoid unnecessary spills of some dead locals</li>
<li><a
href="4297254394"><code>4297254</code></a>
[gradle] Fix missing mocha reporter module</li>
<li><a
href="95639d5e5b"><code>95639d5</code></a>
[JVM] Fix detection of $DefaultImpl bridges</li>
<li><a
href="09a5926c90"><code>09a5926</code></a>
FIR: allow to resolve some Java classes with
<code>@kotlin.Metadata</code></li>
<li><a
href="4bf855d50d"><code>4bf855d</code></a>
[K/JS] Fix incremental compilation for overridden external
properties</li>
<li><a
href="69050bd292"><code>69050bd</code></a>
[K/N][llvm] Update LLVM build to incorporate the recent changes</li>
<li><a
href="accbf36dfd"><code>accbf36</code></a>
Add ChangeLog for 2.2.10-RC</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.2.10">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.jvm` from 2.2.0 to 2.2.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.2.10</h2>
<h2>Changelog</h2>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79276"><code>KT-79276</code></a>
Dexing fails with "Cannot read field X because <!-- raw HTML
omitted --> is null" with 2.2.0</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79442"><code>KT-79442</code></a>
"Multiple annotations of type
kotlin.coroutines.jvm.internal.DebugMetadata": 2.2.0-Beta1
generates broken code with JVM default suspend methods in
interfaces</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78815"><code>KT-78815</code></a>
<code>Symbol not found: __ZNSt3__117bad_function_callD1Ev</code> error
on iOS 15.5 simulator in Xcode 16.3 after update to 2.2.0-Beta2</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78501"><code>KT-78501</code></a>
K2: Missing [ABSTRACT_SUPER_CALL] diagnostics for delegated interface
method leads to AssertionError: isCompiledToJvmDefault during IR
lowering</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
IR lowering failed / Unexpected null argument for composable call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76477"><code>KT-76477</code></a>
Kotlin/Native: fix compiler performance reporting in sources->klib
and klibs->binary</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78736"><code>KT-78736</code></a>
Missing [NOT_YET_SUPPORTED_IN_INLINE] diagnostics because of incorrect
context update</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77685"><code>KT-77685</code></a>
"IllegalArgumentException: Sequence contains more than one matching
element"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76365"><code>KT-76365</code></a>
K2: Missing ABSTRACT_SUPER_CALL</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78352"><code>KT-78352</code></a>
False-positive IDENTITY_SENSITIVE_OPERATIONS_WITH_VALUE_TYPE when
comparing with equality operator (==)</li>
</ul>
<h3>Compose compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
Ensure that default transform affects functions entered through a
call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
Fix visibility for default wrappers of protected methods</li>
<li><a
href="https://issuetracker.google.com/issues/408492167"><code>b/408492167</code></a>
Emit parameter names in Compose source information</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79050"><code>KT-79050</code></a>
KJS / IC: "Unexpected body of primary constructor for processing
irClass"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79089"><code>KT-79089</code></a>
KJS: Could not load reporter / Cannot find module 'mocha' when running
jsNode tests</li>
</ul>
<h3>Native</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79075"><code>KT-79075</code></a>
Stuck on Kotlin_getSourceInfo_core_symbolication</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76178"><code>KT-76178</code></a>
LLVM Update: symbol '__ZnwmSt19__type_descriptor_t' missing</li>
</ul>
<h3>Native. Runtime. Memory</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78925"><code>KT-78925</code></a>
Crash SIGABRT on Apple Watch after updating Kotlin to 2.2.0</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77445"><code>KT-77445</code></a>
UNRESOLVED_REFERENCE when importing classes from kotlin-stdlib</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78263"><code>KT-78263</code></a>
java.lang.NoClassDefFoundError: Could not initialize class
com.intellij.psi.impl.PsiSubstitutorImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78318"><code>KT-78318</code></a>
Unresolved reference when compiling kotlin/JS project on fresh
master</li>
</ul>
<h3>Tools. Compiler Plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
"AssertionError: SyntheticAccessorLowering should not attempt to
modify other files" when calling protected open composable with
default argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78038"><code>KT-78038</code></a>
Make jvm-abi-gen compiler plugin output classloader-friendly</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77023"><code>KT-77023</code></a>
Support creating KotlinJvmAndroidCompilation in KotlinBaseApiPlugin</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's
changelog</a>.</em></p>
<blockquote>
<h2>2.2.10</h2>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79276"><code>KT-79276</code></a>
Dexing fails with "Cannot read field X because <!-- raw HTML
omitted --> is null" with 2.2.0</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79442"><code>KT-79442</code></a>
"Multiple annotations of type
kotlin.coroutines.jvm.internal.DebugMetadata": 2.2.0-Beta1
generates broken code with JVM default suspend methods in
interfaces</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78815"><code>KT-78815</code></a>
<code>Symbol not found: __ZNSt3__117bad_function_callD1Ev</code> error
on iOS 15.5 simulator in Xcode 16.3 after update to 2.2.0-Beta2</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78501"><code>KT-78501</code></a>
K2: Missing [ABSTRACT_SUPER_CALL] diagnostics for delegated interface
method leads to AssertionError: isCompiledToJvmDefault during IR
lowering</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
IR lowering failed / Unexpected null argument for composable call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76477"><code>KT-76477</code></a>
Kotlin/Native: fix compiler performance reporting in sources->klib
and klibs->binary</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78736"><code>KT-78736</code></a>
Missing [NOT_YET_SUPPORTED_IN_INLINE] diagnostics because of incorrect
context update</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77685"><code>KT-77685</code></a>
"IllegalArgumentException: Sequence contains more than one matching
element"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76365"><code>KT-76365</code></a>
K2: Missing ABSTRACT_SUPER_CALL</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78352"><code>KT-78352</code></a>
False-positive IDENTITY_SENSITIVE_OPERATIONS_WITH_VALUE_TYPE when
comparing with equality operator (==)</li>
</ul>
<h3>Compose compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
Ensure that default transform affects functions entered through a
call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
Fix visibility for default wrappers of protected methods</li>
<li><a
href="https://issuetracker.google.com/issues/408492167"><code>b/408492167</code></a>
Emit parameter names in Compose source information</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79050"><code>KT-79050</code></a>
KJS / IC: "Unexpected body of primary constructor for processing
irClass"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79089"><code>KT-79089</code></a>
KJS: Could not load reporter / Cannot find module 'mocha' when running
jsNode tests</li>
</ul>
<h3>Native</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79075"><code>KT-79075</code></a>
Stuck on Kotlin_getSourceInfo_core_symbolication</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76178"><code>KT-76178</code></a>
LLVM Update: symbol '__ZnwmSt19__type_descriptor_t' missing</li>
</ul>
<h3>Native. Runtime. Memory</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78925"><code>KT-78925</code></a>
Crash SIGABRT on Apple Watch after updating Kotlin to 2.2.0</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77445"><code>KT-77445</code></a>
UNRESOLVED_REFERENCE when importing classes from kotlin-stdlib</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78263"><code>KT-78263</code></a>
java.lang.NoClassDefFoundError: Could not initialize class
com.intellij.psi.impl.PsiSubstitutorImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78318"><code>KT-78318</code></a>
Unresolved reference when compiling kotlin/JS project on fresh
master</li>
</ul>
<h3>Tools. Compiler Plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
"AssertionError: SyntheticAccessorLowering should not attempt to
modify other files" when calling protected open composable with
default argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78038"><code>KT-78038</code></a>
Make jvm-abi-gen compiler plugin output classloader-friendly</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77023"><code>KT-77023</code></a>
Support creating KotlinJvmAndroidCompilation in KotlinBaseApiPlugin</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c448af19de"><code>c448af1</code></a>
Add ChangeLog for 2.2.10-RC2</li>
<li><a
href="4925857c81"><code>4925857</code></a>
[JS] Upgrade NPM dependencies</li>
<li><a
href="0e3327f52a"><code>0e3327f</code></a>
[K/N] Use coreSymbolicationImageListType=all_loaded by default</li>
<li><a
href="21231f535f"><code>21231f5</code></a>
[JVM] avoid unnecessary spills of some dead locals</li>
<li><a
href="4297254394"><code>4297254</code></a>
[gradle] Fix missing mocha reporter module</li>
<li><a
href="95639d5e5b"><code>95639d5</code></a>
[JVM] Fix detection of $DefaultImpl bridges</li>
<li><a
href="09a5926c90"><code>09a5926</code></a>
FIR: allow to resolve some Java classes with
<code>@kotlin.Metadata</code></li>
<li><a
href="4bf855d50d"><code>4bf855d</code></a>
[K/JS] Fix incremental compilation for overridden external
properties</li>
<li><a
href="69050bd292"><code>69050bd</code></a>
[K/N][llvm] Update LLVM build to incorporate the recent changes</li>
<li><a
href="accbf36dfd"><code>accbf36</code></a>
Add ChangeLog for 2.2.10-RC</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.2.10">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.multiplatform` from 2.2.0 to 2.2.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.multiplatform's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.2.10</h2>
<h2>Changelog</h2>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79276"><code>KT-79276</code></a>
Dexing fails with "Cannot read field X because <!-- raw HTML
omitted --> is null" with 2.2.0</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79442"><code>KT-79442</code></a>
"Multiple annotations of type
kotlin.coroutines.jvm.internal.DebugMetadata": 2.2.0-Beta1
generates broken code with JVM default suspend methods in
interfaces</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78815"><code>KT-78815</code></a>
<code>Symbol not found: __ZNSt3__117bad_function_callD1Ev</code> error
on iOS 15.5 simulator in Xcode 16.3 after update to 2.2.0-Beta2</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78501"><code>KT-78501</code></a>
K2: Missing [ABSTRACT_SUPER_CALL] diagnostics for delegated interface
method leads to AssertionError: isCompiledToJvmDefault during IR
lowering</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
IR lowering failed / Unexpected null argument for composable call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76477"><code>KT-76477</code></a>
Kotlin/Native: fix compiler performance reporting in sources->klib
and klibs->binary</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78736"><code>KT-78736</code></a>
Missing [NOT_YET_SUPPORTED_IN_INLINE] diagnostics because of incorrect
context update</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77685"><code>KT-77685</code></a>
"IllegalArgumentException: Sequence contains more than one matching
element"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76365"><code>KT-76365</code></a>
K2: Missing ABSTRACT_SUPER_CALL</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78352"><code>KT-78352</code></a>
False-positive IDENTITY_SENSITIVE_OPERATIONS_WITH_VALUE_TYPE when
comparing with equality operator (==)</li>
</ul>
<h3>Compose compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
Ensure that default transform affects functions entered through a
call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
Fix visibility for default wrappers of protected methods</li>
<li><a
href="https://issuetracker.google.com/issues/408492167"><code>b/408492167</code></a>
Emit parameter names in Compose source information</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79050"><code>KT-79050</code></a>
KJS / IC: "Unexpected body of primary constructor for processing
irClass"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79089"><code>KT-79089</code></a>
KJS: Could not load reporter / Cannot find module 'mocha' when running
jsNode tests</li>
</ul>
<h3>Native</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79075"><code>KT-79075</code></a>
Stuck on Kotlin_getSourceInfo_core_symbolication</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76178"><code>KT-76178</code></a>
LLVM Update: symbol '__ZnwmSt19__type_descriptor_t' missing</li>
</ul>
<h3>Native. Runtime. Memory</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78925"><code>KT-78925</code></a>
Crash SIGABRT on Apple Watch after updating Kotlin to 2.2.0</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77445"><code>KT-77445</code></a>
UNRESOLVED_REFERENCE when importing classes from kotlin-stdlib</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78263"><code>KT-78263</code></a>
java.lang.NoClassDefFoundError: Could not initialize class
com.intellij.psi.impl.PsiSubstitutorImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78318"><code>KT-78318</code></a>
Unresolved reference when compiling kotlin/JS project on fresh
master</li>
</ul>
<h3>Tools. Compiler Plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
"AssertionError: SyntheticAccessorLowering should not attempt to
modify other files" when calling protected open composable with
default argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78038"><code>KT-78038</code></a>
Make jvm-abi-gen compiler plugin output classloader-friendly</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77023"><code>KT-77023</code></a>
Support creating KotlinJvmAndroidCompilation in KotlinBaseApiPlugin</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.multiplatform's
changelog</a>.</em></p>
<blockquote>
<h2>2.2.10</h2>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79276"><code>KT-79276</code></a>
Dexing fails with "Cannot read field X because <!-- raw HTML
omitted --> is null" with 2.2.0</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79442"><code>KT-79442</code></a>
"Multiple annotations of type
kotlin.coroutines.jvm.internal.DebugMetadata": 2.2.0-Beta1
generates broken code with JVM default suspend methods in
interfaces</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78815"><code>KT-78815</code></a>
<code>Symbol not found: __ZNSt3__117bad_function_callD1Ev</code> error
on iOS 15.5 simulator in Xcode 16.3 after update to 2.2.0-Beta2</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78501"><code>KT-78501</code></a>
K2: Missing [ABSTRACT_SUPER_CALL] diagnostics for delegated interface
method leads to AssertionError: isCompiledToJvmDefault during IR
lowering</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
IR lowering failed / Unexpected null argument for composable call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76477"><code>KT-76477</code></a>
Kotlin/Native: fix compiler performance reporting in sources->klib
and klibs->binary</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78736"><code>KT-78736</code></a>
Missing [NOT_YET_SUPPORTED_IN_INLINE] diagnostics because of incorrect
context update</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77685"><code>KT-77685</code></a>
"IllegalArgumentException: Sequence contains more than one matching
element"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76365"><code>KT-76365</code></a>
K2: Missing ABSTRACT_SUPER_CALL</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78352"><code>KT-78352</code></a>
False-positive IDENTITY_SENSITIVE_OPERATIONS_WITH_VALUE_TYPE when
comparing with equality operator (==)</li>
</ul>
<h3>Compose compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
Ensure that default transform affects functions entered through a
call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
Fix visibility for default wrappers of protected methods</li>
<li><a
href="https://issuetracker.google.com/issues/408492167"><code>b/408492167</code></a>
Emit parameter names in Compose source information</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79050"><code>KT-79050</code></a>
KJS / IC: "Unexpected body of primary constructor for processing
irClass"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79089"><code>KT-79089</code></a>
KJS: Could not load reporter / Cannot find module 'mocha' when running
jsNode tests</li>
</ul>
<h3>Native</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79075"><code>KT-79075</code></a>
Stuck on Kotlin_getSourceInfo_core_symbolication</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76178"><code>KT-76178</code></a>
LLVM Update: symbol '__ZnwmSt19__type_descriptor_t' missing</li>
</ul>
<h3>Native. Runtime. Memory</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78925"><code>KT-78925</code></a>
Crash SIGABRT on Apple Watch after updating Kotlin to 2.2.0</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77445"><code>KT-77445</code></a>
UNRESOLVED_REFERENCE when importing classes from kotlin-stdlib</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78263"><code>KT-78263</code></a>
java.lang.NoClassDefFoundError: Could not initialize class
com.intellij.psi.impl.PsiSubstitutorImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78318"><code>KT-78318</code></a>
Unresolved reference when compiling kotlin/JS project on fresh
master</li>
</ul>
<h3>Tools. Compiler Plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
"AssertionError: SyntheticAccessorLowering should not attempt to
modify other files" when calling protected open composable with
default argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78038"><code>KT-78038</code></a>
Make jvm-abi-gen compiler plugin output classloader-friendly</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77023"><code>KT-77023</code></a>
Support creating KotlinJvmAndroidCompilation in KotlinBaseApiPlugin</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c448af19de"><code>c448af1</code></a>
Add ChangeLog for 2.2.10-RC2</li>
<li><a
href="4925857c81"><code>4925857</code></a>
[JS] Upgrade NPM dependencies</li>
<li><a
href="0e3327f52a"><code>0e3327f</code></a>
[K/N] Use coreSymbolicationImageListType=all_loaded by default</li>
<li><a
href="21231f535f"><code>21231f5</code></a>
[JVM] avoid unnecessary spills of some dead locals</li>
<li><a
href="4297254394"><code>4297254</code></a>
[gradle] Fix missing mocha reporter module</li>
<li><a
href="95639d5e5b"><code>95639d5</code></a>
[JVM] Fix detection of $DefaultImpl bridges</li>
<li><a
href="09a5926c90"><code>09a5926</code></a>
FIR: allow to resolve some Java classes with
<code>@kotlin.Metadata</code></li>
<li><a
href="4bf855d50d"><code>4bf855d</code></a>
[K/JS] Fix incremental compilation for overridden external
properties</li>
<li><a
href="69050bd292"><code>69050bd</code></a>
[K/N][llvm] Update LLVM build to incorporate the recent changes</li>
<li><a
href="accbf36dfd"><code>accbf36</code></a>
Add ChangeLog for 2.2.10-RC</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.2.10">compare
view</a></li>
</ul>
</details>
<br />
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.2.0 to 2.2.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.plugin.serialization's
releases</a>.</em></p>
<blockquote>
<h2>Kotlin 2.2.10</h2>
<h2>Changelog</h2>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79276"><code>KT-79276</code></a>
Dexing fails with "Cannot read field X because <!-- raw HTML
omitted --> is null" with 2.2.0</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79442"><code>KT-79442</code></a>
"Multiple annotations of type
kotlin.coroutines.jvm.internal.DebugMetadata": 2.2.0-Beta1
generates broken code with JVM default suspend methods in
interfaces</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78815"><code>KT-78815</code></a>
<code>Symbol not found: __ZNSt3__117bad_function_callD1Ev</code> error
on iOS 15.5 simulator in Xcode 16.3 after update to 2.2.0-Beta2</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78501"><code>KT-78501</code></a>
K2: Missing [ABSTRACT_SUPER_CALL] diagnostics for delegated interface
method leads to AssertionError: isCompiledToJvmDefault during IR
lowering</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
IR lowering failed / Unexpected null argument for composable call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76477"><code>KT-76477</code></a>
Kotlin/Native: fix compiler performance reporting in sources->klib
and klibs->binary</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78736"><code>KT-78736</code></a>
Missing [NOT_YET_SUPPORTED_IN_INLINE] diagnostics because of incorrect
context update</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77685"><code>KT-77685</code></a>
"IllegalArgumentException: Sequence contains more than one matching
element"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76365"><code>KT-76365</code></a>
K2: Missing ABSTRACT_SUPER_CALL</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78352"><code>KT-78352</code></a>
False-positive IDENTITY_SENSITIVE_OPERATIONS_WITH_VALUE_TYPE when
comparing with equality operator (==)</li>
</ul>
<h3>Compose compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
Ensure that default transform affects functions entered through a
call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
Fix visibility for default wrappers of protected methods</li>
<li><a
href="https://issuetracker.google.com/issues/408492167"><code>b/408492167</code></a>
Emit parameter names in Compose source information</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79050"><code>KT-79050</code></a>
KJS / IC: "Unexpected body of primary constructor for processing
irClass"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79089"><code>KT-79089</code></a>
KJS: Could not load reporter / Cannot find module 'mocha' when running
jsNode tests</li>
</ul>
<h3>Native</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79075"><code>KT-79075</code></a>
Stuck on Kotlin_getSourceInfo_core_symbolication</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76178"><code>KT-76178</code></a>
LLVM Update: symbol '__ZnwmSt19__type_descriptor_t' missing</li>
</ul>
<h3>Native. Runtime. Memory</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78925"><code>KT-78925</code></a>
Crash SIGABRT on Apple Watch after updating Kotlin to 2.2.0</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77445"><code>KT-77445</code></a>
UNRESOLVED_REFERENCE when importing classes from kotlin-stdlib</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78263"><code>KT-78263</code></a>
java.lang.NoClassDefFoundError: Could not initialize class
com.intellij.psi.impl.PsiSubstitutorImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78318"><code>KT-78318</code></a>
Unresolved reference when compiling kotlin/JS project on fresh
master</li>
</ul>
<h3>Tools. Compiler Plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
"AssertionError: SyntheticAccessorLowering should not attempt to
modify other files" when calling protected open composable with
default argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78038"><code>KT-78038</code></a>
Make jvm-abi-gen compiler plugin output classloader-friendly</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77023"><code>KT-77023</code></a>
Support creating KotlinJvmAndroidCompilation in KotlinBaseApiPlugin</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization's
changelog</a>.</em></p>
<blockquote>
<h2>2.2.10</h2>
<h3>Compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79276"><code>KT-79276</code></a>
Dexing fails with "Cannot read field X because <!-- raw HTML
omitted --> is null" with 2.2.0</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79442"><code>KT-79442</code></a>
"Multiple annotations of type
kotlin.coroutines.jvm.internal.DebugMetadata": 2.2.0-Beta1
generates broken code with JVM default suspend methods in
interfaces</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78815"><code>KT-78815</code></a>
<code>Symbol not found: __ZNSt3__117bad_function_callD1Ev</code> error
on iOS 15.5 simulator in Xcode 16.3 after update to 2.2.0-Beta2</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78501"><code>KT-78501</code></a>
K2: Missing [ABSTRACT_SUPER_CALL] diagnostics for delegated interface
method leads to AssertionError: isCompiledToJvmDefault during IR
lowering</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
IR lowering failed / Unexpected null argument for composable call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76477"><code>KT-76477</code></a>
Kotlin/Native: fix compiler performance reporting in sources->klib
and klibs->binary</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78736"><code>KT-78736</code></a>
Missing [NOT_YET_SUPPORTED_IN_INLINE] diagnostics because of incorrect
context update</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77685"><code>KT-77685</code></a>
"IllegalArgumentException: Sequence contains more than one matching
element"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76365"><code>KT-76365</code></a>
K2: Missing ABSTRACT_SUPER_CALL</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78352"><code>KT-78352</code></a>
False-positive IDENTITY_SENSITIVE_OPERATIONS_WITH_VALUE_TYPE when
comparing with equality operator (==)</li>
</ul>
<h3>Compose compiler</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78479"><code>KT-78479</code></a>
Ensure that default transform affects functions entered through a
call</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
Fix visibility for default wrappers of protected methods</li>
<li><a
href="https://issuetracker.google.com/issues/408492167"><code>b/408492167</code></a>
Emit parameter names in Compose source information</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79050"><code>KT-79050</code></a>
KJS / IC: "Unexpected body of primary constructor for processing
irClass"</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79089"><code>KT-79089</code></a>
KJS: Could not load reporter / Cannot find module 'mocha' when running
jsNode tests</li>
</ul>
<h3>Native</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-79075"><code>KT-79075</code></a>
Stuck on Kotlin_getSourceInfo_core_symbolication</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-76178"><code>KT-76178</code></a>
LLVM Update: symbol '__ZnwmSt19__type_descriptor_t' missing</li>
</ul>
<h3>Native. Runtime. Memory</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78925"><code>KT-78925</code></a>
Crash SIGABRT on Apple Watch after updating Kotlin to 2.2.0</li>
</ul>
<h3>Tools. CLI</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77445"><code>KT-77445</code></a>
UNRESOLVED_REFERENCE when importing classes from kotlin-stdlib</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78263"><code>KT-78263</code></a>
java.lang.NoClassDefFoundError: Could not initialize class
com.intellij.psi.impl.PsiSubstitutorImpl</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78318"><code>KT-78318</code></a>
Unresolved reference when compiling kotlin/JS project on fresh
master</li>
</ul>
<h3>Tools. Compiler Plugins</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78490"><code>KT-78490</code></a>
"AssertionError: SyntheticAccessorLowering should not attempt to
modify other files" when calling protected open composable with
default argument</li>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-78038"><code>KT-78038</code></a>
Make jvm-abi-gen compiler plugin output classloader-friendly</li>
</ul>
<h3>Tools. Gradle</h3>
<ul>
<li><a
href="https://youtrack.jetbrains.com/issue/KT-77023"><code>KT-77023</code></a>
Support creating KotlinJvmAndroidCompilation in KotlinBaseApiPlugin</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c448af19de"><code>c448af1</code></a>
Add ChangeLog for 2.2.10-RC2</li>
<li><a
href="4925857c81"><code>4925857</code></a>
[JS] Upgrade NPM dependencies</li>
<li><a
href="0e3327f52a"><code>0e3327f</code></a>
[K/N] Use coreSymbolicationImageListType=all_loaded by default</li>
<li><a
href="21231f535f"><code>21231f5</code></a>
[JVM] avoid unnecessary spills of some dead locals</li>
<li><a
href="4297254394"><code>4297254</code></a>
[gradle] Fix missing mocha reporter module</li>
<li><a
href="95639d5e5b"><code>95639d5</code></a>
[JVM] Fix detection of $DefaultImpl bridges</li>
<li><a
href="09a5926c90"><code>09a5926</code></a>
FIR: allow to resolve some Java classes with
<code>@kotlin.Metadata</code></li>
<li><a
href="4bf855d50d"><code>4bf855d</code></a>
[K/JS] Fix incremental compilation for overridden external
properties</li>
<li><a
href="69050bd292"><code>69050bd</code></a>
[K/N][llvm] Update LLVM build to incorporate the recent changes</li>
<li><a
href="accbf36dfd"><code>accbf36</code></a>
Add ChangeLog for 2.2.10-RC</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.2.10">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: devcrocod <devcrocod@gmail.com>
Re-throw exceptions in `StreamableHttpClientTransport` so `Protocol`
doesn't hang indefinitely.
## Motivation and Context
Fixes the issue described in #226
## How Has This Been Tested?
I've verified that my test case reproduces the error without my fix, and
verified with breakpoints that the hang occurred where I described it.
## Breaking Changes
None
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
I am unsure about the dispatcher I used for the real-time timeout here.
I could not get the test to work otherwise, as `kotlinx.coroutines.test`
was always tripping my timeout, with or without the fix. This is
seemingly unrelated to the test case though, as removing my timeout
results in the [timeout in
Protocol](6bae9874c0/kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/shared/Protocol.kt (L454))
being tripped, even though that's not the point of the indefinite hang.
- drop unnecessary publish workflow for client and server
- remove unworkable steps in the main publishing workflow
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
<!-- Provide a brief summary of your changes -->
## Motivation and Context
Align release workflow with the normal build workflow
## Changes
Update Gradle publish workflow: switch to `published` event, use
`mac…os-latest-xlarge`, and configure `JAVA_OPTS`.
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] CI update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Bumps
[com.anthropic:anthropic-java](https://github.com/anthropics/anthropic-sdk-java)
from 0.8.0 to 2.6.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/releases">com.anthropic:anthropic-java's
releases</a>.</em></p>
<blockquote>
<h2>v2.6.0</h2>
<h2>2.6.0 (2025-09-02)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.5.1...v2.6.0">v2.5.1...v2.6.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>client:</strong> adds support for code-execution-2025-08-26
tool (<a
href="da4c57b12d">da4c57b</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>client:</strong> ensure correct binary content type (<a
href="197fdd5433">197fdd5</a>)</li>
<li>fix casing issue (<a
href="c2c50097e4">c2c5009</a>)</li>
<li>update singularization rules (<a
href="afec494c85">afec494</a>)</li>
</ul>
<h3>Performance Improvements</h3>
<ul>
<li><strong>internal:</strong> make formatting faster (<a
href="7c36322f9f">7c36322</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>api:</strong> remove unsupported endpoints (<a
href="d9b7be334b">d9b7be3</a>)</li>
<li><strong>ci:</strong> add build job (<a
href="061df8e702">061df8e</a>)</li>
<li><strong>ci:</strong> reduce log noise (<a
href="b91d7779f1">b91d777</a>)</li>
<li><strong>client:</strong> refactor closing / shutdown (<a
href="f0c796d723">f0c796d</a>)</li>
<li><strong>client:</strong> rename parameter (<a
href="197fdd5433">197fdd5</a>)</li>
<li><strong>internal:</strong> dynamically determine included projects
(<a
href="93db169c6c">93db169</a>)</li>
<li><strong>internal:</strong> run formatter (<a
href="06cd69ff9d">06cd69f</a>)</li>
<li><strong>internal:</strong> support passing arguments to test script
(<a
href="8528c63f15">8528c63</a>)</li>
<li><strong>internal:</strong> support running formatters directly (<a
href="e0de72e934">e0de72e</a>)</li>
<li>remove memory upper bound from publishing step (<a
href="cb2ac3b70f">cb2ac3b</a>)</li>
<li><strong>tests:</strong> setup cache creation in MessageAccumulator
test (<a
href="d5de4438df">d5de443</a>)</li>
</ul>
<h2>v2.5.1</h2>
<h2>2.5.1 (2025-08-13)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.5.0...v2.5.1">v2.5.0...v2.5.1</a></p>
<h3>Chores</h3>
<ul>
<li>deprecate older claude-3-5 sonnet models (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/591">#591</a>)
(<a
href="c7c4cc1a08">c7c4cc1</a>)</li>
<li><strong>internal:</strong> format identity methods (<a
href="483576abc4">483576a</a>)</li>
</ul>
<h2>v2.5.0</h2>
<h2>2.5.0 (2025-08-12)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.4.0...v2.5.0">v2.4.0...v2.5.0</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-java/blob/main/CHANGELOG.md">com.anthropic:anthropic-java's
changelog</a>.</em></p>
<blockquote>
<h2>2.6.0 (2025-09-02)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.5.1...v2.6.0">v2.5.1...v2.6.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>client:</strong> adds support for code-execution-2025-08-26
tool (<a
href="da4c57b12d">da4c57b</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>client:</strong> ensure correct binary content type (<a
href="197fdd5433">197fdd5</a>)</li>
<li>fix casing issue (<a
href="c2c50097e4">c2c5009</a>)</li>
<li>update singularization rules (<a
href="afec494c85">afec494</a>)</li>
</ul>
<h3>Performance Improvements</h3>
<ul>
<li><strong>internal:</strong> make formatting faster (<a
href="7c36322f9f">7c36322</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>api:</strong> remove unsupported endpoints (<a
href="d9b7be334b">d9b7be3</a>)</li>
<li><strong>ci:</strong> add build job (<a
href="061df8e702">061df8e</a>)</li>
<li><strong>ci:</strong> reduce log noise (<a
href="b91d7779f1">b91d777</a>)</li>
<li><strong>client:</strong> refactor closing / shutdown (<a
href="f0c796d723">f0c796d</a>)</li>
<li><strong>client:</strong> rename parameter (<a
href="197fdd5433">197fdd5</a>)</li>
<li><strong>internal:</strong> dynamically determine included projects
(<a
href="93db169c6c">93db169</a>)</li>
<li><strong>internal:</strong> run formatter (<a
href="06cd69ff9d">06cd69f</a>)</li>
<li><strong>internal:</strong> support passing arguments to test script
(<a
href="8528c63f15">8528c63</a>)</li>
<li><strong>internal:</strong> support running formatters directly (<a
href="e0de72e934">e0de72e</a>)</li>
<li>remove memory upper bound from publishing step (<a
href="cb2ac3b70f">cb2ac3b</a>)</li>
<li><strong>tests:</strong> setup cache creation in MessageAccumulator
test (<a
href="d5de4438df">d5de443</a>)</li>
</ul>
<h2>2.5.1 (2025-08-13)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.5.0...v2.5.1">v2.5.0...v2.5.1</a></p>
<h3>Chores</h3>
<ul>
<li>deprecate older claude-3-5 sonnet models (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-java/issues/591">#591</a>)
(<a
href="c7c4cc1a08">c7c4cc1</a>)</li>
<li><strong>internal:</strong> format identity methods (<a
href="483576abc4">483576a</a>)</li>
</ul>
<h2>2.5.0 (2025-08-12)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v2.4.0...v2.5.0">v2.4.0...v2.5.0</a></p>
<h3>Features</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="42fce65f72"><code>42fce65</code></a>
release: 2.6.0</li>
<li><a
href="2b10838cc9"><code>2b10838</code></a>
feat(client): adds support for code-execution-2025-08-26 tool</li>
<li><a
href="ab1254a8ab"><code>ab1254a</code></a>
chore(internal): run formatter</li>
<li><a
href="5611d37f31"><code>5611d37</code></a>
chore(tests): setup cache creation in MessageAccumulator test</li>
<li><a
href="95918dc6c0"><code>95918dc</code></a>
codegen metadata</li>
<li><a
href="d4fffce28f"><code>d4fffce</code></a>
codegen metadata</li>
<li><a
href="f02db72ed9"><code>f02db72</code></a>
codegen metadata</li>
<li><a
href="2e258deed3"><code>2e258de</code></a>
codegen metadata</li>
<li><a
href="31c46ff041"><code>31c46ff</code></a>
fix: fix casing issue</li>
<li><a
href="6fdc91169f"><code>6fdc911</code></a>
fix: update singularization rules</li>
<li>Additional commits viewable in <a
href="https://github.com/anthropics/anthropic-sdk-java/compare/v0.8.0...v2.6.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
Bumps org.jlleitschuh.gradle.ktlint from 13.0.0 to 13.1.0.
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
<!-- Provide a brief summary of your changes -->
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
description: "Add KDoc documentation to Kotlin public API. Use whenever the user asks to document Kotlin code, add KDoc, generate API docs, mentions undocumented public declarations, or wants to improve existing documentation. Also trigger when the user says 'add docs', 'document this class/file/module', 'write KDoc', or asks about missing documentation in Kotlin code."
---
# KDoc Generator
Add KDoc to all public Kotlin declarations (classes, interfaces, objects, functions, properties, enums, type aliases, annotations — including `@Deprecated`). Read the implementation, not just the signature, to write accurate descriptions.
## Tag placement
| Where the declaration lives | Tag |
|---|---|
| Primary-ctor `val` / `var` (public, internal, or protected) | `@property` in class KDoc |
| Primary-ctor `name: Type` (no `val`/`var`) | `@param` in class KDoc |
| Primary-ctor `private val` / `private var` | `@param` in class KDoc |
| Body of class/object/interface/sealed interface | inline `/** */` above the declaration |
| Function parameter | `@param` |
| Non-Unit return type | `@return` |
## Style
- Summary: one concise sentence, third-person verb ("Creates", "Returns", "Represents"). Expand to 2-3 sentences only when genuinely complex.
- **Example block**: mandatory for DSL builders (show full receiver-scope usage); add for complex functions or non-obvious extension functions; skip for one-liners and simple getters.
- KDoc links (`[ClassName]`, `[methodName]`) only where they add navigational value.
- Don't write `@throws` or "suspend" notes.
- Rewrite existing KDoc if incomplete or low quality.
## Examples
**Class with mixed primary-constructor parameters:**
````kotlin
/**
* Manages active client sessions and their lifecycle.
*
* @property maxSessions upper limit on concurrent sessions
* @param scope coroutine scope for session lifecycle tasks
* @param secret used internally for session token signing
*/
public class SessionManager(
public val maxSessions: Int, // public val → @property
scope: CoroutineScope, // no val/var → @param
private val secret: ByteArray, // private val → @param
)
````
**Body and interface properties (inline `/** */`):**
````kotlin
/** Represents an entity that includes additional metadata. */
public interface WithMeta {
/** Optional metadata attached to this entity. */
public val meta: JsonObject?
}
public class Connection(public val id: String) {
/** Capabilities negotiated during the handshake, or `null` before initialize completes. */
public val capabilities: ServerCapabilities? get() = ...
Fetch live MCP specification and docs from modelcontextprotocol.io. Training data may be
outdated — default to using this skill when the query touches MCP protocol in any way.
Trigger for: implementing or debugging MCP features (sampling, elicitation, completion, tools,
resources, prompts, transports); SEPs or spec requirements; MCP transport behavior (SSE,
Streamable HTTP, reconnection, retry); authorization/OAuth; conformance test failures;
capability negotiation; message schemas. Skip only for pure Kotlin, build system, or
refactoring tasks with zero MCP protocol dependency. When in doubt, trigger.
user_invocable: true
---
# MCP Documentation Skill
Provides access to the official MCP specification and docs from modelcontextprotocol.io. The spec evolves faster than training data — always consult live documentation for protocol specifics like message schemas, required fields, capability negotiation, error handling, and transport requirements.
## When to use
**Proactively** (without being asked):
- Implementing a feature defined in the MCP spec
- Reviewing code that implements MCP protocol behavior
- Fixing conformance test failures
**On demand** (user asks or invokes `/mcp-docs`):
- Questions about how a specific MCP feature works
- Clarifying spec ambiguities
- Looking up SEPs (Specification Enhancement Proposals)
## How to fetch documentation
### Strategy: MCP tool first, llms.txt fallback
**Step 1 — Try the MCP search tool.** If `search_model_context_protocol` is available, use it:
- **Development**: `docs/develop/...` — building clients/servers
3. Fetch the specific page:
```
WebFetch("<page-url>", "Return the full content of this documentation page")
```
### Version handling
Always use the latest spec version by default. Only use a specific version or draft when the user explicitly requests it (e.g., "check the 2025-03-26 spec" or "what does the draft say").
- High-level concepts and architecture → **Learning** resources
- Use your judgment on query count. A field-level question may need one page; implementing a feature may need 2-3.
## Presenting information
- **Always cite sources.** Include links to spec pages used: `(source: <url>)`
- **Spec over training data** for specific protocol details (schemas, fields, error codes, capabilities). Training data is fine for general MCP concepts.
- **Preserve RFC 2119 language.** The spec uses MUST/SHOULD/MAY — keep this distinction when explaining requirements.
- **Be concise.** Focus on the details relevant to the user's task. Avoid dumping entire spec pages — extract what matters for the specific question or implementation at hand.
# AGENTS: Development Guidelines for AI Contributors
This file provides guidance to AI coding agents working with code in this repository.
## Project
Kotlin Multiplatform SDK for the [Model Context Protocol (MCP)](https://modelcontextprotocol.io). Targets JVM, Native (macOS/Linux/Windows), JS, and Wasm. Implements both MCP clients and servers with pluggable transports.
## Build Commands
```bash
./gradlew ktlintCheck # Lint check
./gradlew detekt # Static analysis
./gradlew ktlintFormat # Auto-fix lint issues
./gradlew apiCheck # Check public API compatibility (run before committing)
./gradlew apiDump # Update API dump after intentional API changes
./gradlew koverLog # Print coverage summary
./gradlew koverXmlReport # Generate XML coverage report
→ Transport (pluggable I/O: stdio, SSE, Streamable HTTP, WebSocket)
```
## Code Conventions
- **Explicit API mode (Strict)**: all public declarations must have explicit visibility modifiers and return types
- **DSL builders**: prefer DSL builder style (lambda blocks) over direct constructors
- **Multi-dollar interpolation**: use `$$"""..."""` for strings containing literal `$` (e.g., JSON with `$ref`, `$defs`)
- **`McpJson` has `explicitNulls = false`**: null properties must be absent from JSON, not `"field": null`
- **Logging**: use `io.github.oshai.kotlinlogging.KotlinLogging`
- **Structured concurrency**: every coroutine must have a bounded scope and lifetime; always re-throw `CancellationException`; never hold `Mutex` across suspension points
## Testing
- **JVM first**: run `jvmTest` instead of `test` — full multiplatform test runs are slow and rarely needed during development
The MCP project is undergoing a licensing transition from the MIT License to the Apache License, Version 2.0 ("Apache-2.0"). All new code and specification contributions to the project are licensed under Apache-2.0. Documentation contributions (excluding specifications) are licensed under CC-BY-4.0.
Contributions for which relicensing consent has been obtained are licensed under Apache-2.0. Contributions made by authors who originally licensed their work under the MIT License and who have not yet granted explicit permission to relicense remain licensed under the MIT License.
No rights beyond those granted by the applicable original license are conveyed for such contributions.
---
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to the Licensor for inclusion in the Work by the copyright
owner or by an individual or Legal Entity authorized to submit on behalf
of the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
Thank you for helping keep the Model Context Protocol and its ecosystem secure.
## Reporting Security Issues
If you discover a security vulnerability in this repository, please report it through
the [GitHub Security Advisory process](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability)
for this repository.
Please **do not** report security vulnerabilities through public GitHub issues, discussions,
or pull requests.
## What to Include
To help us triage and respond quickly, please include: