You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sub of Epic #330. documents/audits/AUDIT_VOICE_STACK.md Phase V1 (size M). Worth doing in the v1 window.
Scope: unblock the loop + wire the guards.
V-1 (P0): move the blocking Whisper inference (voice.py:275) and the blocking LLM call (voice.py:293) off the async event loop (to_thread), and warm the Whisper model at startup instead of lazy-loading on the first request.
V-2 (P1): import the ALREADY-EXISTING 25MB/120s upload guard (audio_processor.py:43) into voice.py (one import; the fix ownership for the broader upload hardening stays with Security Epic: Audit security & prompt-injection #223 S-4).
Deliverable: a voice turn no longer freezes the backend, and audio uploads are size/duration-bounded.
Sub of Epic #330.
documents/audits/AUDIT_VOICE_STACK.mdPhase V1 (size M). Worth doing in the v1 window.Scope: unblock the loop + wire the guards.
voice.py:275) and the blocking LLM call (voice.py:293) off the async event loop (to_thread), and warm the Whisper model at startup instead of lazy-loading on the first request.audio_processor.py:43) intovoice.py(one import; the fix ownership for the broader upload hardening stays with Security Epic: Audit security & prompt-injection #223 S-4).Deliverable: a voice turn no longer freezes the backend, and audio uploads are size/duration-bounded.