Disk-backed structural graph cache with versioned postcard encoding, fs2 per-shard locking, atomic writes via NamedTempFile::persist, and size-capped LRU eviction by file mtime. All I/O errors degrade silently via tracing::warn!.