You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 32de415
Browse filesBrowse the repository at this point in the historyBrowse files
* improvement(mcp): negotiate HTTP/2 for MCP transport
MCP servers are commonly behind HTTP/2 fronts (CDNs, cloud LBs), but the
SSRF-pinned undici Agent is HTTP/1.1-only unless it opts into h2 via ALPN. Add
an allowH2 option to createPinnedFetch (default false, so LLM-provider callers
are unchanged) and centralize the MCP h2 decision in one createPinnedMcpFetch
routed through the transport, OAuth probe, and SSRF-guarded fetch. Pinning is
unaffected: the pinned lookup forces every connection to the resolved IP.
* fix(mcp): correct auth-type handling, OAuth-pending UX, and safe error logging
- Classify a non-OAuth UnauthorizedError as an auth failure instead of an OAuth
redirect, so static-bearer servers that merely advertise OAuth stop being
diverted into the OAuth flow (fixes the class of server that couldn't connect).
- Reset a server to disconnected when it is switched to OAuth, so it can't
falsely read as connected before completing its auth flow.
- Surface OAuth-pending state as 'OAuth authorization required' in the server
list and refresh action instead of a generic 'Not Connected'.
- Return an actionable 422 for OAuth servers that don't support dynamic client
registration.
- Redact error messages/cause/session-ids from MCP transport/connect logs via a
shared getMcpSafeErrorDiagnostics helper.
* fix(mcp): reset connection on any auth-type flip, scope h2 to live transport
* fix(mcp): close pinned h2 Agent on disconnect and revoke OAuth tokens on auth-type change
* fix(mcp): release pinned Agent on failed connect and point DCR error at client-id/secret setup
* fix(mcp): make pinned Agent teardown idempotent to avoid double-destroy on cancel/failed connect
// double-cast-allowed: DOM RequestInfo/URL and undici fetch input types differ but are structurally compatible at runtime (Node's global fetch IS undici)
0 commit comments