refactor(session-synchronizer): update last scanned timestamp based on synchronization results

This commit is contained in:
Haileyesus
2026-04-29 11:35:59 +03:00
parent 805e283fb6
commit 10f35c238d
2 changed files with 13 additions and 5 deletions

View File

@@ -28,14 +28,15 @@ export const scanStateDb = {
return lastScannedDate; return lastScannedDate;
}, },
updateLastScannedAt() { updateLastScannedAt(scannedAt: Date = new Date()) {
const db = getConnection(); const db = getConnection();
const sqliteTimestamp = scannedAt.toISOString().slice(0, 19).replace('T', ' ');
db.prepare(` db.prepare(`
INSERT INTO scan_state (id, last_scanned_at) INSERT INTO scan_state (id, last_scanned_at)
VALUES (1, CURRENT_TIMESTAMP) VALUES (1, ?)
ON CONFLICT (id) ON CONFLICT (id)
DO UPDATE SET last_scanned_at = CURRENT_TIMESTAMP DO UPDATE SET last_scanned_at = excluded.last_scanned_at
`).run(); `).run(sqliteTimestamp);
} }
}; };

View File

@@ -16,6 +16,7 @@ export const sessionSynchronizerService = {
*/ */
async synchronizeSessions(): Promise<SessionSynchronizeResult> { async synchronizeSessions(): Promise<SessionSynchronizeResult> {
const lastScanAt = scanStateDb.getLastScannedAt(); const lastScanAt = scanStateDb.getLastScannedAt();
const scanBoundary = new Date();
const processedByProvider: Record<LLMProvider, number> = { const processedByProvider: Record<LLMProvider, number> = {
claude: 0, claude: 0,
codex: 0, codex: 0,
@@ -41,7 +42,13 @@ export const sessionSynchronizerService = {
failures.push(reason); failures.push(reason);
} }
scanStateDb.updateLastScannedAt(); if (failures.length === 0) {
scanStateDb.updateLastScannedAt(scanBoundary);
} else {
console.warn(
`[Sessions] Skipping scan_state cursor advance because ${failures.length} provider sync(s) failed.`,
);
}
return { return {
processedByProvider, processedByProvider,