Commit 3cec659
authored
🤖 fix: respect direct OpenAI voice routing (#3090)
## Summary
Voice transcription now follows the same routing preference as OpenAI
models, so putting Direct ahead of Mux Gateway in Settings keeps voice
input on the direct OpenAI transcription endpoint.
## Background
`VoiceService` hardcoded a gateway-first choice whenever both a Mux
Gateway token and an OpenAI API key were present. That ignored Provider
settings, where users can prefer direct routing for OpenAI, and made
voice input unexpectedly go through Mux Gateway.
## Implementation
- route `openai:whisper-1` through the shared routing resolver using the
saved `routePriority` / `routeOverrides`
- keep voice transcription scoped to the backends it actually supports
today: direct OpenAI and Mux Gateway
- add a regression test covering the direct-before-gateway provider
ordering
## Validation
- `bun test src/node/services/voiceService.test.ts`
- `make typecheck`
- `make static-check`
## Risks
Low and localized to voice transcription backend selection. The change
only affects whether voice requests use direct OpenAI or Mux Gateway
when both are configured.
---
_Generated with `mux` • Model: `openai:gpt-5.4` • Thinking: `xhigh` •
Cost: `$unknown`_
<!-- mux-attribution: model=openai:gpt-5.4 thinking=xhigh costs=unknown
-->1 parent b70d95e commit 3cec659
2 files changed
Lines changed: 82 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
192 | 192 | | |
193 | 193 | | |
194 | 194 | | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
195 | 230 | | |
196 | 231 | | |
197 | 232 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
1 | 2 | | |
2 | 3 | | |
3 | 4 | | |
| |||
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| 15 | + | |
| 16 | + | |
14 | 17 | | |
15 | 18 | | |
16 | 19 | | |
| |||
63 | 66 | | |
64 | 67 | | |
65 | 68 | | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
66 | 75 | | |
67 | | - | |
| 76 | + | |
68 | 77 | | |
69 | 78 | | |
70 | 79 | | |
71 | | - | |
| 80 | + | |
72 | 81 | | |
73 | 82 | | |
74 | 83 | | |
| |||
91 | 100 | | |
92 | 101 | | |
93 | 102 | | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
94 | 139 | | |
95 | 140 | | |
96 | 141 | | |
| |||
0 commit comments