From af5daca0d960b5ab9292b72635a12dae135c9df0 Mon Sep 17 00:00:00 2001 From: "ilblackdragon@gmail.com" Date: Mon, 23 Mar 2026 23:11:34 -0700 Subject: [PATCH] fix: use selected_model setting key to match /model command persistence The dispatcher was reading "preferred_model" but the /model command (merged from staging) persists to "selected_model". Since set_setting is already per-user scoped, using the same key makes /model work as the per-user model override in multi-tenant mode. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/agent/dispatcher.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/agent/dispatcher.rs b/src/agent/dispatcher.rs index 41a85cb2..4bd0a819 100644 --- a/src/agent/dispatcher.rs +++ b/src/agent/dispatcher.rs @@ -347,10 +347,12 @@ impl<'a> LoopDelegate for ChatDelegate<'a> { // Apply per-user model override from settings (first iteration only // to avoid repeated DB lookups within the same agentic loop). + // Uses "selected_model" — the same key the /model command persists to + // via SettingsStore (per-user scoped). if iteration == 0 && let Some(store) = self.agent.store() && let Ok(Some(value)) = store - .get_setting(&self.message.user_id, "preferred_model") + .get_setting(&self.message.user_id, "selected_model") .await && let Some(model) = value.as_str() {