clio-relay 1.4.9
Browser SSE lifetime fix
clio-relay 1.4.9 keeps VIGIL state and frame streams alive across long remote ParaView commands.
Python's HTTP client transfers no-length SSE socket ownership to the response object after headers. Relay now retains that exact socket, applies the intended post-header idle timeout to it, and closes the response-owned stream deterministically. This prevents five-second reconnect amplification and JARVIS subscriber exhaustion while preserving the existing 900-second authenticated command response-header budget.
Focused validation covered two concurrent quiet SSE streams receiving a later revision, bounded request recovery, ended-stream reconnection, finite responses, and a real Chromium EventSource replay using Last-Event-ID.