Use EU by default for fail-closed OpenRouter regional routing - #72
MyButtermilk wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 63a9413d3e
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| async with session.post( | ||
| OPENROUTER_STT_URL, | ||
| url, |
There was a problem hiding this comment.
Check regional model availability before uploading audio
For an EU/US selection, this is the first OpenRouter request, so Scriber uploads the complete STT payload before discovering that the fixed MAI model is unavailable in that region. There is no regional /models availability lookup anywhere in the new routing path, and therefore no output_modalities=transcription query for STT; the same omission leaves text-generation models selectable until their prompt submission fails. Gate model admission on the selected region's models API (using the transcription modality for STT) so unavailable routes fail before user content is submitted.
AGENTS.md reference: AGENTS.md:L1488-L1489
Useful? React with 👍 / 👎.
Why
Scriber currently hardcodes the global OpenRouter route for both audio transcription and text generation. The existing processing-region setting applies only to Soniox.
This change makes Europe the OpenRouter default, as explicitly requested. Existing installations without an OpenRouter region setting also use Europe; users can explicitly select US or Global. This is an intentional routing-default change, while API keys, model IDs and provider preferences remain unchanged.
Changes
eu,us,global), persisted independently of the API key and Soniox region and exposed in the Settings API and localized UI.Live model availability checked on 2026-09-29
Queried each region's public
/api/v1/modelsendpoint. Dedicated STT models require the additionaloutput_modalities=transcriptionquery documented by OpenRouter [3]; they must not be inferred from the default catalog.microsoft/mai-transcribe-2(STT catalog)microsoft/mai-transcribe-1.5(STT catalog)google/gemini-2.5-flash-liteopenai/gpt-oss-120bminimax/minimax-m3z-ai/glm-5.3-flashThe EU transcription catalog currently lists only
mistralai/voxtral-mini-transcribe. Scriber does not silently replace the configured MAI model: selecting MAI with the EU default can therefore produce the new regional availability error. Choosing another region is always explicit.These are public catalog observations, not authenticated inference tests. No audio or transcript was sent, and no paid inference request was made. Account access and provider constraints can still prevent a listed model from running. Regional routing requires a Business or Enterprise account [1, 2].
Validation
main: two Windows audio-host preference tests and a Deepgram factory test with an unavailable optional dependency. Windows CI remains the platform validation gate.Based on current
mainat4af59b77a82ea3aa017d706afdfa0bd3deee9237.Sources