fix: address PR review round 5 — streaming guard, VC auth, history prefix, auto-TTS control
1. Gate _streaming_api_call to chat_completions mode only — Anthropic and
Codex fall back to _interruptible_api_call. Preserve Anthropic base_url
across all client rebuild paths (interrupt, fallback, 401 refresh).
2. Discord VC synthetic events now use chat_type="channel" instead of
defaulting to "dm" — prevents session bleed into DM context.
Authorization runs before echoing transcript. Sanitize @everyone/@here
in voice transcripts.
3. CLI voice prefix ("[Voice input...]") is now API-call-local only —
stripped from returned history so it never persists to session DB or
resumed sessions.
4. /voice off now disables base adapter auto-TTS via _auto_tts_disabled_chats
set — voice input no longer triggers TTS when voice mode is off.
This commit is contained in:
parent
35748a2fb0
commit
cc0a453476
5 changed files with 59 additions and 22 deletions
|
|
@ -38,6 +38,7 @@ def _make_runner(tmp_path):
|
|||
runner._VOICE_MODE_PATH = tmp_path / "gateway_voice_mode.json"
|
||||
runner._session_db = None
|
||||
runner.session_store = MagicMock()
|
||||
runner._is_user_authorized = lambda source: True
|
||||
return runner
|
||||
|
||||
|
||||
|
|
@ -731,6 +732,7 @@ class TestVoiceChannelCommands:
|
|||
assert event.text == "Hello from VC"
|
||||
assert event.message_type == MessageType.VOICE
|
||||
assert event.source.chat_id == "123"
|
||||
assert event.source.chat_type == "channel"
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_input_posts_transcript_in_text_channel(self, runner):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue