v0.9.5
Graphify-Labs/graphifyv0.9.5Jul 2, 2026by safishamsi
AI Summary
Correctness fixes addressing regressions in indirect calls, stale community labels, and case-sensitive name resolution, alongside robustness improvements for `merge-graphs` and `cluster-only`.
Key Highlights
- Cross-file `indirect_call` now resolves via the CLI, fixing a 0.9.4 regression.
- `graphify cluster-only` no longer reuses stale community labels after graph changes.
- Cross-file name resolution respects case in case-sensitive languages.
- `merge-graphs` now tolerates mixed directed/multigraph inputs.
New Features
- CLI-based indirect call resolution.
- Stale community label prevention in cluster-only mode.
- Case-sensitive cross-file name resolution.
- Robustness fixes for graph merging.
- Fixes for Swift, C#, C++, and PHP extractors.
Full Release Notes
## graphify 0.9.5 `pip install -U graphifyy==0.9.5` ### Correctness (two 0.9.4 regressions + a false-hub fix) - Cross-file `indirect_call` now resolves via the `graphify extract` CLI, not just the `extract()` API — a 0.9.4 regression where the callable-target guard went stale after id relativization dropped every cross-file indirect edge on the CLI path. - `graphify cluster-only` no longer reuses stale community labels after the graph changed — a re-scoped/re-clustered graph kept old labels on a different community set. It now writes per-community membership signatures and hub-relabels changed communities with a warning. - Cross-file name resolution respects case in case-sensitive languages (#1581) — `from pathlib import Path` no longer resolves to a shell `export PATH=...` node (one variable had become the #1 god-node with 266 false edges). Only PHP/SQL/Nim still fold. ### Language extractor fixes (thanks @Synvoya, @jerryliurui) Ruby & Groovy inheritance edges; Elixir multi-alias imports; Fortran function calls; Rust enum-variant + tuple-struct references; Julia qualified/relative/scoped imports; SystemVerilog qualified fields; Scala `var` fields; PowerShell class base types; ObjC protocol-to-protocol adoption; PHP promoted constructor properties; C# auto-properties; C++ base-class template args; Swift enum associated values; and Swift singleton-into-local resolution (`let x = Type.shared; x.method()`, #1604). ### Incremental `--update` data fixes Hyperedges from unchanged files no longer dropped (#1574); deleted files no longer leave ghost nodes, with symlinked-root hardening (#1571). ### Robustness & tooling `merge-graphs` tolerates mixed directed/multigraph inputs (#1606); corrupt `graph.json` gives an actionable error (#1537/#1536); cross-chunk node-ID collisions warn instead of silently dropping (#1508); the skill accepts Homebrew `python@3.x` interpreters (#1586); git-hook foreground stalls eliminated (#1601); direction-aware skill-version warning (#1568); deterministic hub community labels; Windows hook worker limit (#1554). ### Serve / MCP Question/filler stopwords dropped from query terms (#1597); optional `project_path` lets one MCP server back a whole workspace of projects (#1594). Thanks to all contributors: @sheik-hiiobd, @Synvoya, @jerryliurui, @AdrianRusan, @SUDARSHANCHAUDHARI, @socar-tender, @goodjira, @TPAteeq, @guyoron1, @nuthalapativarun, @matiasduartee, @joanfgarcia, and the #1601/#1597 authors.