Files
hermes-agent/apps/shared
Konstantin Khlopkov 1cf8a9fb41 fix(tui): count streamed frames as heartbeat liveness
The TUI's JsonRpcRequestChannel took the 'response' liveness default, so
only a ping-ack or a response to a pending call refreshed the deadline:
a socket streaming a delta every second through a 134s turn was declared
dead at the 45s deadline and force-closed, splitting sessions that went
on to complete server-side (#115251).

Pass heartbeatLiveness: 'any-inbound' on the TUI channel — the same
contract the desktop/web client already uses — so any inbound frame
counts as life. A silent drop still trips the deadline, so true
dead-transport detection is unchanged; only the false-kill class goes.

The channel's 'response' mode keeps its semantics for callers that
explicitly choose it; the shared wiring test pins the TUI construction
site so the option cannot silently regress.

Fixes #115251
2026-09-20 12:18:44 -07:00
..