feat(session): persist model tier overrides per session

Store per-session config in SQLite and route /model and /reset through command fast-paths so channel sessions keep independent model selection across reconnects and restarts.
This commit is contained in:
William Valentin
2026-02-13 01:04:26 -08:00
parent 3472a0b926
commit 9f81c01603
35 changed files with 1438 additions and 144 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
/**
* Model capability detection for native audio input support.
*
*
* Models that support native audio will receive raw audio data directly.
* Models that don't will receive a Whisper transcript as text instead.
*/
@@ -27,12 +27,12 @@ const AUDIO_INCAPABLE_MODELS = new Set<string>([
/**
* Check whether a provider+model combination supports native audio input.
*
*
* Returns true if the model can receive raw audio data directly via its API,
* false if audio must be transcribed to text before sending.
*/
export function supportsAudioInput(provider: string, model: string, override?: boolean): boolean {
if (override !== undefined) return override;
if (override !== undefined) {return override;}
// Provider must be in the capable set
if (!AUDIO_CAPABLE_PROVIDERS.has(provider)) {