mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-06-01 09:55:34 +08:00
refactor(session-synchronizer): update last scanned timestamp based on synchronization results
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user