mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 07:19:35 +00:00
fix: refresh session-store cache when file size changes within same mtime tick
The session-store cache used only mtime for invalidation. In fast CI runs (especially under bun), test writes to the session store can complete within the same filesystem mtime granularity (~1s on HFS+/ext4), so the cache returns stale data. This caused non-deterministic failures in model precedence tests where a session override written to disk was not observed by the next loadSessionStore() call. Fix: add file size as a secondary cache invalidation signal. The cache now checks both mtimeMs and sizeBytes — if either differs from the cached values, it reloads from disk. Changes: - cache-utils.ts: add getFileSizeBytes() helper - sessions/store.ts: extend SessionStoreCacheEntry with sizeBytes field, check size in cache-hit path, populate size on cache writes - sessions.cache.test.ts: add regression test for same-mtime rewrite
This commit is contained in:
committed by
Peter Steinberger
parent
f9025c3f55
commit
1212328c8d
@@ -25,3 +25,11 @@ export function getFileMtimeMs(filePath: string): number | undefined {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
export function getFileSizeBytes(filePath: string): number | undefined {
|
||||
try {
|
||||
return fs.statSync(filePath).size;
|
||||
} catch {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user