Follow-up from #835 by @ayaangazali -- thanks again for that PR!
What
Two more VoiceAgentComposeConfig fields have the same problem #835 just documented for llm_generation/instructions, but are still documented as if they work: turn_detection (idl/voice_agent_service.proto:36-66, comments promise "commons applies 0.5 / 500 / 300") and language (:132-135, "Unset means the model auto-detects"). No non-generated code under core/src reads turn_detection()/has_turn_detection/min_delay_ms()/endpointing(), and the only session-language read in core/src/features/voice_agent is VoiceAgentTurnRequest.language (voice_agent_d7_abi.cpp:1085), not the session-wide field. Base's own bindings/electron/src/api/voice-abi.ts:50-54 already notes both have no reader, while Swift VoiceNamespace.swift, RN Voice.ts:190, and Flutter voice.dart:81-86 all fill turnDetection from the public turnHandling option expecting it to be used.
Why it matters
Same silent-no-op problem as the fields #835 fixed the docs for, just not caught in that pass -- plus it covers a session-wide language setting used across turns.
Suggested approach
Either honor TurnDetection and the session language in commons, or add the same "NOT HONORED YET" notes #835 added for the other fields, including a note on VoiceAgentTurnRequest.language's "Unset means the session language" (true only once the session-wide field itself is read).
Done when
Not blocking #835. @ayaangazali, you know this code well now -- you're welcome to take this one if you're interested.
Opened with help from Claude Code and Codex.
Reviewed with help from Claude Code and Codex.
Follow-up from #835 by @ayaangazali -- thanks again for that PR!
What
Two more
VoiceAgentComposeConfigfields have the same problem #835 just documented forllm_generation/instructions, but are still documented as if they work:turn_detection(idl/voice_agent_service.proto:36-66, comments promise "commons applies 0.5 / 500 / 300") andlanguage(:132-135, "Unset means the model auto-detects"). No non-generated code undercore/srcreadsturn_detection()/has_turn_detection/min_delay_ms()/endpointing(), and the only session-language read incore/src/features/voice_agentisVoiceAgentTurnRequest.language(voice_agent_d7_abi.cpp:1085), not the session-wide field. Base's ownbindings/electron/src/api/voice-abi.ts:50-54already notes both have no reader, while SwiftVoiceNamespace.swift, RNVoice.ts:190, and Fluttervoice.dart:81-86all fillturnDetectionfrom the publicturnHandlingoption expecting it to be used.Why it matters
Same silent-no-op problem as the fields #835 fixed the docs for, just not caught in that pass -- plus it covers a session-wide language setting used across turns.
Suggested approach
Either honor
TurnDetectionand the sessionlanguagein commons, or add the same "NOT HONORED YET" notes #835 added for the other fields, including a note onVoiceAgentTurnRequest.language's "Unset means the session language" (true only once the session-wide field itself is read).Done when
TurnDetectionand sessionlanguageare honored by commons, or documented as not honored, consistently with docs(idl): three documented config fields are not honored #835.Not blocking #835. @ayaangazali, you know this code well now -- you're welcome to take this one if you're interested.
Opened with help from Claude Code and Codex.
Reviewed with help from Claude Code and Codex.