IncomingMessage's docstring and the callbacks page said every server
notification reaches message_handler, but notifications/cancelled is
applied by the dispatcher and a subscription ack for a live listen()
stream is consumed by that stream, so neither is delivered. Say so.
Also drop the "shared type aliases" mention from the interaction
suite's layout guide now that _helpers.py holds only the recording
transport.
No-Verification-Needed: comment- and doc-only change
The client's message_handler is only ever called with a validated
ServerNotification or a transport-level Exception; server-initiated
requests are answered by the typed callbacks. The RequestResponder arm
of the MessageHandlerFnT union was a v1 leftover with a typing-only
stub behind it, so every handler had to annotate a case the session
never delivers.
Type the parameter as an exported IncomingMessage alias
(ServerNotification | Exception) in mcp.client, delete the dead
RequestResponder stub, and drop the now-empty mcp.shared.session
compatibility module (ProgressFnT already lives in mcp.shared.dispatcher).