graphify turns any folder of code, docs, papers, images, or videos into a queryable knowledge graph. 0.9.14 is a correctness-focused release: eleven fixes across detection, the git hooks, extraction caching, query seeding, and export — most from community reports, several with their own PRs.
Highlights
- Massive graph bloat from git worktrees is gone (#1810). Detection now honors
.git/info/exclude— wheregit worktree addrecords nested worktree paths — so graphify no longer walks into worktree copies of the repo. One reporter's 5-worktree repo had ballooned from ~9,400 nodes / 10 MB to ~210,000 nodes / 311 MB, regenerated on every commit. - No more username leaks in committed graphs (#1789). Visual Studio solution-folder nodes were keyed off the absolute scan path, embedding the local username into
graph.json. They're now relative. graphify export graphmlstopped crashing (#1831). Any dict/list-valued attribute (a nodemetadatadict, the graph-levelhyperedgeslist) failed the entire export and left a 0-byte file; non-scalars are now JSON-serialized and the write is atomic.- The CLI no longer reports success as failure through a pipe (#1807).
graphify query … | headused to exit 255 when the reader closed early, breaking CI wrappers and agent harnesses; an early-closing reader is now treated as success.
All fixes
- Fix: Visual Studio solution-folder node ids no longer embed the absolute scan path / username (#1789, thanks @fremat79).
- Fix: the CLI exits 0 (not 255) when a downstream reader closes the pipe early —
head,Select-Object -First N,sed q(#1807 / #1811, thanks @varuntej07). - Fix:
extract()writes its AST cache (and the stat-index) to CWD, never the analyzed source tree, with the cache location decoupled from the portable key/id anchor (#1774 / #1802, thanks @SimiSips). - Fix:
graphify querydeduplicates BFS seeds by label so homonymous generic symbols (manyGET/POSThandlers) no longer flood results (#1766 / #1832, thanks @devcool20). - Fix: semantic cache writes are scoped to each extraction batch's files, so a mis-attributed
source_filecan't clobber another file's cache — covering both the final write and the per-chunk checkpoint (#1757 / #1835, thanks @TPAteeq). - Fix:
graphify export graphmlcoerces dict/list (and other non-scalar) attributes and writes atomically (#1831 / #1830, thanks @hofmockel). - Fix:
.nox/virtualenvs are skipped during detection alongside.tox/(#1804, thanks @igorregoir-lgtm). - Fix: detection honors
.git/info/exclude, ending git-worktree graph bloat (#1810, thanks @cdahl86-cyber). - Fix: the git hooks short-circuit inside linked worktrees, and
GRAPHIFY_SKIP_HOOKnow suppresses bothpost-commitandpost-checkout(#1809, thanks @cdahl86-cyber; worktree guard co-developed with @Claude-Madera's #1806).
Install
pip install --upgrade graphifyy
# or
uv tool install graphifyy@0.9.14
Then graphify install to update the skill for your agent.