diff --git a/frontend/src/views/SettingsView.vue b/frontend/src/views/SettingsView.vue index fbf138f..21a2f8a 100644 --- a/frontend/src/views/SettingsView.vue +++ b/frontend/src/views/SettingsView.vue @@ -21,6 +21,8 @@ const savingTimezone = ref(false); const timezoneSaved = ref(false); const autoConsolidateTasks = ref(true); const savingAutoConsolidate = ref(false); +const thinkEnabled = ref(false); +const savingThinkEnabled = ref(false); async function saveAutoConsolidate() { savingAutoConsolidate.value = true; @@ -35,6 +37,19 @@ async function saveAutoConsolidate() { } } +async function saveThinkEnabled() { + savingThinkEnabled.value = true; + try { + await apiPut('/api/settings', { + think_enabled: thinkEnabled.value ? "true" : "false", + }); + } catch { + toastStore.show('Failed to save setting', 'error'); + } finally { + savingThinkEnabled.value = false; + } +} + function detectTimezone() { userTimezone.value = Intl.DateTimeFormat().resolvedOptions().timeZone; } @@ -771,6 +786,9 @@ onMounted(async () => { userTimezone.value = allSettings.user_timezone ?? ""; // Default true if unset; explicit "false" disables auto-consolidation. autoConsolidateTasks.value = (allSettings.auto_consolidate_tasks ?? "true") !== "false"; + // Default false: think mode is opt-in. Bench showed it costs 1-2 min/turn + // for unclear benefit; qwen3 users can re-enable if tool calls regress. + thinkEnabled.value = (allSettings.think_enabled ?? "false") === "true"; chatRetentionDays.value = allSettings.chat_retention_days !== undefined ? Number(allSettings.chat_retention_days) : 90; @@ -1518,6 +1536,22 @@ function formatUserDate(iso: string): string {

+
+ +

+ When on, the chat model runs in reasoning mode before responding. + Default off — bench data showed thinking adds 1–2 minutes per turn for unclear quality benefit. + Turn on for qwen3-family models if tool-call reliability drops without it. +

+