-- Migration 002: cache size accounting and eviction -- -- Tracks processed variants in the database (source content blobs are -- already tracked in source_content) so total cache usage can be -- computed without directory scans, and adds last-access timestamps -- for LRU eviction ordering. -- Processed variant blobs -- Files stored at: cache/variants/// (plus a -- .meta sidecar with the content type) CREATE TABLE IF NOT EXISTS variant_content ( cache_key TEXT PRIMARY KEY, size_bytes INTEGER NOT NULL, content_type TEXT NOT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, last_accessed_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ); CREATE INDEX IF NOT EXISTS idx_variant_content_last_accessed ON variant_content(last_accessed_at); -- LRU timestamp for source content blobs. Rows written before this -- migration have NULL here; eviction falls back to fetched_at. ALTER TABLE source_content ADD COLUMN last_accessed_at DATETIME; CREATE INDEX IF NOT EXISTS idx_source_content_last_accessed ON source_content(last_accessed_at);