Repository navigation
fix: repair Audio Bridge runtime multipart self-loop - #10229
Conversation
Merge freeze verdict — HOLD on inherited release base-redsThe Audio Bridge candidate itself is green and its mandatory live gate passed, but Exact PR head: Candidate-owned evidence
Base-red discrimination on pure
|
…bridge-multipart-runtime
Freeze revalidation — previous HOLD supersededThe inherited release reds recorded in the previous HOLD were repaired by the base-first PR #10236 and merged as This repair branch was then reconciled by a normal merge. Exact current state:
All manual freeze gates were executed exclusively on VPS 192.168.0.15:
Known unrelated base debt remains unchanged: Mandatory live Deepgram proof on the exact deployed candidateA real WAV
Therefore the prior base-red HOLD is superseded. Merge remains pending only for the rest of the current exact-head CI, followed by exact-head merge, official release deploy, and one final live verification. |
Official post-merge deployment — final live gateThe merged release commit is now deployed on Local VPS
Final real
The post-merge product gate is complete on the official release SHA. |
|
Post-merge release-tip revalidation on Local VPS .15 - 2026-08-13 The release branch advanced after the repair merge. I therefore repeated the official-artifact deploy and live gate on the then-current exact release tip:
Fresh real-audio proof, executed only on VPS .15:
The API key was selected only inside the VPS process, written to a mode-0600 temporary header file, never printed, and removed together with the audio/payload/response files by the trap. No credential or sensitive transcript is included here. |
…ce#10229) * fix(guardrails): serialize audio bridge multipart safely * docs(changelog): record Audio Bridge multipart fix --------- Co-authored-by: backryun <bakryun0718@proton.me>
Summary
Root cause
OmniRoute patches the runtime global fetch with the packaged Undici implementation. The Audio Bridge built its body with Node native FormData, so the patched fetch sent an invalid multipart body and
/v1/audio/transcriptionsreturned HTTP 400. The guardrail then replaced the clip with the unavailable STT stub.VPS .15 evidence
All local/product tests for this fix were run on the Local VPS (
192.168.0.15).Reproduction and TDD
Exact deployed candidate
d4b8bd9cabe9ef35a6069bedf2a024acc996900adist/BUILD_SHA:d4b8bd9cabhealthy, version3.8.50online, zero restarts after deploymentLive product gate
A real WAV generated on the VPS was sent as
input_audiothrough/v1/chat/completionsto the proven text-only targetopenai/gpt-4.1-mini, withdeepgram/nova-3configured as the STT model.200x-omniroute-modality-bridge: audio->text;model=deepgram/nova-3;parts=1OmniRoute Audio Bridge live verification number 739.trueFreeze gates on the exact candidate
typecheck:core: passedcheck:cycles: passed, no cycles across 412 checked filesf1eb0b835722ca744692834c84661f1bc8d564a6: 0 lost bulletsKnown base-red, outside this diff
typecheck:noimplicit:coreremains red on the pure release base inopen-sse/utils/usageTracking.tsandsrc/shared/services/cliRuntime.ts; neither file is changed by this PR.Gate status
input_audiothrough chat to a proven text-only model