Fixes graphify update broken on mixed code+docs corpora (#582)
AST and semantic cache entries now live in separate cache/ast/ and cache/semantic/ subdirectories. Previously both wrote to the same flat cache/ directory — semantic results silently overwrote AST entries for code files, causing the shrink guard to fire on every subsequent graphify update run.
Existing flat cache entries are read as a migration fallback so no cache is lost on upgrade.
Upgrade: pip install --upgrade graphifyy