diff --git a/frontend/src/views/SettingsView.vue b/frontend/src/views/SettingsView.vue index 2393883..ef18451 100644 --- a/frontend/src/views/SettingsView.vue +++ b/frontend/src/views/SettingsView.vue @@ -28,9 +28,11 @@ const exporting = ref(false); const restoring = ref(false); const restoreFileInput = ref(null); -// Tab state — persisted across navigation -const activeTab = ref(localStorage.getItem("settings_tab") ?? "general"); -watch(activeTab, (v) => localStorage.setItem("settings_tab", v)); +// Migrate stored "admin" → "config"; unknown tabs fall back to "general" +const VALID_TABS = new Set(["general", "account", "notifications", "integrations", "data", "config", "users", "logs"]); +const _stored = localStorage.getItem("settings_tab") ?? "general"; +const activeTab = ref(VALID_TABS.has(_stored) ? (_stored === "admin" ? "config" : _stored) : "general"); +watch(activeTab, (v) => localStorage.setItem("settings_tab", v === "admin" ? "config" : v)); // Chat retention const chatRetentionDays = ref(90); @@ -440,24 +442,32 @@ function hostname(url: string): string {