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
fix(diagnostics): gate stdio premature-exit enrichment to stdio transport
Codex review round on PR #606: initialize() is shared by HTTP/SSE transports,
so a remote server closing the connection was mislabeled 'server process exited
before completing the MCP initialize handshake'. Gate the enrichment to the
stdio transport via shouldEnrichStdioPrematureExit (HTTP/SSE keep generic
diagnostics) + table test across transports.
Related #599
returnfmt.Errorf("server did not respond to MCP initialize within %s and produced no stderr output (check that the command starts an MCP server and not a help banner)", waited)
62
62
}
63
63
64
-
// Subprocess exited before completing the handshake: mcp-go reports a
65
-
// closed transport / EOF on the pipe (not a typed exit error). Surface
66
-
// the captured stderr — and the exit code when the process handle is
67
-
// available — so the user sees the real, often self-serviceable cause
68
-
// (e.g. "Error: --brave-api-key is required") instead of a bare
69
-
// "transport closed" that the diagnostics layer marks UNKNOWN.
70
-
// (MCP-1093 / #599)
71
-
ifisTransportClosedErr(err) {
64
+
// STDIO subprocess exited before completing the handshake: mcp-go reports
65
+
// a closed transport / EOF on the pipe (not a typed exit error). Surface
66
+
// the captured stderr so the user sees the real, often self-serviceable
67
+
// cause (e.g. "Error: --brave-api-key is required") instead of a bare
68
+
// "transport closed" that the diagnostics layer marks UNKNOWN. Gated to
69
+
// stdio: initialize() is shared by HTTP/SSE transports, which have no
70
+
// local subprocess and must keep their generic diagnostics. (MCP-1093 /
0 commit comments