Changelog

Release notes for packages.

October 2026

  1. connect-ktor@0.4.1

    Align unary Connect errors and validate GET requests

    Unary POST and Connect GET now return consistent Connect errors and preserve error metadata. Connect GET also validates decoded requests. Validation failures and unexpected handler exceptions reach the application's Ktor StatusPages configuration so applications can choose their responses.

    PR #380

  2. connect-ktor@0.4.1

    Dependencies

    • chore(deps): update dependency @types/node to v26.6.1 by @renovate[bot] in PR #382
    • chore(deps): update dependency lucide-react to v1.47.0 by @renovate[bot] in PR #384
    • chore(deps): update docs-site by @renovate[bot] in PR #386
    • chore(deps): update kotlin monorepo to v2.4.20 by @renovate[bot] in PR #359
    • chore(deps): update docs-site by @renovate[bot] in PR #388
    • chore(deps): update dependency connectrpc/kotlin to v0.9.0 by @renovate[bot] in PR #389
    • chore(deps): update docs-site by @renovate[bot] in PR #390
    • chore(deps): update pnpm/setup action to v3 by @renovate[bot] in PR #375
    • chore(deps): update github/codeql-action action to v4.38.2 by @renovate[bot] in PR #394
    • chore(deps): update dependency golangci-lint to v2.14.0 by @renovate[bot] in PR #395
    • chore(deps): update gradle/actions action to v6.4.0 by @renovate[bot] in PR #399
    • chore(deps): update dependency lefthook to v2.1.16 by @renovate[bot] in PR #401
    • fix(deps): update dependency org.slf4j:slf4j-simple to v2.0.20 by @renovate[bot] in PR #391
    • fix(deps): update spotless to v8.10.3 by @renovate[bot] in PR #397
    • chore(deps): update anchore/sbom-action action to v0.24.3 by @renovate[bot] in PR #403
    • chore(deps): update dependency lefthook to v2.1.17 by @renovate[bot] in PR #404
    • chore(deps): update actions/upload-artifact action to v7.0.2 by @renovate[bot] in PR #405
    • chore(deps): update dependency org.cyclonedx.bom to v3.5.0 by @renovate[bot] in PR #406
    • chore(deps): update dependency go to v1.27.2 by @renovate[bot] in PR #407
    • chore(deps): update github/codeql-action action to v4.38.3 by @renovate[bot] in PR #410
    • chore(deps): update dependency org.cyclonedx.bom to v3.5.1 by @renovate[bot] in PR #409
    • chore(deps): update dependency org.jetbrains.kotlin.jvm to v2.4.21 by @renovate[bot] in PR #408
    • chore(deps): update gradle to v9.8.1 by @renovate[bot] in PR #396
    • chore(deps): update dependency lefthook to v2.2.1 by @renovate[bot] in PR #412
    • fix(deps): update spotless to v8.10.4 by @renovate[bot] in PR #411
    • chore(deps): update docs-site by @renovate[bot] in PR #393
    • chore(deps): update protobuf monorepo to v36 by @renovate[bot] in PR #400
    • chore(deps): update jdx/mise-action action to v5 by @renovate[bot] in PR #402

