fix(agent): handle turn.completed and close per-turn websocket Treat turn.completed as a valid stream completion event in the witty-service forwarding layer. This updates both SSE streaming and AgentManager message handling to stop on either message.completed or turn.completed. It also marks sessions idle for turn.completed and closes the per-turn websocket client after each message so late events from one turn cannot leak into the next turn. WebSocketClientPool.remove_client now supports removing a single agent/session client while preserving other sessions for the same agent. |