Commit Graph
2 Commits
Author SHA1 Message Date
Charlie Marsh 8fdf647295 Add per-chat leases for shared MCP connections (#57978)
## What changed

Negotiate the `codex/connection-lease` extension for pooled stdio connections. For servers that advertise it, open a unique lease per chat and attach its host-owned ID to tool calls and resource reads via `codex/connectionLease`, overriding caller-supplied lease metadata.

When a chat releases its lease, write cancellations for pending requests before sending `codex/connection/release`. Preserve open-before-release ordering across startup timeouts, bound unload waits, and remove connections from the pool when lease cleanup fails or times out. Servers without the extension retain existing behavior.

## Testing

Add coverage for cancellation-before-release ordering, late open acknowledgements, and lease drops outside the runtime. Extend app-server sharing tests to verify distinct chat leases, metadata replacement, release on unload, and continued use by another chat.

GitOrigin-RevId: f4c8b606cb98b5697acab1c515e992ff80ec8425
2026-10-29 03:47:52 +00:00
Charlie Marsh 7d1492ffab Isolate MCP inputs and timeouts for callers sharing a connection (#57196)
## Why

Concurrent requests on a shared MCP connection need to route prompts to their own callers and pause only their own timeouts while awaiting input.

## What changed

- Add `call_tool_with_elicitation` and `read_resource_with_elicitation` with per-request callbacks and timeout pause state, requiring MCP protocol `2026-07-28`.
- Share continuation handling between tool calls and resource reads, and assign globally unique input IDs across requests and connections.
- Add `enable_request_cancellation` to extend cancellation on dropped response futures to catalog, resource, and custom requests.

## Testing

Add or extend tests for concurrent form and URL input routing, unique prompt IDs, independent native verification cancellation and timeouts, resource continuations, and remote cancellation when resource or custom request futures are dropped.

GitOrigin-RevId: ad5a3cd0e289726828a694d00c20870e2d1108c6
2026-10-26 19:10:13 +00:00