Split out of #1133.
discover_startup calls expect_response, which blocks until a message
arrives or the transport closes. A legacy server that stays connected but
ignores server/discover therefore never produces a failure, so the Auto
fallback branch is never reached and the client hangs.
The 2026-07-28 backward-compatibility guidance says a client should fall
back when the server "does not respond within a reasonable timeout", so
the probe needs a bounded wait — likely a timeout around the
discover_startup / expect_response call, configurable or with a sane
default.
This is orthogonal to the concrete-failure classification in #1133 (which
covers JSON-RPC errors, closed connections, and transport errors) and is
tracked separately to keep that PR focused.
Related: #1040, #1133.
Split out of #1133.
discover_startupcallsexpect_response, which blocks until a messagearrives or the transport closes. A legacy server that stays connected but
ignores
server/discovertherefore never produces a failure, so the Autofallback branch is never reached and the client hangs.
The 2026-07-28 backward-compatibility guidance says a client should fall
back when the server "does not respond within a reasonable timeout", so
the probe needs a bounded wait — likely a timeout around the
discover_startup/expect_responsecall, configurable or with a sanedefault.
This is orthogonal to the concrete-failure classification in #1133 (which
covers JSON-RPC errors, closed connections, and transport errors) and is
tracked separately to keep that PR focused.
Related: #1040, #1133.