vllm_omni.engine.duplex.session.control ¶
Control of one duplex session: server VAD, and the events that reconfigure it.
Server turn detection and session.update are the same concern seen from two sides. The detector is per-session mutable state, and session.update is the event that replaces it mid-flight -- along with the session config, the runtime config and the sampling policy, each of which has to be validated against a candidate before the live session adopts it. The rest of turn.signal (conversation items, local turn markers) travels the same path and is small, so it lives here rather than in a module of its own.
The one thing this does not own is ordering against the data plane: a session.update must not overtake an append still in flight, so the runner supplies wait_for_append_tail.