Skip to content

feat(rmcp): preserve typed custom request responses - #1

Merged
jmagar merged 12 commits into
mainfrom
codex/typed-custom-requests
Sep 4, 2026
Merged

feat(rmcp): preserve typed custom request responses#1
jmagar merged 12 commits into
mainfrom
codex/typed-custom-requests

Conversation

@jmagar

@jmagar jmagar commented Sep 4, 2026

Copy link
Copy Markdown

Summary

  • preserve raw JSON-RPC responses until the requested result type is known
  • add typed custom request helpers without weakening standard response decoding
  • cover stdio, HTTP, SSE, WebSocket, and worker transports

Verification

  • Labby workspace compilation and all-target Clippy
  • Labby Skills-over-MCP custom response suite: 48 passed
  • rmcp OAuth normative suite: 20 passed
  • Labby MCP/OpenAI authorization suites: 81 passed

This allows Labby to depend on an immutable organization-owned SDK revision instead of vendoring rmcp.

nickcoai and others added 12 commits August 24, 2026 22:43
…1186)

* fix: allow concurrent streamable http requests

* fix: keep streamable http recovery responsive

Keep cancellation and replies available while old session POSTs finish.
Bound the wait for old POSTs and the replacement initialization handshake.
Do not retry interrupted POSTs because the server may have processed them.

Add regressions for recovery, queued cancellation, control timeouts, and
server replies needed by active requests.

* fix: preserve response and cancellation ordering

* refactor: clarify streamable http control flow

* fix: match stream responses against pending request ids

Match responses against all pending requests before removing a stream
registration. Keep distinct numeric and string ids separate while preserving
the existing fallback for servers that stringify numeric ids.

Add a mixed-id regression and keep a separate registration owner alive in
the abandoned-cancellation test.

* feat: make streamable http control timeouts configurable
…odelcontextprotocol#1211)

* fix(transport): fall back after HTTP discover rejection

* fix(transport): limit legacy fallback to sessionless probes

* style: apply nightly rustfmt import ordering
* feat: add request-state key rotation

* docs: streamline request-state codec documentation

* fix: harden request-state fallback verification

* refactor: refine request-state keyring API

* docs: make request-state rotation guidance self-contained

* docs: streamline request-state keyring rustdocs

* test: streamline request-state keyring coverage

* docs: restore request-state key rotation doctest

* chore: remove manual changelog entry
…lcontextprotocol#1230)

Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.85.13 to 2.86.7.
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](taiki-e/install-action@82cd3e7...b6ff580)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.86.7
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@jmagar
jmagar merged commit 0665dca into main Sep 4, 2026
15 of 20 checks passed
@jmagar
jmagar deleted the codex/typed-custom-requests branch September 4, 2026 06:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants