v1.2.12
dispatch() only converted reply-wait timeouts into AgentTimeoutException. A lazy-connect TCP/TLS failure (raw ETIMEDOUT etc.) threw an uncaught transport exception instead, bypassing the graceful 504 handling callers already rely on. Now the whole subscribe/publish/poll sequence is wrapped, the broken client is discarded, and any transport failure is rethrown as AgentTimeoutException. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>