Start: Call POST /api/v1/stream/start to create a session
Connect: Open WebSocket connection with session ID
Stream: Receive log messages in real-time
Warning: Receive session_ending control message 30 seconds before timeout
End: Connection closes when session times out or is stopped
Sessions automatically terminate after the specified timeout (default: 5 minutes, max: 1 hour).
This prevents forgotten streams from running indefinitely.