* fix: drop wall-clock total from MCP relay stream timeouts
An MCP response stream is long-lived by design (the upcoming spec's
subscriptions/listen holds one open indefinitely); the relay's
total=300 wall-clock bound cut healthy streams every 5 minutes and
forced clients to re-subscribe. sock_read idle detection still bounds
a dead stream.
Applied to the ha_mcp_tools component webhook relay and the webhook
proxy dev flavor (2.0.5.dev2); the stable proxy picks it up on the
next promote.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017iTWsCSMPqSHm7Po8yGzfk
* fix: address Codex relay-timeout findings
Add a finite connect bound (30 s) to both relay ClientTimeouts: it
covers connection-POOL acquisition, so a pool occupied by long-lived
streams fails a new request instead of hanging it forever now that
total is gone. Replace the hard-coded stable relay_timeout_total test
expectation with a source-derived predicate that flips automatically
when the promote workflow copies the dev tree — a hard-coded 300 would
have failed every generated promotion PR.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017iTWsCSMPqSHm7Po8yGzfk
* chore: re-bump webhook-proxy-dev to 2.0.5.dev3 after #2033 merged dev2
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017iTWsCSMPqSHm7Po8yGzfk
---------
Co-authored-by: kingpanther13 <kingpanther13@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>