Commit graph

257 commits

Author SHA1 Message Date
Konstantin Pavlov
98a9ac0b93
Prepare for release version 0.8.1 (#445) 0.8.1
# 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
2025-12-04 17:35:17 +02:00
Konstantin Pavlov
6ec6d3c52f
Better exception handling in StdioClientTransport (#444)
# 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
-->
2025-12-04 15:09:54 +02:00
Konstantin Pavlov
bb8de718d9
Update samples to use new schema (#443) 2025-12-04 10:37:02 +02:00
Konstantin Pavlov
191b76863d
#107 Monitor STDERR and refactor StdioClientTransport to use flows (#442) 2025-12-04 09:18:32 +02:00
Maria Tigina
4645ebfd17
Server feature list changed and resource updated notifications (#441)
<!-- 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-notification

https://modelcontextprotocol.io/specification/2025-06-18/server/tools#list-changed-notification

https://modelcontextprotocol.io/specification/2025-06-18/server/resources#list-changed-notification

https://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
-->
2025-12-03 17:38:33 +02:00
dependabot[bot]
cc9b50ff76
Bump org.jetbrains.kotlinx:kotlinx-io-core from 0.8.1 to 0.8.2 (#440)
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 />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.jetbrains.kotlinx:kotlinx-io-core&package-manager=gradle&previous-version=0.8.1&new-version=0.8.2)](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>
2025-12-01 21:42:25 +02:00
dependabot[bot]
e9658c261a
Bump kotest from 6.0.4 to 6.0.7 (#439)
Bumps `kotest` from 6.0.4 to 6.0.7.
Updates `io.kotest:kotest-assertions-core` from 6.0.4 to 6.0.7
<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.0.7</h2>
<h2>What's Changed</h2>
<ul>
<li>Update dependency com.google.jimfs:jimfs to v1.3.1 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/kotest/kotest/pull/5235">kotest/kotest#5235</a></li>
<li>Update dependency io.github.pdvrieze.xmlutil:serialization to
v0.91.3 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/kotest/kotest/pull/5236">kotest/kotest#5236</a></li>
<li>Update dependency io.projectreactor.tools:blockhound to
v1.0.15.RELEASE by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/kotest/kotest/pull/5238">kotest/kotest#5238</a></li>
<li>Update dependency io.mockk:mockk to v1.14.6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/kotest/kotest/pull/5237">kotest/kotest#5237</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/kotest/kotest/compare/v6.0.6...v6.0.7">https://github.com/kotest/kotest/compare/v6.0.6...v6.0.7</a></p>
<h2>v6.0.6</h2>
<h2>What's Changed</h2>
<ul>
<li>Clarify mock features in Kotest documentation by <a
href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5205">kotest/kotest#5205</a></li>
<li>Specific data test methods for various specs by <a
href="https://github.com/alfonsoristorato"><code>@​alfonsoristorato</code></a>
in <a
href="https://redirect.github.com/kotest/kotest/pull/5144">kotest/kotest#5144</a></li>
<li>Another example for race conditions - mocking LocalDateTime.now() by
<a href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a> in
<a
href="https://redirect.github.com/kotest/kotest/pull/5209">kotest/kotest#5209</a></li>
<li>atMost-for-int (<a
href="https://redirect.github.com/kotest/kotest/issues/5210">#5210</a>)
by <a href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a>
in <a
href="https://redirect.github.com/kotest/kotest/pull/5211">kotest/kotest#5211</a></li>
<li>atMost-for-long (<a
href="https://redirect.github.com/kotest/kotest/issues/5212">#5212</a>)
by <a href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a>
in <a
href="https://redirect.github.com/kotest/kotest/pull/5213">kotest/kotest#5213</a></li>
<li>Update shouldBeOneOf assertion description by <a
href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5214">kotest/kotest#5214</a></li>
<li>Clarify shouldContainAll assertion description by <a
href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5215">kotest/kotest#5215</a></li>
<li>remove-code-duplication-in-GreaterThanOrEqual.kt by <a
href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5224">kotest/kotest#5224</a></li>
<li>Update to Gradle 9.2.1 &amp; remove some potentially old workarounds
by <a href="https://github.com/nhajratw"><code>@​nhajratw</code></a> in
<a
href="https://redirect.github.com/kotest/kotest/pull/5176">kotest/kotest#5176</a></li>
<li>more-info-for-oneOf by <a
href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5222">kotest/kotest#5222</a></li>
<li>Remove all uses of deprecated ComparableMatcherResult by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5231">kotest/kotest#5231</a></li>
<li>add-atLeast-atMost-for-BigDecimal by <a
href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5226">kotest/kotest#5226</a></li>
<li>Add project config option for concurrency order by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5232">kotest/kotest#5232</a></li>
<li>Reenable koin by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5233">kotest/kotest#5233</a></li>
<li>Remove usage of toFile in path matchers by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5229">kotest/kotest#5229</a></li>
<li>Avoid creating fresh root for the first test in
<code>InstancePerLeaf</code> by <a
href="https://github.com/T45K"><code>@​T45K</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5201">kotest/kotest#5201</a></li>
<li>Alex/arbs support arrays of primitives by <a
href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5220">kotest/kotest#5220</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/kotest/kotest/compare/v6.0.5...v6.0.6">https://github.com/kotest/kotest/compare/v6.0.5...v6.0.6</a></p>
<h2>v6.0.5</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix: <code>InstancePerLeaf</code> tests fail when a test leaf has
siblings by <a href="https://github.com/T45K"><code>@​T45K</code></a> in
<a
href="https://redirect.github.com/kotest/kotest/pull/5139">kotest/kotest#5139</a></li>
<li>fix(arrow): collect clues on failures by <a
href="https://github.com/RafeArnold"><code>@​RafeArnold</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5140">kotest/kotest#5140</a></li>
<li>add max timeout bounds to continually and retry by <a
href="https://github.com/alfonsoristorato"><code>@​alfonsoristorato</code></a>
in <a
href="https://redirect.github.com/kotest/kotest/pull/5145">kotest/kotest#5145</a></li>
<li>Move <code>spring.boot.starter.web</code> dependency from
<code>jvmMain</code> to <code>jvmTest</code>. by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5146">kotest/kotest#5146</a></li>
<li>Remove uuid usage to fix JS on certain version of node by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5150">kotest/kotest#5150</a></li>
<li>Remove periods from test names only at TCSM stage by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5149">kotest/kotest#5149</a></li>
<li>Fix wasmJS support for browser tests by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5148">kotest/kotest#5148</a></li>
<li>Fix PR workflow for windows by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5151">kotest/kotest#5151</a></li>
<li>Expand behavior spec tags to given and when by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5152">kotest/kotest#5152</a></li>
<li>update to kotlin 2.2.20 by <a
href="https://github.com/nhajratw"><code>@​nhajratw</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5153">kotest/kotest#5153</a></li>
<li>update to gradle 9.1.0 by <a
href="https://github.com/nhajratw"><code>@​nhajratw</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5158">kotest/kotest#5158</a></li>
<li>docs: Update Maven links and badges in Extensions docs by <a
href="https://github.com/noojung"><code>@​noojung</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5173">kotest/kotest#5173</a></li>
<li>allow to verify if json schema prop is null (addresses <a
href="https://redirect.github.com/kotest/kotest/issues/5172">#5172</a>)
by <a
href="https://github.com/alfonsoristorato"><code>@​alfonsoristorato</code></a>
in <a
href="https://redirect.github.com/kotest/kotest/pull/5175">kotest/kotest#5175</a></li>
<li>allow to verify if Boolean property in jsonSchema is true or false
(addresses <a
href="https://redirect.github.com/kotest/kotest/issues/5171">#5171</a>)
by <a
href="https://github.com/alfonsoristorato"><code>@​alfonsoristorato</code></a>
in <a
href="https://redirect.github.com/kotest/kotest/pull/5174">kotest/kotest#5174</a></li>
<li>fix(deps): update dependency com.zaxxer:hikaricp to v6.3.3 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/kotest/kotest/pull/5179">kotest/kotest#5179</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3923053c92"><code>3923053</code></a>
Update dependency io.mockk:mockk to v1.14.6 (<a
href="https://redirect.github.com/kotest/kotest/issues/5237">#5237</a>)</li>
<li><a
href="014c93bd2f"><code>014c93b</code></a>
Update dependency io.projectreactor.tools:blockhound to v1.0.15.RELEASE
(<a
href="https://redirect.github.com/kotest/kotest/issues/5238">#5238</a>)</li>
<li><a
href="a656dfa518"><code>a656dfa</code></a>
Update dependency io.github.pdvrieze.xmlutil:serialization to v0.91.3
(<a
href="https://redirect.github.com/kotest/kotest/issues/5236">#5236</a>)</li>
<li><a
href="521bd2407f"><code>521bd24</code></a>
Update dependency com.google.jimfs:jimfs to v1.3.1 (<a
href="https://redirect.github.com/kotest/kotest/issues/5235">#5235</a>)</li>
<li><a
href="07905bfc49"><code>07905bf</code></a>
Update default FQN config test to fix flakey test</li>
<li><a
href="d25eef2d39"><code>d25eef2</code></a>
Revert &quot;Removing deprecated EqualityMatcherResult&quot;</li>
<li><a
href="b430cf3ba3"><code>b430cf3</code></a>
Removing deprecated EqualityMatcherResult</li>
<li><a
href="15fde9d7bb"><code>15fde9d</code></a>
Revert &quot;Removing ComparisonMatcherResult&quot;</li>
<li><a
href="e3767727b5"><code>e376772</code></a>
Make <code>mingwX64</code> always included in native conventions instead
of OS-based con...</li>
<li><a
href="2b666d8d44"><code>2b666d8</code></a>
Removing ComparisonMatcherResult</li>
<li>Additional commits viewable in <a
href="https://github.com/kotest/kotest/compare/6.0.4...6.0.7">compare
view</a></li>
</ul>
</details>
<br />

Updates `io.kotest:kotest-assertions-json` from 6.0.4 to 6.0.7
<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.0.7</h2>
<h2>What's Changed</h2>
<ul>
<li>Update dependency com.google.jimfs:jimfs to v1.3.1 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/kotest/kotest/pull/5235">kotest/kotest#5235</a></li>
<li>Update dependency io.github.pdvrieze.xmlutil:serialization to
v0.91.3 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/kotest/kotest/pull/5236">kotest/kotest#5236</a></li>
<li>Update dependency io.projectreactor.tools:blockhound to
v1.0.15.RELEASE by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/kotest/kotest/pull/5238">kotest/kotest#5238</a></li>
<li>Update dependency io.mockk:mockk to v1.14.6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/kotest/kotest/pull/5237">kotest/kotest#5237</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/kotest/kotest/compare/v6.0.6...v6.0.7">https://github.com/kotest/kotest/compare/v6.0.6...v6.0.7</a></p>
<h2>v6.0.6</h2>
<h2>What's Changed</h2>
<ul>
<li>Clarify mock features in Kotest documentation by <a
href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5205">kotest/kotest#5205</a></li>
<li>Specific data test methods for various specs by <a
href="https://github.com/alfonsoristorato"><code>@​alfonsoristorato</code></a>
in <a
href="https://redirect.github.com/kotest/kotest/pull/5144">kotest/kotest#5144</a></li>
<li>Another example for race conditions - mocking LocalDateTime.now() by
<a href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a> in
<a
href="https://redirect.github.com/kotest/kotest/pull/5209">kotest/kotest#5209</a></li>
<li>atMost-for-int (<a
href="https://redirect.github.com/kotest/kotest/issues/5210">#5210</a>)
by <a href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a>
in <a
href="https://redirect.github.com/kotest/kotest/pull/5211">kotest/kotest#5211</a></li>
<li>atMost-for-long (<a
href="https://redirect.github.com/kotest/kotest/issues/5212">#5212</a>)
by <a href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a>
in <a
href="https://redirect.github.com/kotest/kotest/pull/5213">kotest/kotest#5213</a></li>
<li>Update shouldBeOneOf assertion description by <a
href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5214">kotest/kotest#5214</a></li>
<li>Clarify shouldContainAll assertion description by <a
href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5215">kotest/kotest#5215</a></li>
<li>remove-code-duplication-in-GreaterThanOrEqual.kt by <a
href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5224">kotest/kotest#5224</a></li>
<li>Update to Gradle 9.2.1 &amp; remove some potentially old workarounds
by <a href="https://github.com/nhajratw"><code>@​nhajratw</code></a> in
<a
href="https://redirect.github.com/kotest/kotest/pull/5176">kotest/kotest#5176</a></li>
<li>more-info-for-oneOf by <a
href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5222">kotest/kotest#5222</a></li>
<li>Remove all uses of deprecated ComparableMatcherResult by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5231">kotest/kotest#5231</a></li>
<li>add-atLeast-atMost-for-BigDecimal by <a
href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5226">kotest/kotest#5226</a></li>
<li>Add project config option for concurrency order by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5232">kotest/kotest#5232</a></li>
<li>Reenable koin by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5233">kotest/kotest#5233</a></li>
<li>Remove usage of toFile in path matchers by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5229">kotest/kotest#5229</a></li>
<li>Avoid creating fresh root for the first test in
<code>InstancePerLeaf</code> by <a
href="https://github.com/T45K"><code>@​T45K</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5201">kotest/kotest#5201</a></li>
<li>Alex/arbs support arrays of primitives by <a
href="https://github.com/AlexCue987"><code>@​AlexCue987</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5220">kotest/kotest#5220</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/kotest/kotest/compare/v6.0.5...v6.0.6">https://github.com/kotest/kotest/compare/v6.0.5...v6.0.6</a></p>
<h2>v6.0.5</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix: <code>InstancePerLeaf</code> tests fail when a test leaf has
siblings by <a href="https://github.com/T45K"><code>@​T45K</code></a> in
<a
href="https://redirect.github.com/kotest/kotest/pull/5139">kotest/kotest#5139</a></li>
<li>fix(arrow): collect clues on failures by <a
href="https://github.com/RafeArnold"><code>@​RafeArnold</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5140">kotest/kotest#5140</a></li>
<li>add max timeout bounds to continually and retry by <a
href="https://github.com/alfonsoristorato"><code>@​alfonsoristorato</code></a>
in <a
href="https://redirect.github.com/kotest/kotest/pull/5145">kotest/kotest#5145</a></li>
<li>Move <code>spring.boot.starter.web</code> dependency from
<code>jvmMain</code> to <code>jvmTest</code>. by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5146">kotest/kotest#5146</a></li>
<li>Remove uuid usage to fix JS on certain version of node by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5150">kotest/kotest#5150</a></li>
<li>Remove periods from test names only at TCSM stage by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5149">kotest/kotest#5149</a></li>
<li>Fix wasmJS support for browser tests by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5148">kotest/kotest#5148</a></li>
<li>Fix PR workflow for windows by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5151">kotest/kotest#5151</a></li>
<li>Expand behavior spec tags to given and when by <a
href="https://github.com/sksamuel"><code>@​sksamuel</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5152">kotest/kotest#5152</a></li>
<li>update to kotlin 2.2.20 by <a
href="https://github.com/nhajratw"><code>@​nhajratw</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5153">kotest/kotest#5153</a></li>
<li>update to gradle 9.1.0 by <a
href="https://github.com/nhajratw"><code>@​nhajratw</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5158">kotest/kotest#5158</a></li>
<li>docs: Update Maven links and badges in Extensions docs by <a
href="https://github.com/noojung"><code>@​noojung</code></a> in <a
href="https://redirect.github.com/kotest/kotest/pull/5173">kotest/kotest#5173</a></li>
<li>allow to verify if json schema prop is null (addresses <a
href="https://redirect.github.com/kotest/kotest/issues/5172">#5172</a>)
by <a
href="https://github.com/alfonsoristorato"><code>@​alfonsoristorato</code></a>
in <a
href="https://redirect.github.com/kotest/kotest/pull/5175">kotest/kotest#5175</a></li>
<li>allow to verify if Boolean property in jsonSchema is true or false
(addresses <a
href="https://redirect.github.com/kotest/kotest/issues/5171">#5171</a>)
by <a
href="https://github.com/alfonsoristorato"><code>@​alfonsoristorato</code></a>
in <a
href="https://redirect.github.com/kotest/kotest/pull/5174">kotest/kotest#5174</a></li>
<li>fix(deps): update dependency com.zaxxer:hikaricp to v6.3.3 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/kotest/kotest/pull/5179">kotest/kotest#5179</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3923053c92"><code>3923053</code></a>
Update dependency io.mockk:mockk to v1.14.6 (<a
href="https://redirect.github.com/kotest/kotest/issues/5237">#5237</a>)</li>
<li><a
href="014c93bd2f"><code>014c93b</code></a>
Update dependency io.projectreactor.tools:blockhound to v1.0.15.RELEASE
(<a
href="https://redirect.github.com/kotest/kotest/issues/5238">#5238</a>)</li>
<li><a
href="a656dfa518"><code>a656dfa</code></a>
Update dependency io.github.pdvrieze.xmlutil:serialization to v0.91.3
(<a
href="https://redirect.github.com/kotest/kotest/issues/5236">#5236</a>)</li>
<li><a
href="521bd2407f"><code>521bd24</code></a>
Update dependency com.google.jimfs:jimfs to v1.3.1 (<a
href="https://redirect.github.com/kotest/kotest/issues/5235">#5235</a>)</li>
<li><a
href="07905bfc49"><code>07905bf</code></a>
Update default FQN config test to fix flakey test</li>
<li><a
href="d25eef2d39"><code>d25eef2</code></a>
Revert &quot;Removing deprecated EqualityMatcherResult&quot;</li>
<li><a
href="b430cf3ba3"><code>b430cf3</code></a>
Removing deprecated EqualityMatcherResult</li>
<li><a
href="15fde9d7bb"><code>15fde9d</code></a>
Revert &quot;Removing ComparisonMatcherResult&quot;</li>
<li><a
href="e3767727b5"><code>e376772</code></a>
Make <code>mingwX64</code> always included in native conventions instead
of OS-based con...</li>
<li><a
href="2b666d8d44"><code>2b666d8</code></a>
Removing ComparisonMatcherResult</li>
<li>Additional commits viewable in <a
href="https://github.com/kotest/kotest/compare/6.0.4...6.0.7">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>
2025-12-01 20:10:29 +02:00
Sergey Karpov
f04ccfd162
Add MCP conformance test coverage (#435)
<!-- 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>
2025-12-01 18:02:34 +02:00
Konstantin Pavlov
29d89abf02
Upgrade SDK to 0.8.0 in Weather STDIO server sample (#428)
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
-->
2025-11-27 18:35:47 +02:00
Konstantin Pavlov
e584cfe882
fix(sse-client): Skip SSE in StreamableHttpClientTransport when data is empty (#433)
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
-->
2025-11-27 18:12:14 +02:00
dependabot[bot]
fbbb430273
Bump dev.mokksy:mokksy from 0.6.1 to 0.6.2 (#431)
Bumps [dev.mokksy:mokksy](https://github.com/mokksy/ai-mocks) from 0.6.1
to 0.6.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mokksy/ai-mocks/releases">dev.mokksy:mokksy's
releases</a>.</em></p>
<blockquote>
<h2>0.6.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Add JSON Schema DSL for type-safe schema construction by <a
href="https://github.com/kpavlov"><code>@​kpavlov</code></a> in <a
href="https://redirect.github.com/mokksy/ai-mocks/pull/472">mokksy/ai-mocks#472</a></li>
<li>fix(docs): Update KDocs, fix links and cross-references by <a
href="https://github.com/kpavlov"><code>@​kpavlov</code></a> in <a
href="https://redirect.github.com/mokksy/ai-mocks/pull/476">mokksy/ai-mocks#476</a></li>
</ul>
<h2>Dependency updates</h2>
<ul>
<li>fix(deps): update dependency com.anthropic:anthropic-java to v2.9.0
by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/435">mokksy/ai-mocks#435</a></li>
<li>fix(deps): update dependency io.netty:netty-bom to v4.2.7.final by
<a href="https://github.com/renovate"><code>@​renovate</code></a>[bot]
in <a
href="https://redirect.github.com/mokksy/ai-mocks/pull/434">mokksy/ai-mocks#434</a></li>
<li>fix(deps): update dependency
org.springframework:spring-framework-bom to v6.2.12 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/436">mokksy/ai-mocks#436</a></li>
<li>fix(deps): update dependency com.openai:openai-java-client-okhttp to
v4.4.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/439">mokksy/ai-mocks#439</a></li>
<li>fix(deps): update dependency com.openai:openai-java to v4.4.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/438">mokksy/ai-mocks#438</a></li>
<li>fix(deps): update dependency com.openai:openai-java-client-okhttp to
v4.5.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/441">mokksy/ai-mocks#441</a></li>
<li>chore(deps): update dependency org.jetbrains.kotlinx.kover to v0.9.3
by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/437">mokksy/ai-mocks#437</a></li>
<li>fix(deps): update dependency com.openai:openai-java to v4.5.0 -
autoclosed by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/440">mokksy/ai-mocks#440</a></li>
<li>chore(deps): update dependency org.openrewrite.rewrite to v7.19.0 by
<a href="https://github.com/renovate"><code>@​renovate</code></a>[bot]
in <a
href="https://redirect.github.com/mokksy/ai-mocks/pull/445">mokksy/ai-mocks#445</a></li>
<li>fix(deps): update dependency com.google.genai:google-genai to
v1.24.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/444">mokksy/ai-mocks#444</a></li>
<li>fix(deps): update dependency com.openai:openai-java-client-okhttp to
v4.6.1 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/443">mokksy/ai-mocks#443</a></li>
<li>fix(deps): update dependency com.openai:openai-java to v4.6.1 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/442">mokksy/ai-mocks#442</a></li>
<li>fix(deps): update langchain4j monorepo to v1.8.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/447">mokksy/ai-mocks#447</a></li>
<li>chore(deps): update gradle to v9.2.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/449">mokksy/ai-mocks#449</a></li>
<li>fix(deps): update dependency net.datafaker:datafaker to v2.5.3 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/448">mokksy/ai-mocks#448</a></li>
<li>fix(deps): update dependency com.google.genai:google-genai to
v1.25.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/451">mokksy/ai-mocks#451</a></li>
<li>chore(deps): update mikepenz/action-junit-report action to v6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/453">mokksy/ai-mocks#453</a></li>
<li>fix(deps): update junit-framework monorepo to v5.14.1 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/452">mokksy/ai-mocks#452</a></li>
<li>fix(deps): update dependency com.openai:openai-java-client-okhttp to
v4.7.1 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/455">mokksy/ai-mocks#455</a></li>
<li>chore(deps): update dependency org.openrewrite.rewrite to v7.20.0 by
<a href="https://github.com/renovate"><code>@​renovate</code></a>[bot]
in <a
href="https://redirect.github.com/mokksy/ai-mocks/pull/456">mokksy/ai-mocks#456</a></li>
<li>fix(deps): update dependency io.ktor:ktor-bom to v3.3.2 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/457">mokksy/ai-mocks#457</a></li>
<li>fix(deps): update junit-framework monorepo to v6 (major) by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/460">mokksy/ai-mocks#460</a></li>
<li>fix(deps): update dependency com.openai:openai-java to v4.7.1 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/454">mokksy/ai-mocks#454</a></li>
<li>fix(deps): update dependency com.google.genai:google-genai to
v1.27.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/458">mokksy/ai-mocks#458</a></li>
<li>fix(deps): update dependency
org.springframework:spring-framework-bom to v6.2.13 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/464">mokksy/ai-mocks#464</a></li>
<li>chore(deps): update plugin com.vanniktech.maven.publish to v0.35.0
by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/462">mokksy/ai-mocks#462</a></li>
<li>chore(deps): update dependency
com.vanniktech:gradle-maven-publish-plugin to v0.35.0 - autoclosed by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/461">mokksy/ai-mocks#461</a></li>
<li>fix(deps): update dependency com.openai:openai-java-client-okhttp to
v4.8.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/467">mokksy/ai-mocks#467</a></li>
<li>fix(deps): update dependency com.openai:openai-java to v4.8.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/466">mokksy/ai-mocks#466</a></li>
<li>chore(deps): update gradle to v9.2.1 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/468">mokksy/ai-mocks#468</a></li>
<li>fix(deps): update dependency com.google.genai:google-genai to
v1.28.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/469">mokksy/ai-mocks#469</a></li>
<li>chore(deps): update dependency
com.diffplug.spotless:spotless-plugin-gradle to v8.1.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/471">mokksy/ai-mocks#471</a></li>
<li>chore(deps): update dependency com.diffplug.spotless to v8.1.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/470">mokksy/ai-mocks#470</a></li>
<li>fix(deps): update dependency
org.springframework:spring-framework-bom to v6.2.14 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/473">mokksy/ai-mocks#473</a></li>
<li>chore(deps): update dependency org.openrewrite.rewrite to v7.21.0 by
<a href="https://github.com/renovate"><code>@​renovate</code></a>[bot]
in <a
href="https://redirect.github.com/mokksy/ai-mocks/pull/474">mokksy/ai-mocks#474</a></li>
<li>chore(deps): update actions/checkout action to v6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/475">mokksy/ai-mocks#475</a></li>
<li>fix(deps): update dependency org.springframework.ai:spring-ai-bom to
v1.1.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/mokksy/ai-mocks/pull/463">mokksy/ai-mocks#463</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mokksy/ai-mocks/compare/v0.6.1...v0.6.2">https://github.com/mokksy/ai-mocks/compare/v0.6.1...v0.6.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5c0701baae"><code>5c0701b</code></a>
0.6.2</li>
<li><a
href="fb95af238e"><code>fb95af2</code></a>
fix(docs): Update KDocs, fix links and cross-references (<a
href="https://redirect.github.com/mokksy/ai-mocks/issues/476">#476</a>)</li>
<li><a
href="9b0e18b71f"><code>9b0e18b</code></a>
fix(deps): update dependency org.springframework.ai:spring-ai-bom to
v1.1.0 (...</li>
<li><a
href="93d57be4c2"><code>93d57be</code></a>
chore(deps): update actions/checkout action to v6 (<a
href="https://redirect.github.com/mokksy/ai-mocks/issues/475">#475</a>)</li>
<li><a
href="8d91053c6c"><code>8d91053</code></a>
chore(deps): update dependency org.openrewrite.rewrite to v7.21.0 (<a
href="https://redirect.github.com/mokksy/ai-mocks/issues/474">#474</a>)</li>
<li><a
href="f5266262a1"><code>f526626</code></a>
Add JSON Schema DSL for type-safe schema construction (<a
href="https://redirect.github.com/mokksy/ai-mocks/issues/472">#472</a>)</li>
<li><a
href="8ce39c5abd"><code>8ce39c5</code></a>
fix(deps): update dependency org.springframework:spring-framework-bom to
v6.2...</li>
<li><a
href="8a012262ae"><code>8a01226</code></a>
chore(deps): update dependency com.diffplug.spotless to v8.1.0 (<a
href="https://redirect.github.com/mokksy/ai-mocks/issues/470">#470</a>)</li>
<li><a
href="88d9483a28"><code>88d9483</code></a>
chore(deps): update dependency
com.diffplug.spotless:spotless-plugin-gradle t...</li>
<li><a
href="cc0922ba82"><code>cc0922b</code></a>
fix(deps): update dependency com.google.genai:google-genai to v1.28.0
(<a
href="https://redirect.github.com/mokksy/ai-mocks/issues/469">#469</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/mokksy/ai-mocks/compare/v0.6.1...v0.6.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=dev.mokksy:mokksy&package-manager=gradle&previous-version=0.6.1&new-version=0.6.2)](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>
2025-11-25 20:48:08 +02:00
dependabot[bot]
e443fea8cb
Bump org.jetbrains.kotlinx:kotlinx-io-core from 0.8.0 to 0.8.1 (#432)
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 />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.jetbrains.kotlinx:kotlinx-io-core&package-manager=gradle&previous-version=0.8.0&new-version=0.8.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>
2025-11-25 13:25:53 +01:00
dependabot[bot]
a0b4ef021d
Bump actions/checkout from 5 to 6 (#429)
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to
6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v6.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update README to include Node.js 24 support details and requirements
by <a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li>
<li>Persist creds to a separate file by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li>
<li>v6-beta by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2298">actions/checkout#2298</a></li>
<li>update readme/changelog for v6 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2311">actions/checkout#2311</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v5.0.0...v6.0.0">https://github.com/actions/checkout/compare/v5.0.0...v6.0.0</a></p>
<h2>v6-beta</h2>
<h2>What's Changed</h2>
<p>Updated persist-credentials to store the credentials under
<code>$RUNNER_TEMP</code> instead of directly in the local git
config.</p>
<p>This requires a minimum Actions Runner version of <a
href="https://github.com/actions/runner/releases/tag/v2.329.0">v2.329.0</a>
to access the persisted credentials for <a
href="https://docs.github.com/en/actions/tutorials/use-containerized-services/create-a-docker-container-action">Docker
container action</a> scenarios.</p>
<h2>v5.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Port v6 cleanup to v5 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v5...v5.0.1">https://github.com/actions/checkout/compare/v5...v5.0.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>V6.0.0</h2>
<ul>
<li>Persist creds to a separate file by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li>
<li>Update README to include Node.js 24 support details and requirements
by <a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li>
</ul>
<h2>V5.0.1</h2>
<ul>
<li>Port v6 cleanup to v5 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li>
</ul>
<h2>V5.0.0</h2>
<ul>
<li>Update actions checkout to use node 24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li>
</ul>
<h2>V4.3.1</h2>
<ul>
<li>Port v6 cleanup to v4 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</a></li>
</ul>
<h2>V4.3.0</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss"><code>@​motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
</ul>
<h2>v4.2.2</h2>
<ul>
<li><code>url-helper.ts</code> now leverages well-known environment
variables by <a href="https://github.com/jww3"><code>@​jww3</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li>
<li>Expand unit test coverage for <code>isGhes</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li>
</ul>
<h2>v4.2.1</h2>
<ul>
<li>Check out other refs/* by commit if provided, fall back to ref by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li>
</ul>
<h2>v4.2.0</h2>
<ul>
<li>Add Ref and Commit outputs by <a
href="https://github.com/lucacome"><code>@​lucacome</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1180">actions/checkout#1180</a></li>
<li>Dependency updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>- <a
href="https://redirect.github.com/actions/checkout/pull/1777">actions/checkout#1777</a>,
<a
href="https://redirect.github.com/actions/checkout/pull/1872">actions/checkout#1872</a></li>
</ul>
<h2>v4.1.7</h2>
<ul>
<li>Bump the minor-npm-dependencies group across 1 directory with 4
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1739">actions/checkout#1739</a></li>
<li>Bump actions/checkout from 3 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1697">actions/checkout#1697</a></li>
<li>Check out other refs/* by commit by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1774">actions/checkout#1774</a></li>
<li>Pin actions/checkout's own workflows to a known, good, stable
version. by <a href="https://github.com/jww3"><code>@​jww3</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1776">actions/checkout#1776</a></li>
</ul>
<h2>v4.1.6</h2>
<ul>
<li>Check platform to set archive extension appropriately by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1732">actions/checkout#1732</a></li>
</ul>
<h2>v4.1.5</h2>
<ul>
<li>Update NPM dependencies by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1703">actions/checkout#1703</a></li>
<li>Bump github/codeql-action from 2 to 3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1694">actions/checkout#1694</a></li>
<li>Bump actions/setup-node from 1 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1696">actions/checkout#1696</a></li>
<li>Bump actions/upload-artifact from 2 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1695">actions/checkout#1695</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1af3b93b68"><code>1af3b93</code></a>
update readme/changelog for v6 (<a
href="https://redirect.github.com/actions/checkout/issues/2311">#2311</a>)</li>
<li><a
href="71cf2267d8"><code>71cf226</code></a>
v6-beta (<a
href="https://redirect.github.com/actions/checkout/issues/2298">#2298</a>)</li>
<li><a
href="069c695914"><code>069c695</code></a>
Persist creds to a separate file (<a
href="https://redirect.github.com/actions/checkout/issues/2286">#2286</a>)</li>
<li><a
href="ff7abcd0c3"><code>ff7abcd</code></a>
Update README to include Node.js 24 support details and requirements (<a
href="https://redirect.github.com/actions/checkout/issues/2248">#2248</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/checkout/compare/v5...v6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=5&new-version=6)](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>
2025-11-25 13:10:20 +01:00
Konstantin Pavlov
e5abc3fb98
Upgrade project version and kotlin-sdk dependency to 0.8.0 in samples. (#425)
## 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
-->
2025-11-21 12:42:28 +02:00
Pavel Gorgulov
e119a825a6
Prepare release version 0.8.0 (#424) 0.8.0
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
2025-11-20 23:32:56 +01:00
Konstantin Pavlov
6dd9c80335
Add convenience constructors to JSONRPCRequest (#336)
- 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
-->
2025-11-20 22:06:21 +02:00
Pavel Gorgulov
2b9dfd9466
Add options in Transport.send method (#408)
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
2025-11-20 20:17:15 +01:00
Pavel Gorgulov
74c93745cd
Proposal: DSL Builders for request types (#399)
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
2025-11-20 19:46:07 +01:00
Pavel Gorgulov
e6e38ac0a8
Fix providing progressToken with request (#405)
## 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
2025-11-20 19:21:20 +01:00
Pavel Gorgulov
0f9209ad4a
Handle additional error types in client initialization handling (#404)
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
2025-11-20 19:09:23 +01:00
dependabot[bot]
42c92608dd
Bump com.vanniktech:gradle-maven-publish-plugin from 0.34.0 to 0.35.0 (#403)
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 />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.vanniktech:gradle-maven-publish-plugin&package-manager=gradle&previous-version=0.34.0&new-version=0.35.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>
2025-11-18 17:14:44 +02:00
dependabot[bot]
f24c801ee6
Bump org.jlleitschuh.gradle.ktlint from 13.1.0 to 14.0.1 (#402)
Bumps org.jlleitschuh.gradle.ktlint from 13.1.0 to 14.0.1.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.jlleitschuh.gradle.ktlint&package-manager=gradle&previous-version=13.1.0&new-version=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>
2025-11-17 13:15:54 +02:00
Konstantin Pavlov
d2f0893b2c
Add example Kotlin Notebook demonstrating MCP client (#397)
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
-->
2025-11-14 16:43:55 +02:00
Pavel Gorgulov
666cfd6b82
Add test with new schema types (#389)
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>
2025-11-14 11:39:43 +02:00
Pavel Gorgulov
4aeed923f6
Add warning message to ExperimentalMcpApi annotation and change level (#398)
- 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
2025-11-13 22:05:45 +02:00
Konstantin Pavlov
93d544e618
Add experimental mcpClient(...) factory method (#396)
- 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
-->
2025-11-12 20:53:25 +02:00
Konstantin Pavlov
8bdbd36c32
Add backwards compatibility constructors and tests (#395)
- 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
-->
2025-11-12 20:18:57 +02:00
Ruslan Ibrahimau (Ibragimov)
31fd6d93da
Kotlin-MCP can't be used without ktor-bom starting from 0.7.5 (#390) (#392) 2025-11-12 15:32:54 +02:00
Konstantin Pavlov
5636faf60c
Updated ServerPromptsTest, move AbstractTransport to it's own file (#376)
# 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
-->
2025-11-12 14:40:33 +02:00
Konstantin Pavlov
6afef103c9
Update JVM target to 11 in Gradle build configuration (#394)
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
-->
2025-11-12 13:40:44 +02:00
Pavel Gorgulov
01de6e6800
Raise the version of the supported specification (#391) 2025-11-12 07:54:46 +02:00
Pavel Gorgulov
2996ce45ea
Increase deprecation levels (#393) 2025-11-12 07:15:34 +02:00
Pavel Gorgulov
13f858d5d2
Add new helper properties to request and notification types (#388)
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
2025-11-11 15:55:58 +02:00
Maria Tigina
0e6a41dcd5
Add server session id (#381)
<!-- 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
-->
2025-11-11 14:15:09 +02:00
Pavel Gorgulov
21393e7ce3
New MCP Schema types (#386)
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
```
2025-11-11 12:25:23 +01:00
Konstantin Pavlov
91d45b0f8d
Bump version to 0.8.0-SNAPSHOT and update mcp-kotlin dependency in samples (#385)
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
-->
2025-11-11 10:56:45 +02:00
Konstantin Pavlov
65f2f3d931
Prepare to 0.7.7 (#384) 0.7.7
## 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
-->
2025-11-10 18:41:35 +02:00
Konstantin Pavlov
e6432dbf26
Replace Instant with String for lastModified in Annotations (#383)
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
-->
2025-11-10 17:56:59 +02:00
Konstantin Pavlov
33b5fc33df
Bump version to 0.8.0-SNAPSHOT, 0.7.6 in samples (#380)
## 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
-->
2025-11-07 18:09:27 +02:00
Pavel Gorgulov
110efa985d
Prepare release 0.7.6 (#379) 0.7.6
Bump kotlin-sdk version to 0.7.6

## Breaking Changes
None
2025-11-07 16:22:50 +01:00
Konstantin Pavlov
23ce450279
Update Gradle to version 9.2.0 across all projects (#377)
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
-->
2025-11-07 17:07:20 +02:00
Konstantin Pavlov
07f661a94c
#355 Handle coroutine cancellation in Server Transports (#375) 2025-11-07 12:04:56 +02:00
Konstantin Pavlov
4b88c7cb82
Bump version to 0.7.6-SNAPSHOT and update version to 0.7.5 in samples (#374) 2025-11-06 21:58:19 +02:00
Konstantin Pavlov
7681de1df8
Release 0.7.5 (#373) 0.7.5 2025-11-06 19:19:35 +02:00
Konstantin Pavlov
dc4386f0f1
Update Kotlin-MCP-Server with STDIO support, logging & CORS (#371)
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
-->
2025-11-06 18:18:04 +02:00
Jeff Clyne
e4bd866fdd
Adds optional _meta field to Tool (#339)
<!-- 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-sdk

https://developers.openai.com/apps-sdk/reference/#_meta-fields-the-client-provides

---------

Co-authored-by: Pavel Gorgulov <devcrocod@gmail.com>
2025-11-04 19:39:22 +02:00
Maria Tigina
f462019c43
Add tests to server samples (#369)
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
-->
2025-11-04 15:07:19 +02:00
Konstantin Pavlov
935a1eddbc
Add Ktor BOM for dependency management across all modules, run Kotlin-MCP-Server Sample (#367)
## 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
-->
2025-11-04 11:44:39 +02:00
Pavel Gorgulov
ab9ba54b33
Fix: Handle logging/setLevel request for server (#358)
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
2025-11-03 19:45:09 +01:00
dependabot[bot]
a75e7a8197
Bump org.openapi.generator from 7.16.0 to 7.17.0 (#362)
Bumps org.openapi.generator from 7.16.0 to 7.17.0.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.openapi.generator&package-manager=gradle&previous-version=7.16.0&new-version=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>
2025-11-03 20:33:29 +02:00