From 1a67d7170d0a9ed153566d07b50cbb500effe989 Mon Sep 17 00:00:00 2001 From: Ramin Date: Mon, 8 Jun 2026 15:54:00 +0100 Subject: [PATCH] fix(dashboard): persist lastRun so scheduling KPIs stay in sync lastRun was only updated on the startup settings object while the dashboard reads a rebuilt cache after upsertSettings invalidates it. --- lib/services/jobs/jobExecutionService.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/services/jobs/jobExecutionService.js b/lib/services/jobs/jobExecutionService.js index 5577c880..c21fa56c 100644 --- a/lib/services/jobs/jobExecutionService.js +++ b/lib/services/jobs/jobExecutionService.js @@ -14,7 +14,7 @@ import * as similarityCache from '../similarity-check/similarityCache.js'; import { isRunning, markFinished, markRunning } from './run-state.js'; import { sendToUsers } from '../sse/sse-broker.js'; import * as puppeteerExtractor from '../extractor/puppeteerExtractor.js'; -import { getSettings } from '../storage/settingsStorage.js'; +import { getSettings, upsertSettings } from '../storage/settingsStorage.js'; /** * Initializes the job execution service. @@ -105,6 +105,7 @@ export function initJobExecutionService({ providers, settings, intervalMs }) { return; } settings.lastRun = now; + upsertSettings({ lastRun: now }); const jobs = jobStorage.getJobs().filter((job) => { if (!context) return true; // startup/cron → all if (context.isAdmin) return true; // admin → all