From b519a1c1401af1d20c3b2986e314a705779b96f6 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Wed, 13 May 2026 12:23:06 -0400 Subject: [PATCH] feat(frontend): auto-consolidate tasks toggle in General settings New Tasks section in the General tab with a single checkbox controlling whether the consolidation pipeline fires automatically. Persists to the auto_consolidate_tasks user setting (string 'true'/'false'). Manual 'Re-consolidate' in the task editor bypasses the gate. --- frontend/src/views/SettingsView.vue | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/frontend/src/views/SettingsView.vue b/frontend/src/views/SettingsView.vue index 1fd2d78..fbf138f 100644 --- a/frontend/src/views/SettingsView.vue +++ b/frontend/src/views/SettingsView.vue @@ -19,6 +19,21 @@ const defaultModel = ref(""); const userTimezone = ref(""); const savingTimezone = ref(false); const timezoneSaved = ref(false); +const autoConsolidateTasks = ref(true); +const savingAutoConsolidate = ref(false); + +async function saveAutoConsolidate() { + savingAutoConsolidate.value = true; + try { + await apiPut('/api/settings', { + auto_consolidate_tasks: autoConsolidateTasks.value ? "true" : "false", + }); + } catch { + toastStore.show('Failed to save setting', 'error'); + } finally { + savingAutoConsolidate.value = false; + } +} function detectTimezone() { userTimezone.value = Intl.DateTimeFormat().resolvedOptions().timeZone; @@ -754,6 +769,8 @@ onMounted(async () => { defaultModel.value = allSettings.default_model ?? ""; backgroundModel.value = allSettings.background_model ?? ""; userTimezone.value = allSettings.user_timezone ?? ""; + // Default true if unset; explicit "false" disables auto-consolidation. + autoConsolidateTasks.value = (allSettings.auto_consolidate_tasks ?? "true") !== "false"; chatRetentionDays.value = allSettings.chat_retention_days !== undefined ? Number(allSettings.chat_retention_days) : 90; @@ -1510,6 +1527,29 @@ function formatUserDate(iso: string): string { + +
+

Tasks

+

+ Task bodies are auto-summarized from accumulated work logs. The summary runs every few logs, plus on task close. +

+
+ +

+ When off, the task body is only refreshed when you click "Re-consolidate" + on a task. Existing summaries remain in place. +

+
+
+

Timezone