fixes #573 fixes #574 fixes #708 - Handlers ran on `Dispatchers.IO` → now `Dispatchers.Default`, configurable via `handlerDispatcher`. - Reader/writer dispatcher exposed as `ioDispatcher` (default `IODispatcher.limitedParallelism(2)`). - Optional caller-supplied `CoroutineScope` so the pipeline isn't detached from the caller's tree. - `CancellationException` consistently rethrown across all pumps. - Unbounded channels → bounded with graceful drain on close (in-flight outbound flushed before `onClose`). - Input `Source` now closed on natural EOF / reader error (was leaking for non-`System.in` sources). - Race between `start()` and `close()` fixed via 3-state CAS + `setupComplete` barrier replacing `AtomicBoolean`. ## How Has This Been Tested? unit and integration tests ## Breaking Changes - Handlers default to `Dispatchers.Default` (was `Dispatchers.IO`). Override with `handlerDispatcher = Dispatchers.IO` if your handlers perform blocking I/O. - `send()` suspends under back-pressure instead of buffering unbounded. - `StdioServerTransport(input, output)` ctor is `@Deprecated` (WARNING) in favor of `StdioServerTransport(input, output) { ... }`. Still binary-compatible. ## Types of changes - [x] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed
63 lines
809 B
Text
63 lines
809 B
Text
.gradle
|
|
build/
|
|
!gradle/wrapper/gradle-wrapper.jar
|
|
!**/src/main/**/build/
|
|
!**/src/test/**/build/
|
|
|
|
### IntelliJ IDEA ###
|
|
.idea/modules.xml
|
|
.idea/misc.xml
|
|
.idea/jarRepositories.xml
|
|
.idea/compiler.xml
|
|
.idea/libraries/
|
|
.idea
|
|
*.iws
|
|
*.iml
|
|
*.ipr
|
|
out/
|
|
!**/src/main/**/out/
|
|
!**/src/test/**/out/
|
|
!.idea/icon.png
|
|
!.idea/detekt.xml
|
|
!.idea/externalDependencies.xml
|
|
|
|
### Kotlin ###
|
|
.kotlin
|
|
kotlin-js-store
|
|
yarn.lock
|
|
|
|
### Eclipse ###
|
|
.apt_generated
|
|
.classpath
|
|
.factorypath
|
|
.project
|
|
.settings
|
|
.springBeans
|
|
.sts4-cache
|
|
bin/
|
|
!**/src/main/**/bin/
|
|
!**/src/test/**/bin/
|
|
|
|
### NetBeans ###
|
|
/nbproject/private/
|
|
/nbbuild/
|
|
/dist/
|
|
/nbdist/
|
|
/.nb-gradle/
|
|
|
|
### VS Code ###
|
|
.vscode/
|
|
|
|
### Mac OS ###
|
|
.DS_Store
|
|
|
|
### Node.js ###
|
|
node_modules
|
|
dist
|
|
|
|
### SWE agents ###
|
|
.claude/
|
|
.junie/
|
|
|
|
### Conformance test results ###
|
|
conformance-test/results/
|