singularity-forge/src/resources/extensions/gsd/cache.ts
Lex Christopherson 72c86e0792 fix: include DB artifact cache in invalidateAllCaches (#793)
Cherry-picked from #797 — adds clearArtifacts() to gsd-db.ts and wires
it into invalidateAllCaches() so the DB artifact table is cleared
alongside state/path/parse caches.

Co-Authored-By: 0xLeathery (PR #797)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 22:32:10 -06:00

29 lines
1.1 KiB
TypeScript

// GSD Extension — Unified Cache Invalidation
//
// Three module-scoped caches exist across the GSD extension:
// 1. State cache (state.ts) — memoized deriveState() result
// 2. Path cache (paths.ts) — directory listing results (readdirSync)
// 3. Parse cache (files.ts) — parsed markdown file results
//
// After any file write that changes .gsd/ contents, all three must be
// invalidated together to prevent stale reads. This module provides a
// single function that clears all three atomically.
import { invalidateStateCache } from './state.js';
import { clearPathCache } from './paths.js';
import { clearParseCache } from './files.js';
import { clearArtifacts } from './gsd-db.js';
/**
* Invalidate all GSD runtime caches in one call.
*
* Call this after file writes, milestone transitions, merge reconciliation,
* or any operation that changes .gsd/ contents on disk. Forgetting to clear
* any single cache causes stale reads (see #431, #793).
*/
export function invalidateAllCaches(): void {
invalidateStateCache();
clearPathCache();
clearParseCache();
clearArtifacts();
}