September 2026

  1. connect-ktor@0.4.0

    Support Connect server-streaming RPCs

    Server-streaming RPCs (rpc X(Req) returns (stream Res)) are now served end to end. The code generator emits handlers that return a cold Flow<Res>, and handleServerStream writes each emitted message as an envelope frame followed by an end-of-stream frame. Response headers are flushed before the first message, a ConnectException thrown by the flow becomes the end-of-stream error, and trailers can be set through the new call.connectResponseTrailers(). When a client disconnects, the handler's flow collector is cancelled instead of the failure being swallowed.

    Services with server-streaming methods in their .proto will see a new member on the generated handler interface — those methods used to be skipped by the generator.

    PR #278

  2. connect-ktor@0.4.0

    Support Connect bidirectional-streaming RPCs

    Connect-Ktor now generates and serves bidirectional-streaming RPCs. Half-duplex calls work on CIO and Netty, while Netty over HTTP/2 supports full-duplex request and response interleaving.

    Generated handlers accept a Flow<Req> and return a Flow<Res>. The streaming path handles envelope framing, request validation, per-message size limits, headers, trailers, deadlines, and cancellation.

    PR #348

  3. connect-ktor@0.4.0

    Configure streaming receive limits with a route-scoped plugin

    Install ConnectStreaming on a Ktor route to configure maxMessageSize for client, server, and bidirectional streaming request messages. Child routes can override the setting; explicit handler limits take precedence. Without the plugin, the limit remains 4 MiB. Unary request limits and generated source are unchanged. Recompile existing generated source against the updated library to use the plugin.

  4. connect-ktor@0.4.0

    Dependencies

    • chore(deps): update docs-site by @renovate[bot] in PR #330
    • chore(deps): update jdx/mise-action action to v4.3.0 by @renovate[bot] in PR #331
    • chore(deps): update anchore/sbom-action action to v0.24.1 by @renovate[bot] in PR #332
    • chore(deps): update dependency golangci-lint to v2.13.2 by @renovate[bot] in PR #333
    • chore(deps): update dependency lefthook to v2.1.12 by @renovate[bot] in PR #334
    • chore(deps): update github/codeql-action action to v4.37.9 by @renovate[bot] in PR #335
    • chore(deps): update anchore/sbom-action action to v0.24.2 by @renovate[bot] in PR #336
    • chore(deps): update docs-site by @renovate[bot] in PR #337
    • chore(deps): update pnpm/setup action to v2.1.0 by @renovate[bot] in PR #339
    • fix(deps): update spotless to v8.10.1 by @renovate[bot] in PR #340
    • chore(deps): update zizmorcore/zizmor-action action to v0.6.3 by @renovate[bot] in PR #342
    • fix(deps): update dependency org.jetbrains.kotlin:kotlin-gradle-plugin to v2.4.20 [security] by @renovate[bot] in PR #341
    • fix(deps): update protobuf monorepo to v4.36.1 by @renovate[bot] in PR #343
    • chore(deps): update dependency go to v1.27.1 by @renovate[bot] in PR #345
    • chore(deps): update actions/deploy-pages action to v5.0.1 by @renovate[bot] in PR #344
    • chore(deps): update docs-site by @renovate[bot] in PR #346
    • fix(deps): update dependency build.buf:protovalidate to v1.3.0 by @renovate[bot] in PR #347
    • chore(deps): update github/codeql-action action to v4.38.0 by @renovate[bot] in PR #349
    • fix(deps): update dependency com.squareup.okio:okio to v3.18.2 by @renovate[bot] in PR #350
    • fix(deps): update dependency org.slf4j:slf4j-simple to v2.0.19 by @renovate[bot] in PR #351
    • fix(deps): update spotless to v8.10.2 by @renovate[bot] in PR #352
    • chore(deps): update docs-site by @renovate[bot] in PR #353
    • chore(deps): update docs-site (major) by @renovate[bot] in PR #355
    • chore(deps): update actions/setup-java action to v6 by @renovate[bot] in PR #354
    • chore(deps): update docs-site by @renovate[bot] in PR #360
    • chore(deps): update docs-site by @renovate[bot] in PR #363
    • chore(deps): update docs-site by @renovate[bot] in PR #365
    • chore(deps): update actions/setup-java action to v6.0.1 by @renovate[bot] in PR #364
    • chore(deps): update docs-site to v16.15.10 by @renovate[bot] in PR #366
    • chore(deps): update zizmorcore/zizmor-action action to v0.6.4 by @renovate[bot] in PR #367
    • chore(deps): update dependency lefthook to v2.1.14 by @renovate[bot] in PR #368
    • chore(deps): update docs-site by @renovate[bot] in PR #371
    • chore(deps): update github/codeql-action action to v4.38.1 by @renovate[bot] in PR #372
    • chore(deps): update dependency buf to v1.73.0 by @renovate[bot] in PR #370
    • chore(deps): update docs-site by @renovate[bot] in PR #376
    • fix(deps): update kotest to v6.2.5 by @renovate[bot] in PR #369
    • fix(deps): update protobuf monorepo to v4.36.2 by @renovate[bot] in PR #373
    • fix(deps): update ktor monorepo to v3.6.0 by @renovate[bot] in PR #374
  5. connect-ktor@0.3.1

    Dependencies

    • chore(deps): Bump pnpm/action-setup from 4.2.0 to 6.0.9 by @dependabot[bot] in PR #280
    • chore(deps): Bump lucide-react from 1.26.0 to 1.27.0 in the docs-site group by @dependabot[bot] in PR #279
    • chore(deps): Bump spotless from 8.8.0 to 8.9.0 by @dependabot[bot] in PR #282
    • chore(deps): Bump com.squareup.okio:okio from 3.18.0 to 3.18.1 by @dependabot[bot] in PR #283
    • chore(deps): Bump actions/attest from 4.2.0 to 4.2.1 by @dependabot[bot] in PR #284
    • chore(deps): Bump the codeql-action group with 3 updates by @dependabot[bot] in PR #285
    • chore(deps): Bump actions/setup-java from 5.6.0 to 5.7.0 by @dependabot[bot] in PR #287
    • chore(deps): Bump lucide-react from 1.27.0 to 1.28.0 in the docs-site group by @dependabot[bot] in PR #286
    • chore(deps): Bump ktor from 3.5.1 to 3.5.2 by @dependabot[bot] in PR #288
    • chore(deps): Bump the codeql-action group with 3 updates by @dependabot[bot] in PR #290
    • chore(deps): Bump zizmorcore/zizmor-action from 0.6.1 to 0.6.2 by @dependabot[bot] in PR #291
    • chore(deps): Bump gradle/actions/wrapper-validation from 6.2.0 to 6.3.0 by @dependabot[bot] in PR #293
    • chore(deps): Bump jdx/mise-action from 4.2.3 to 4.2.4 by @dependabot[bot] in PR #292
    • chore(deps): Bump actions/attest from 4.2.1 to 4.2.2 by @dependabot[bot] in PR #296
    • chore(deps): Bump the codeql-action group with 3 updates by @dependabot[bot] in PR #295
    • chore(deps): Bump pnpm/setup from 2.0.0 to 2.0.1 by @dependabot[bot] in PR #301
    • chore(deps): Bump jdx/mise-action from 4.2.4 to 4.2.5 by @dependabot[bot] in PR #310
    • chore(deps): Bump org.cyclonedx.bom from 3.3.0 to 3.4.1 by @dependabot[bot] in PR #308
    • chore(deps): Bump the codeql-action group with 3 updates by @dependabot[bot] in PR #309
    • chore(deps): Bump the docs-site group across 1 directory with 8 updates by @dependabot[bot] in PR #305
    • chore(deps): Bump google.golang.org/protobuf from 1.36.11 to 1.36.12 in /protoc-gen-connect-ktor by @dependabot[bot] in PR #307
    • chore(deps): Bump org.junit.jupiter:junit-jupiter-engine from 6.1.2 to 6.1.3 by @dependabot[bot] in PR #303
    • chore(deps): Bump pnpm/setup from 2.0.1 to 2.0.2 by @dependabot[bot] in PR #304
    • chore(deps): update docs-site by @renovate[bot] in PR #313
    • chore(deps): update pnpm to v11.22.0 by @renovate[bot] in PR #317
    • fix(deps): update dependency com.squareup.okhttp3:okhttp to v5.5.0 by @renovate[bot] in PR #318
    • chore(deps): update dependency go to v1.27.0 by @renovate[bot] in PR #320
    • chore(deps): update docs-site by @renovate[bot] in PR #319
    • chore(deps): update gradle to v9.7.1 by @renovate[bot] in PR #314
    • chore(deps): update dependency lefthook to v2.1.11 by @renovate[bot] in PR #321
    • chore(deps): update github/codeql-action action to v4.37.8 by @renovate[bot] in PR #322
    • fix(deps): update kotest to v6 by @renovate[bot] in PR #316
    • chore(deps): update dependency golangci-lint to v2.13.1 by @renovate[bot] in PR #323
    • chore(deps): update docs-site by @renovate[bot] in PR #324
    • chore(deps): update docs-site by @renovate[bot] in PR #327
    • fix(deps): update protobuf monorepo to v4.36.0 by @renovate[bot] in PR #328

August 2026

  1. connect-ktor@0.3.0

    Support Connect GET for idempotent unary RPCs

    Idempotent unary RPCs (protobuf NO_SIDE_EFFECTS) can now be served over HTTP GET with the Connect query-parameter encoding. The code generator emits GET routes for eligible methods, and custom JSON strategies (for example TypeRegistry for google.protobuf.Any) can be registered via installConnectGetCodecs.

    PR #194

  2. connect-ktor@0.3.0

    Support message receive size limits

    Route.connectBodyLimit(maxBytes) enforces a maximum inbound message size for unary Connect RPCs and returns resource_exhausted when the limit is exceeded. Compressed requests are measured after decompression so gzip bombs cannot bypass the cap.

    PR #195

  3. connect-ktor@0.3.0

    Support unary compression negotiation

    Unary Connect RPCs negotiate request compression through Ktor's Compression plugin. UnaryCompressionGuard validates Content-Encoding before the body is read and rejects unsupported encodings with Code.UNIMPLEMENTED.

    PR #193