diag(mcp): per-request phase logging on the streamable-HTTP transport#5819
Conversation
Mirrors the OAuth guarded-fetch logging that isolated the /oauth/start body stall. Logs each transport request (host+method), the response headers with TTFB, and failures — so a first-connect stall shows whether it hangs before response headers (connect/request) or after (the SDK's stream read), which isolates the client-side first-connect stall we haven't yet root-caused.
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryLow Risk Overview Each transport call now logs request start (host + method), response headers (status + TTFB), or a failure (elapsed ms and error metadata) via a new The intent is to tell whether first Reviewed by Cursor Bugbot for commit a12bac5. Configure here. |
Greptile SummaryThis PR adds phase logging to the pinned MCP transport fetch. The main changes are:
Confidence Score: 5/5This looks safe to merge.
Important Files Changed
Reviews (2): Last reviewed commit: "diag(mcp): include error name/code in tr..." | Re-trigger Greptile |
Distinguishes abort vs connect-refused vs TLS vs timeout in the failure-phase data.
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit a12bac5. Configure here.
Summary
createPinnedMcpFetch), mirroring the OAuth guarded-fetch instrumentation that isolated the/oauth/startbody stall.initializereturns in ~120 ms — but we haven't isolated where it stalls. This logging shows whether the first connect hangs before response headers (connect/request phase) or after (the SDK's stream/body read) — the data needed to root-cause it before touching the single-IP-pin SSRF control.Type of Change
Testing
Type-check + biome clean. No behavior change — wraps the existing pinned fetch with logging only.
Checklist