feat(server): server-controlled default streaming TTS model
The streaming speech provider settings page was seeding its model picker with a hardcoded `volcengine/seed-tts-2.0`, which contradicts the just-landed "streaming model catalog comes from the server" contract. Now the default also comes from configKV. - `UNSPEECH_UPSTREAM.streaming` gains `defaultModel?: string`. - `GET /api/v1/audio/models/streaming` response gains `default: string | null` reading that field. - admin slice apply: `streaming.defaultModel` survives key/URL rotation alongside `streaming.models`. - `providerOfficialSpeechStreaming.listModels` stashes the value in a module-scope ref, exposed via `getDefaultStreamingModel()`. - Streaming speech settings page reads the helper instead of the hardcoded id; falls back to the first server-returned model if the operator hasn't curated a default. `handleGenerateSpeech` no longer has a `seed-tts-2.0` backstop — a missing backend prefix in the selected model id now throws instead of silently defaulting.
R
RainbowBird committed
6f63ce96e94ae0b4c63e03e5b306e594831c3b92
Parent: 18e6380