[Server] Stream a modern-era response when there is something to stream (#448)

tools/call answered with one JSON object, so a handler's progress and log
notifications had nowhere to go — and reached for a fiber that was not
there, coming back as -32603. Handlers now run in a fiber and the stream
opens after the first suspension, late enough that an error still gets the
status the spec fixes for it. logLevel finally gates the log messages it
was already being parsed for, and a server-initiated request is refused by
name rather than as a FiberError.
This commit is contained in:
Christopher Hertel 2026-08-18 23:22:45 +02:00 • committed by GitHub
commit dd3783a720
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -13,15 +13,6 @@
# make conformance-draft-server
server:
# --- Progress notifications on a response stream ---------------------------
# The one place the modern lifecycle is behind the handshake one, and a real
# gap rather than a fixture difference: this scenario passes at / and fails
# at /stateless. A tools/call answer is a single JSON response here, so
# notifications a handler emits mid-call have nowhere to go. Closing it means
# answering tools/call over a stream — the same seam MRTR's IncompleteResult
# chunks will need — rather than anything specific to progress.
- tools-call-with-progress:tools-call-with-progress
# --- Pre-existing, not lifecycle-specific ----------------------------------
# Neither is caused by (or fixable in) the modern lifecycle; both reproduce
# on the handshake endpoint. Listed so the draft run is honest.