Commit graph

289 commits

Author SHA1 Message Date
Konstantin Pavlov
cc8cc76012 chore: prepare for 0.8.4 0.8.4 2026-02-17 08:25:31 +02:00
Pavel Gorgulov
58575ba5a6 Ktor extensions for streamable http (#504)
## Motivation and Context
Adds Ktor extensions for streaming data over the server-side HTTP
transport

## How Has This Been Tested?
Integration test

## Breaking Changes
-

## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed

(cherry picked from commit da971aaee5)
2026-02-16 23:49:25 +02:00
Ilia Brovarnik
6969176e6c Add $defs to ToolSchema and tests (#526)
Add $defs support in ToolSchema and update tests.

Motivation and Context
Fix parsing when tool schemas include $defs.

How Has This Been Tested?

`./gradlew :kotlin-sdk-core:jvmTest --tests
"io.modelcontextprotocol.kotlin.sdk.types.ToolsTest"`

Breaking Changes
No.

Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

Checklist
- [x] I have read the MCP Documentation
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

Additional context
N/A

(cherry picked from commit 1b255a2baf)
2026-02-16 23:47:18 +02:00
Konstantin Pavlov
48119367e6
bump: update version to 0.8.3 (#488) 0.8.3
Update version to 0.8.3. Prepare for release

## Motivation and Context
Prepare for release

## How Has This Been Tested?
CI

## Breaking Changes
No

## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] CI update
2026-01-21 12:21:11 +02:00
Konstantin Pavlov
bfb0516af4
ci: Update gradle-publish.yml
Allow re-running release manually
2026-01-21 12:12:01 +02:00
Konstantin Pavlov
1e4003fe9a
ci: re-enable publishing release workflow
Re-enable publishing to Maven Central in release workflow
2026-01-21 11:48:35 +02:00
Konstantin Pavlov
4d505025b4
fix(stdio-client)!: Stdio- and StreamableHttpClientTransport should throw McpException on send when not ready (#487) 2026-01-21 08:54:35 +02:00
Konstantin Pavlov
9f16ae45d2
chore(ci): Update deploy pipeline (#485)
# chore(ci): Update deploy pipeline

## Motivation and Context
To troubleshoot deployment failure, it has to be merged to main first

## How Has This Been Tested?
Will be tested manually on main branch

## Breaking Changes
<!-- Will users need to update their code or configurations? -->

## Types of changes
- [x] CI update
2026-01-20 11:30:33 +02:00
Konstantin Pavlov
ad7f372b4f
Prepare for release version 0.8.2 (#461)
# Prepare for release version 0.8.2

bump mcp kotlin-sdk to 0.8.2

## How Has This Been Tested?
CI

## Breaking Changes
No

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] CI update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
2026-01-19 16:02:31 +02:00
Fedor Bobin
c73507b96a
fix conformance tests (#483)
# Fix conformance tests.

1. fix node version to workaround
https://github.com/nodejs/node/issues/56645
2. use `@argfile` to handle long classpaths
3. specify extension for npx for windows
4. Install `@modelcontextprotocol/conformance@0.1.8` GitHub Actions
workflow.
5. Centralize logging for process streams in conformance tests: Add
`startLogging` utility for InputStream logging with `KotlinLogging`.
Replace inline process stream handling with `startLogging` calls

Note: Currently tests pass using
`@modelcontextprotocol/conformance@0.1.8`/ But changing to 0.1.9 will
fail client scenarios (it is not related to this PR).

## Motivation and Context
Before fix conformance tests are broken on Windows

## How Has This Been Tested?
Run test locally and in github actions

## Breaking Changes
No

## Types of changes

- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed

## Additional context
May be we should update `CONTRIBUTING.md/Building/Requirements`. But
currently it does not mention at all: node, android, etc.

---------

Co-authored-by: f.bobin <f.bobin@vk.team>
Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
2026-01-19 15:45:54 +02:00
adam jones
1ee43f07b0
chore: update licensing to Apache 2.0 for new contributions (#481)
As part of MCP joining the Linux Foundation, this PR updates licensing
to Apache 2.0 for new contributions while grandfathering existing MIT
code. See modelcontextprotocol/modelcontextprotocol#1994

---------

Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
2026-01-13 14:21:52 +02:00
Konstantin Pavlov
6ad9bf2122
fix(integration-test): refactor integration test infrastructure, fix and enable tests with ts-client (#478)
# Refactor integration test infrastructure, fix and enable tests with
ts-client

- Refactor TypeScript integration test infrastructure to support
parallel execution and real I/O operations.
- Extract reusable TypeScriptClient component
- Migrate some tests from `runTest` to `runBlocking` for tests that
spawn actual processes and communicate over real network connections.

## Key Changes 

  - Extract `TypeScriptClient` class for managing TS client processes
- Move client scripts to integration-test/src/jvmTest/typescript/client/
- Migrate typescript: `myClient.ts`(2) → `sse-client.ts`,
`stdio-client.ts`
  - Automate TypeScript dependency installation in static initializer
  
- Enable JUnit parallel execution (dynamic strategy, concurrent mode)
with test timeout of 2 minutes
- Replace `mutableListOf` with `ConcurrentLinkedQueue` for thread-safe
notification handling
  - Migrate integration tests from `runTest` to `runBlocking`
**Rationale:** Integration tests that spawn real TypeScript processes,
establish actual
HTTP/SSE connections, and manage server lifecycles require real-time I/O
behavior. The runTest framework's virtual time is designed for fast unit
tests with simulated timing, not for integration scenarios where
external processes and network communication must occur in real time.
Parallel execution requires thread-safe data structures
(ConcurrentLinkedQueue)
to safely collect notifications from multiple concurrent test instances.

  - Add `EmbeddedServer.actualPort()` extension to get bound port
  - Standardize kotlin.time.Duration usage across test utilities
  - Update processUtils.stopProcess() to accept Duration parameter
  - Replace RuntimeException checks with idiomatic check() calls
  - Revert `--rerun-tasks` flag to Gradle workflows for reliable builds

## Motivation and Context

Integration tests with typescript client are now broken. Enabling
parallel test execution will force writing thread-safe independent tests
and will highlight problems faster.

## How Has This Been Tested?
CI

## Breaking Changes
<!-- Will users need to update their code or configurations? -->

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] CI Update
- [x] Test Fix

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

## Additional context
Follow up for #477
2026-01-11 09:38:13 +02:00
Konstantin Pavlov
658b370c87
refactor(test): add centralized TypeScript server factory for integration tests (#477)
# refactor(test): add centralized TypeScript server factory for
integration tests

  - Create TypeScriptServer class for managing TypeScript MCP servers
  - Add dedicated typescript/ directory with server infrastructure
  - Refactor TsTestBase to use TypeScriptServer for stdio transport
- Extract TypeScript test tools (greet, multi-greet, prompts, resources)
  - Use npx tsx for direct execution (better performance than npm run)
  - Install TypeScript dependencies automatically in test setup

  The TypeScriptServer factory provides:
  - startSse(port): Start SSE transport server
  - startStdio(): Start STDIO transport server
  - stop(): Graceful server shutdown
  - installDependencies(): npm install automation

<!-- Provide a brief summary of your changes -->

## Motivation and Context
To resurrect typescript tests

## How Has This Been Tested?
Locally, CI

## Breaking Changes
<!-- Will users need to update their code or configurations? -->

## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] Test fix

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

## Additional context
#475
2026-01-10 20:46:51 +02:00
Konstantin Pavlov
29d34b8e48
test: Refactor test utilities, fix conformance (#476)
# Refactor test utilities, fix conformance

- Add `test-utils` module to streamline test cases
- Rename module `kotlin-sdk-test` -> `integration-test`
- Move test utilities for managing processes, ports, and TypeScript
execution logic
- Make conformance tests work by specifying conformance package version
(0.1.8)

## Motivation and Context
Reuse test infrastructure code, resurrect conformance tests

## How Has This Been Tested?
CI, locally

## Breaking Changes
No

## Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] Tests update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
2026-01-10 16:51:15 +02:00
Nathaniel Lombardi
6fee82ff1a
Mark DSL functions for types as public (#472)
<!-- Provide a brief summary of your changes -->

## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
The dsl builders in [this
commit](74c93745cd (diff-598edaa01d))
were mistakenly marked internal and are therefore unusable. I have
simply marked them as public.

## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->

## Breaking Changes
No

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->

---------

Co-authored-by: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com>
2026-01-10 01:12:29 +02:00
dependabot[bot]
1e1c7e6871
Bump actions/upload-artifact from 5 to 6 (#465)
Bumps
[actions/upload-artifact](https://github.com/actions/upload-artifact)
from 5 to 6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/upload-artifact/releases">actions/upload-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v6.0.0</h2>
<h2>v6 - What's new</h2>
<blockquote>
<p>[!IMPORTANT]
actions/upload-artifact@v6 now runs on Node.js 24 (<code>runs.using:
node24</code>) and requires a minimum Actions Runner version of 2.327.1.
If you are using self-hosted runners, ensure they are updated before
upgrading.</p>
</blockquote>
<h3>Node.js 24</h3>
<p>This release updates the runtime to Node.js 24. v5 had preliminary
support for Node.js 24, however this action was by default still running
on Node.js 20. Now this action by default will run on Node.js 24.</p>
<h2>What's Changed</h2>
<ul>
<li>Upload Artifact Node 24 support by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/719">actions/upload-artifact#719</a></li>
<li>fix: update <code>@​actions/artifact</code> for Node.js 24 punycode
deprecation by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/744">actions/upload-artifact#744</a></li>
<li>prepare release v6.0.0 for Node.js 24 support by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/745">actions/upload-artifact#745</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/upload-artifact/compare/v5.0.0...v6.0.0">https://github.com/actions/upload-artifact/compare/v5.0.0...v6.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b7c566a772"><code>b7c566a</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/upload-artifact/issues/745">#745</a>
from actions/upload-artifact-v6-release</li>
<li><a
href="e516bc8500"><code>e516bc8</code></a>
docs: correct description of Node.js 24 support in README</li>
<li><a
href="ddc45ed9bc"><code>ddc45ed</code></a>
docs: update README to correct action name for Node.js 24 support</li>
<li><a
href="615b319bd2"><code>615b319</code></a>
chore: release v6.0.0 for Node.js 24 support</li>
<li><a
href="017748b48f"><code>017748b</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/upload-artifact/issues/744">#744</a>
from actions/fix-storage-blob</li>
<li><a
href="38d4c7997f"><code>38d4c79</code></a>
chore: rebuild dist</li>
<li><a
href="7d27270e0c"><code>7d27270</code></a>
chore: add missing license cache files for <code>@​actions/core</code>,
<code>@​actions/io</code>, and mi...</li>
<li><a
href="5f643d3c94"><code>5f643d3</code></a>
chore: update license files for <code>@​actions/artifact</code><a
href="https://github.com/5"><code>@​5</code></a>.0.1 dependencies</li>
<li><a
href="1df1684032"><code>1df1684</code></a>
chore: update package-lock.json with <code>@​actions/artifact</code><a
href="https://github.com/5"><code>@​5</code></a>.0.1</li>
<li><a
href="b5b1a91840"><code>b5b1a91</code></a>
fix: update <code>@​actions/artifact</code> to ^5.0.0 for Node.js 24
punycode fix</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/upload-artifact/compare/v5...v6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/upload-artifact&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>
2026-01-10 00:52:06 +02:00
dependabot[bot]
1e4d27ec2d
Bump io.netty:netty-bom from 4.2.7.Final to 4.2.9.Final (#468)
Bumps [io.netty:netty-bom](https://github.com/netty/netty) from
4.2.7.Final to 4.2.9.Final.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a853a399b5"><code>a853a39</code></a>
[maven-release-plugin] prepare release netty-4.2.9.Final</li>
<li><a
href="6d29a4f343"><code>6d29a4f</code></a>
Add missing publishing config for the bom module</li>
<li><a
href="ea911deea6"><code>ea911de</code></a>
Optimize HTTP startline validation (<a
href="https://redirect.github.com/netty/netty/issues/16030">#16030</a>)</li>
<li><a
href="d7108a36bb"><code>d7108a3</code></a>
LocalChannel: Reduce GC by re-using same Runnable (<a
href="https://redirect.github.com/netty/netty/issues/16014">#16014</a>)</li>
<li><a
href="207afcbbc7"><code>207afcb</code></a>
Fix MpscIntQueue bug (<a
href="https://redirect.github.com/netty/netty/issues/16023">#16023</a>)</li>
<li><a
href="27bfd56461"><code>27bfd56</code></a>
Fix HTTP startline validation (<a
href="https://redirect.github.com/netty/netty/issues/16022">#16022</a>)</li>
<li><a
href="40ab4184d8"><code>40ab418</code></a>
[maven-release-plugin] prepare for next development iteration</li>
<li><a
href="e2d9d11c67"><code>e2d9d11</code></a>
[maven-release-plugin] prepare release netty-4.2.8.Final</li>
<li><a
href="2f2e437f10"><code>2f2e437</code></a>
Merge commit from fork</li>
<li><a
href="d011634cf2"><code>d011634</code></a>
Build fixes to allow using the epoll native transport on Android (<a
href="https://redirect.github.com/netty/netty/issues/16016">#16016</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/netty/netty/compare/netty-4.2.7.Final...netty-4.2.9.Final">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=io.netty:netty-bom&package-manager=gradle&previous-version=4.2.7.Final&new-version=4.2.9.Final)](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>
2026-01-10 00:01:31 +02:00
dependabot[bot]
fb69538129
Bump org.jetbrains.kotlinx.kover from 0.9.3 to 0.9.4 (#466)
Bumps
[org.jetbrains.kotlinx.kover](https://github.com/Kotlin/kotlinx-kover)
from 0.9.3 to 0.9.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Kotlin/kotlinx-kover/releases">org.jetbrains.kotlinx.kover's
releases</a>.</em></p>
<blockquote>
<h2>0.9.4</h2>
<h2>Kover Gradle Plugin</h2>
<h3>Bugfixes</h3>
<ul>
<li><a
href="https://redirect.github.com/Kotlin/kotlinx-kover/issues/776"><code>[#776](https://github.com/Kotlin/kotlinx-kover/issues/776)</code></a>
Added support for Android Gradle Plugin 9.0.0</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Kotlin/kotlinx-kover/blob/main/CHANGELOG.md">org.jetbrains.kotlinx.kover's
changelog</a>.</em></p>
<blockquote>
<h1>0.9.4 / 2025-12-09</h1>
<h2>Kover Gradle Plugin</h2>
<h3>Bugfixes</h3>
<ul>
<li><a
href="https://redirect.github.com/Kotlin/kotlinx-kover/issues/776"><code>[#776](https://github.com/Kotlin/kotlinx-kover/issues/776)</code></a>
Added support for Android Gradle Plugin 9.0.0</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="34e42b95d9"><code>34e42b9</code></a>
Release 0.9.4</li>
<li><a
href="298bf8b95b"><code>298bf8b</code></a>
Added support for Android Gradle Plugin 9.0.0</li>
<li><a
href="0ba9e9e68e"><code>0ba9e9e</code></a>
Aligned filtering for JaCoCo reports with Kover reporting</li>
<li>See full diff in <a
href="https://github.com/Kotlin/kotlinx-kover/compare/v0.9.3...v0.9.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.jetbrains.kotlinx.kover&package-manager=gradle&previous-version=0.9.3&new-version=0.9.4)](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>
2026-01-09 23:44:27 +02:00
dependabot[bot]
edc7f47a65
Bump org.openapi.generator from 7.17.0 to 7.18.0 (#469)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps org.openapi.generator from 7.17.0 to 7.18.0.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.openapi.generator&package-manager=gradle&previous-version=7.17.0&new-version=7.18.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-09 23:23:05 +02:00
dependabot[bot]
960b38f923
Bump io.github.oshai:kotlin-logging from 7.0.13 to 7.0.14 (#471)
Bumps
[io.github.oshai:kotlin-logging](https://github.com/oshai/kotlin-logging)
from 7.0.13 to 7.0.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/oshai/kotlin-logging/releases">io.github.oshai:kotlin-logging's
releases</a>.</em></p>
<blockquote>
<h2>7.0.14</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump actions/upload-pages-artifact from 3 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/oshai/kotlin-logging/pull/559">oshai/kotlin-logging#559</a></li>
<li>Bump actions/setup-java from 4 to 5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/oshai/kotlin-logging/pull/560">oshai/kotlin-logging#560</a></li>
<li>Upgrade Gradle wrapper to 8.14.3 by <a
href="https://github.com/Copilot"><code>@​Copilot</code></a> in <a
href="https://redirect.github.com/oshai/kotlin-logging/pull/563">oshai/kotlin-logging#563</a></li>
<li>Bump com.android.library from 8.12.0 to 8.12.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/oshai/kotlin-logging/pull/561">oshai/kotlin-logging#561</a></li>
<li>Bump jackson from 2.19.2 to 2.20.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/oshai/kotlin-logging/pull/565">oshai/kotlin-logging#565</a></li>
<li>Bump com.android.library from 8.12.2 to 8.13.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/oshai/kotlin-logging/pull/564">oshai/kotlin-logging#564</a></li>
<li>Bump org.graalvm.sdk:nativeimage from 24.2.2 to 25.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/oshai/kotlin-logging/pull/568">oshai/kotlin-logging#568</a></li>
<li>Bump org.mockito:mockito-core from 5.19.0 to 5.20.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/oshai/kotlin-logging/pull/567">oshai/kotlin-logging#567</a></li>
<li>Bump log4j from 2.25.1 to 2.25.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/oshai/kotlin-logging/pull/572">oshai/kotlin-logging#572</a></li>
<li>Bump actions/cache from 4.2.4 to 4.3.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/oshai/kotlin-logging/pull/571">oshai/kotlin-logging#571</a></li>
<li>Bump com.diffplug.spotless from 7.2.1 to 8.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/oshai/kotlin-logging/pull/570">oshai/kotlin-logging#570</a></li>
<li>Bump gradle/actions from 4 to 5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/oshai/kotlin-logging/pull/574">oshai/kotlin-logging#574</a></li>
<li>Bump ch.qos.logback:logback-classic from 1.5.18 to 1.5.19 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/oshai/kotlin-logging/pull/573">oshai/kotlin-logging#573</a></li>
<li>Change LogbackLogEvent to implement ILoggingEvent by <a
href="https://github.com/oshai"><code>@​oshai</code></a> in <a
href="https://redirect.github.com/oshai/kotlin-logging/pull/583">oshai/kotlin-logging#583</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Copilot"><code>@​Copilot</code></a> made
their first contribution in <a
href="https://redirect.github.com/oshai/kotlin-logging/pull/563">oshai/kotlin-logging#563</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/oshai/kotlin-logging/compare/7.0.13...7.0.14">https://github.com/oshai/kotlin-logging/compare/7.0.13...7.0.14</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e887dd079a"><code>e887dd0</code></a>
bump version to 7.0.15</li>
<li><a
href="a1a827741e"><code>a1a8277</code></a>
Change LogbackLogEvent to implement ILoggingEvent (<a
href="https://redirect.github.com/oshai/kotlin-logging/issues/583">#583</a>)</li>
<li><a
href="18d3337adf"><code>18d3337</code></a>
Update README with new badges and contributor note</li>
<li><a
href="8ed0b38640"><code>8ed0b38</code></a>
Bump ch.qos.logback:logback-classic from 1.5.18 to 1.5.19</li>
<li><a
href="d104a3e8d4"><code>d104a3e</code></a>
Bump gradle/actions from 4 to 5</li>
<li><a
href="56a73833e0"><code>56a7383</code></a>
Bump com.diffplug.spotless from 7.2.1 to 8.0.0</li>
<li><a
href="22f8266957"><code>22f8266</code></a>
Bump actions/cache from 4.2.4 to 4.3.0</li>
<li><a
href="88292ccf90"><code>88292cc</code></a>
Bump log4j from 2.25.1 to 2.25.2</li>
<li><a
href="7ba3ab888a"><code>7ba3ab8</code></a>
Bump org.mockito:mockito-core from 5.19.0 to 5.20.0</li>
<li><a
href="be06b6a09c"><code>be06b6a</code></a>
Bump org.graalvm.sdk:nativeimage from 24.2.2 to 25.0.0</li>
<li>Additional commits viewable in <a
href="https://github.com/oshai/kotlin-logging/compare/7.0.13...7.0.14">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=io.github.oshai:kotlin-logging&package-manager=gradle&previous-version=7.0.13&new-version=7.0.14)](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>
2026-01-09 23:22:17 +02:00
Konstantin Pavlov
288d46cdde
fix: Update/Fix build workflow (#474)
# Update/Fix build workflow

- `macos-latest-xlarge` is no longer available. Switch to cheaper
runner: `macos-latest-xlarge` -> `macos-latest`
- Refactor build to run matrix job under Linux and macOS
- Tune caching GH caching
- Add junit and logger properties
- Downgrade Junit to 5.14.2
- Extract `ProcessBuilder` creation logic into helper functions
- Disable `StdioClientTransportTest` on windows temporary

## How Has This Been Tested?
CI

## Breaking Changes
Functionally - no. Outdated/broken TypeScript tests were disabled

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] CI Update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

## Additional context
GitHub actions workflows were blocked because the selected
"macos-latest-xlarge" runner, which is not available for the free
open-source plan. With "macos-latest" workflow works.
2026-01-09 22:48:31 +02:00
Konstantin Pavlov
0ba61060c2
Update README.md
conformance tests badge
2026-01-09 21:00:14 +02:00
Pavel Gorgulov
363eab6327
Fix kotlin-mcp-server sample (#459) 2025-12-08 23:25:55 +02:00
dependabot[bot]
e22bbb9649
Bump actions/setup-node from 4 to 6 (#453)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4
to 6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-node/releases">actions/setup-node's
releases</a>.</em></p>
<blockquote>
<h2>v6.0.0</h2>
<h2>What's Changed</h2>
<p><strong>Breaking Changes</strong></p>
<ul>
<li>Limit automatic caching to npm, update workflows and documentation
by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1374">actions/setup-node#1374</a></li>
</ul>
<p><strong>Dependency Upgrades</strong></p>
<ul>
<li>Upgrade ts-jest from 29.1.2 to 29.4.1 and document breaking changes
in v5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-node/pull/1336">#1336</a></li>
<li>Upgrade prettier from 2.8.8 to 3.6.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-node/pull/1334">#1334</a></li>
<li>Upgrade actions/publish-action from 0.3.0 to 0.4.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-node/pull/1362">#1362</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-node/compare/v5...v6.0.0">https://github.com/actions/setup-node/compare/v5...v6.0.0</a></p>
<h2>v5.0.0</h2>
<h2>What's Changed</h2>
<h3>Breaking Changes</h3>
<ul>
<li>Enhance caching in setup-node with automatic package manager
detection by <a
href="https://github.com/priya-kinthali"><code>@​priya-kinthali</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1348">actions/setup-node#1348</a></li>
</ul>
<p>This update, introduces automatic caching when a valid
<code>packageManager</code> field is present in your
<code>package.json</code>. This aims to improve workflow performance and
make dependency management more seamless.
To disable this automatic caching, set <code>package-manager-cache:
false</code></p>
<pre lang="yaml"><code>steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
  with:
    package-manager-cache: false
</code></pre>
<ul>
<li>Upgrade action to use node24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1325">actions/setup-node#1325</a></li>
</ul>
<p>Make sure your runner is on version v2.327.1 or later to ensure
compatibility with this release. <a
href="https://github.com/actions/runner/releases/tag/v2.327.1">See
Release Notes</a></p>
<h3>Dependency Upgrades</h3>
<ul>
<li>Upgrade <code>@​octokit/request-error</code> and
<code>@​actions/github</code> by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-node/pull/1227">actions/setup-node#1227</a></li>
<li>Upgrade uuid from 9.0.1 to 11.1.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-node/pull/1273">actions/setup-node#1273</a></li>
<li>Upgrade undici from 5.28.5 to 5.29.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-node/pull/1295">actions/setup-node#1295</a></li>
<li>Upgrade form-data to bring in fix for critical vulnerability by <a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-node/pull/1332">actions/setup-node#1332</a></li>
<li>Upgrade actions/checkout from 4 to 5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-node/pull/1345">actions/setup-node#1345</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/priya-kinthali"><code>@​priya-kinthali</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1348">actions/setup-node#1348</a></li>
<li><a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1325">actions/setup-node#1325</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-node/compare/v4...v5.0.0">https://github.com/actions/setup-node/compare/v4...v5.0.0</a></p>
<h2>v4.4.0</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="395ad32622"><code>395ad32</code></a>
Bump js-yaml from 3.14.1 to 3.14.2 (<a
href="https://redirect.github.com/actions/setup-node/issues/1435">#1435</a>)</li>
<li><a
href="a4d2e2bbca"><code>a4d2e2b</code></a>
Bump actions/checkout from 5 to 6 (<a
href="https://redirect.github.com/actions/setup-node/issues/1439">#1439</a>)</li>
<li><a
href="b9b25d45f7"><code>b9b25d4</code></a>
Remove always-auth configuration handling from action (<a
href="https://redirect.github.com/actions/setup-node/issues/1436">#1436</a>)</li>
<li><a
href="633bb92bc0"><code>633bb92</code></a>
Bump <code>@​actions/cache</code> from 4.0.3 to 4.1.0 (<a
href="https://redirect.github.com/actions/setup-node/issues/1384">#1384</a>)</li>
<li><a
href="dda4788290"><code>dda4788</code></a>
Add example for restore-only cache in documentation (<a
href="https://redirect.github.com/actions/setup-node/issues/1419">#1419</a>)</li>
<li><a
href="2028fbc5c2"><code>2028fbc</code></a>
Limit automatic caching to npm, update workflows and documentation (<a
href="https://redirect.github.com/actions/setup-node/issues/1374">#1374</a>)</li>
<li><a
href="13427813f7"><code>1342781</code></a>
Bump actions/publish-action from 0.3.0 to 0.4.0 (<a
href="https://redirect.github.com/actions/setup-node/issues/1362">#1362</a>)</li>
<li><a
href="89d709d423"><code>89d709d</code></a>
Bump prettier from 2.8.8 to 3.6.2 (<a
href="https://redirect.github.com/actions/setup-node/issues/1334">#1334</a>)</li>
<li><a
href="cd2651c462"><code>cd2651c</code></a>
Bump ts-jest from 29.1.2 to 29.4.1 (<a
href="https://redirect.github.com/actions/setup-node/issues/1336">#1336</a>)</li>
<li><a
href="a0853c2454"><code>a0853c2</code></a>
Bump actions/checkout from 4 to 5 (<a
href="https://redirect.github.com/actions/setup-node/issues/1345">#1345</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/setup-node/compare/v4...v6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-node&package-manager=github_actions&previous-version=4&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-12-08 22:21:12 +02:00
Artem Bukhonov
d539c9697f
Properly check content type. Should fix #450 (#451)
<!-- Provide a brief summary of your changes -->

## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->

## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->

## Breaking Changes
<!-- Will users need to update their code or configurations? -->

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
2025-12-08 18:10:39 +02:00
Konstantin Pavlov
9653e306fe
Revert publishing junit-report comments (#458)
# Revert publishing junit-report comments

Build on Forks is broken now, because Junit-Reports plugin can't write
comments.

<!-- Provide a brief summary of your changes -->

## Motivation and Context
Revert [this
change](https://github.com/modelcontextprotocol/kotlin-sdk/pull/442/files#diff-5c3fa597431eda03ac3339ae6bf7f05e1a50d6fc7333679ec38e21b337cb6721)

## How Has This Been Tested?
CI

## Breaking Changes
No

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
2025-12-08 17:25:28 +02:00
Konstantin Pavlov
0d3494b26a
Update GitHub Actions workflow (#452)
Update GitHub Actions workflow

- Rename `validate-pr` job to `build`
- Update `comment` and `updateComment` parameters to be false on forks

<!-- Provide a brief summary of your changes -->

## Motivation and Context

mikepenz/action-junit-report GH Action can't create/update comments on
forks

## How Has This Been Tested?
CI

## Breaking Changes
No

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
2025-12-08 14:20:35 +02:00
Maria Tigina
274089a6da
Fix tests for notifications (#446)
<!-- Provide a brief summary of your changes -->

## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->

## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->

## Breaking Changes
<!-- Will users need to update their code or configurations? -->

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
2025-12-08 14:09:41 +02:00
Konstantin Pavlov
1744e16d86
Fix flaky StdioClientTransportErrorHandlingTest (#457)
## Changes
Fix flaky StdioClientTransportErrorHandlingTest

Use non-empty buffer for reliability

## How Has This Been Tested?
Unit test

## Breaking Changes
<!-- Will users need to update their code or configurations? -->

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
2025-12-08 13:57:08 +02:00
dependabot[bot]
64f2d1864b
Bump io.mockk:mockk from 1.14.6 to 1.14.7 (#455)
Bumps [io.mockk:mockk](https://github.com/mockk/mockk) from 1.14.6 to
1.14.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mockk/mockk/releases">io.mockk:mockk's
releases</a>.</em></p>
<blockquote>
<h2>v1.14.7</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: normalize value class arguments in EqMatcher for consistent
comparison by <a
href="https://github.com/edwardmp"><code>@​edwardmp</code></a> in <a
href="https://redirect.github.com/mockk/mockk/pull/1440">mockk/mockk#1440</a></li>
<li>Add configurable logging to withArg &amp; withNullableArg by <a
href="https://github.com/OsaSoft"><code>@​OsaSoft</code></a> in <a
href="https://redirect.github.com/mockk/mockk/pull/1441">mockk/mockk#1441</a></li>
<li>docs(readme): document suppressing superclass calls by <a
href="https://github.com/ch200203"><code>@​ch200203</code></a> in <a
href="https://redirect.github.com/mockk/mockk/pull/1444">mockk/mockk#1444</a></li>
<li>Fix for issue <a
href="https://redirect.github.com/mockk/mockk/issues/1103">#1103</a>. by
<a href="https://github.com/sdetilly"><code>@​sdetilly</code></a> in <a
href="https://redirect.github.com/mockk/mockk/pull/1449">mockk/mockk#1449</a></li>
<li>Fix configuration option example for restricted classes by <a
href="https://github.com/TWiStErRob"><code>@​TWiStErRob</code></a> in <a
href="https://redirect.github.com/mockk/mockk/pull/1465">mockk/mockk#1465</a></li>
<li>Fix InaccessibleObjectException when spying on JDK interfaces on JDK
16+ by <a href="https://github.com/Copilot"><code>@​Copilot</code></a>
in <a
href="https://redirect.github.com/mockk/mockk/pull/1457">mockk/mockk#1457</a></li>
<li>Fix Java 11 compatibility: replace Random.nextLong(long, long) with
Java 8 compatible alternative by <a
href="https://github.com/Copilot"><code>@​Copilot</code></a> in <a
href="https://redirect.github.com/mockk/mockk/pull/1456">mockk/mockk#1456</a></li>
<li>Add optional restricted mock system property by <a
href="https://github.com/nishatoma"><code>@​nishatoma</code></a> in <a
href="https://redirect.github.com/mockk/mockk/pull/1454">mockk/mockk#1454</a></li>
<li>Fix StackOverflowError when mocking methods returning ArrayList by
<a href="https://github.com/Copilot"><code>@​Copilot</code></a> in <a
href="https://redirect.github.com/mockk/mockk/pull/1464">mockk/mockk#1464</a></li>
<li>Change JUnit 4/5 dependencies from implementation to compileOnly by
<a href="https://github.com/Copilot"><code>@​Copilot</code></a> in <a
href="https://redirect.github.com/mockk/mockk/pull/1455">mockk/mockk#1455</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/edwardmp"><code>@​edwardmp</code></a>
made their first contribution in <a
href="https://redirect.github.com/mockk/mockk/pull/1440">mockk/mockk#1440</a></li>
<li><a href="https://github.com/OsaSoft"><code>@​OsaSoft</code></a> made
their first contribution in <a
href="https://redirect.github.com/mockk/mockk/pull/1441">mockk/mockk#1441</a></li>
<li><a href="https://github.com/sdetilly"><code>@​sdetilly</code></a>
made their first contribution in <a
href="https://redirect.github.com/mockk/mockk/pull/1449">mockk/mockk#1449</a></li>
<li><a href="https://github.com/Copilot"><code>@​Copilot</code></a> made
their first contribution in <a
href="https://redirect.github.com/mockk/mockk/pull/1457">mockk/mockk#1457</a></li>
<li><a href="https://github.com/nishatoma"><code>@​nishatoma</code></a>
made their first contribution in <a
href="https://redirect.github.com/mockk/mockk/pull/1454">mockk/mockk#1454</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mockk/mockk/compare/1.14.6...1.14.7">https://github.com/mockk/mockk/compare/1.14.6...1.14.7</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3b99349b69"><code>3b99349</code></a>
Version bump</li>
<li><a
href="d0e14bb764"><code>d0e14bb</code></a>
Merge pull request <a
href="https://redirect.github.com/mockk/mockk/issues/1455">#1455</a>
from mockk/copilot/remove-transitive-junit-dependency</li>
<li><a
href="9372ca62b8"><code>9372ca6</code></a>
Merge pull request <a
href="https://redirect.github.com/mockk/mockk/issues/1464">#1464</a>
from mockk/copilot/fix-stackoverflow-error-mockk</li>
<li><a
href="73736a6ecd"><code>73736a6</code></a>
Address code review feedback for parseParamTypes</li>
<li><a
href="6866dd0c75"><code>6866dd0</code></a>
Merge pull request <a
href="https://redirect.github.com/mockk/mockk/issues/1454">#1454</a>
from nishatoma/add-strict-mocking-system-property</li>
<li><a
href="ea99f8804b"><code>ea99f88</code></a>
Merge pull request <a
href="https://redirect.github.com/mockk/mockk/issues/1456">#1456</a>
from mockk/copilot/fix-mockk-compatibility-issue</li>
<li><a
href="b7b72de983"><code>b7b72de</code></a>
Merge pull request <a
href="https://redirect.github.com/mockk/mockk/issues/1457">#1457</a>
from mockk/copilot/fix-inaccessibleobjectexception</li>
<li><a
href="08d1d1d8e4"><code>08d1d1d</code></a>
Address comments</li>
<li><a
href="7681de2aaa"><code>7681de2</code></a>
Merge pull request <a
href="https://redirect.github.com/mockk/mockk/issues/1465">#1465</a>
from TWiStErRob/patch-2</li>
<li><a
href="54e6154410"><code>54e6154</code></a>
Fix configuration option example for restricted classes</li>
<li>Additional commits viewable in <a
href="https://github.com/mockk/mockk/compare/1.14.6...1.14.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=io.mockk:mockk&package-manager=gradle&previous-version=1.14.6&new-version=1.14.7)](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-08 12:10:26 +02:00
Pavel Gorgulov
10a0b67204
[WIP] StreamableHttpServerTransport implementation (#449)
# [WIP] StreamableHttpServerTransport implementation

- Implement StreamableHttpServerTransport for MCP spec
- Support both SSE streaming and direct HTTP JSON responses
- Add event store interface for resumability

> [!IMPORTANT]  
> The work is in progress. StreamableHttpServerTransport is not
production-ready yet!!!

Based on #235 

## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->

## Breaking Changes
None

## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
2025-12-05 19:51:19 +02:00
Konstantin Pavlov
2dd4688323
Prepare for next development iteration (#447)
# Prepare for next development iteration

Bump mcp kotlin-sdk to 0.8.1

## How Has This Been Tested?
Regression


## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] CI update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
2025-12-04 18:22:48 +02:00
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