From e91d19e13236f37b5920521cd1ceafd353293cd5 Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Sat, 4 Apr 2026 09:22:27 -0300 Subject: [PATCH] fix(models.dev): correct init environment read and add UI error states --- .../settings/components/ModelsDevSyncTab.tsx | 11 +++++++++++ src/lib/modelsDevSync.ts | 14 ++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/app/(dashboard)/dashboard/settings/components/ModelsDevSyncTab.tsx b/src/app/(dashboard)/dashboard/settings/components/ModelsDevSyncTab.tsx index cc30493021..60d6bdfceb 100644 --- a/src/app/(dashboard)/dashboard/settings/components/ModelsDevSyncTab.tsx +++ b/src/app/(dashboard)/dashboard/settings/components/ModelsDevSyncTab.tsx @@ -107,11 +107,16 @@ export default function ModelsDevSyncTab() { }); if (!res.ok) { setEnabled(!newVal); + setFeedback({ type: "error", message: t("enableSyncError") || "Failed to update" }); + } else { + setFeedback({ type: "success", message: "Settings saved" }); } } catch { setEnabled(!newVal); + setFeedback({ type: "error", message: "Network error" }); } finally { setSaving(false); + setTimeout(() => setFeedback(null), 3000); } }; @@ -126,9 +131,15 @@ export default function ModelsDevSyncTab() { }); if (!res.ok) { setIntervalHours(oldInterval); + setFeedback({ type: "error", message: t("enableSyncError") || "Failed to update" }); + } else { + setFeedback({ type: "success", message: "Interval updated" }); } } catch { setIntervalHours(oldInterval); + setFeedback({ type: "error", message: "Network error" }); + } finally { + setTimeout(() => setFeedback(null), 3000); } }; diff --git a/src/lib/modelsDevSync.ts b/src/lib/modelsDevSync.ts index 4b90bd6ae8..320ce047b5 100644 --- a/src/lib/modelsDevSync.ts +++ b/src/lib/modelsDevSync.ts @@ -660,7 +660,8 @@ export function stopPeriodicSync(): void { * Get current sync status. */ export function getSyncStatus(): SyncStatus { - const enabled = process.env.MODELS_DEV_SYNC_ENABLED === "true"; + // If the sync timer is active, it's enabled. + const enabled = syncTimer !== null; return { enabled, lastSync: lastSyncTime, @@ -680,9 +681,14 @@ export function getSyncStatus(): SyncStatus { * Initialize models.dev sync if enabled. */ export async function initModelsDevSync(): Promise { - if (process.env.MODELS_DEV_SYNC_ENABLED !== "true") { - console.log("[MODELS_DEV] Disabled (set MODELS_DEV_SYNC_ENABLED=true to enable)"); + const { getSettings } = await import("./localDb"); + const settings = await getSettings(); + + if (settings.modelsDevSyncEnabled !== true) { + console.log("[MODELS_DEV] Disabled (enable via Settings > AI)"); return; } - startPeriodicSync(); + + const interval = settings.modelsDevSyncInterval as number | undefined; + startPeriodicSync(interval); }