Replies: 2 comments
|
+1 — this gap turns other bugs into silent ones. Concrete case: mcp-client's registration-failure path logs through ctx.logger.error, but in a stdout-is-protocol composition with no logger mounted, that error goes nowhere. Combined with the boot race in #1239, the observable behavior is just "the model has no MCP tools and nobody knows why." A minimal stderr exporter shipped in the default jsonrpc composition would have turned a multi-hour debug into a one-line log read. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Summary
Compositions serving the stdio JSON-RPC SDK (
dsh-sdk-jsonrpc-server) reservestdout for protocol frames. The
jsonrpc-demoREADMEsays it plainly:
But the only in-tree log exporter (
cordis-plugin-logger-console) renders viaconsole.log, i.e. stdout. The two rules together mean an SDK-servingcomposition cannot mount any logger — every plugin-level diagnostic simply
vanishes. The bin's own boot guards reach stderr; nothing after boot does.
What that costs in practice
Integrating the SDK runtime, we debugged two separate incidents where the only
observable symptom was "the model doesn't have the tools":
logged nowhere, stderr empty, the harness otherwise healthy;
the auth failure without instrumenting the runtime by hand.
#314 reports the same class of pain on the web profile: a silently-failing
streamable-httptransport with "no error surfaced". For stdio SDKcompositions it is structurally guaranteed — there is nowhere for the error to
go.
Ask
Either of:
ConsoleExporter(e.g.target: 'stdout' | 'stderr'), so SDK compositions can mountlogger-consolepointed at stderr; orThe SDK client side is already prepared for this: the Python SDK captures a
stderr tail and attaches it to transport-failure diagnostics — today that tail
is almost always empty precisely because nothing in the composition can write
to it.
Environment
@deepseek-ai/dsh-*0.1.0-rc.6, stdio JSON-RPC composition(
packaged-bin.js, Node 22.19), macOS 15.All reactions