github safishamsi/graphify v0.8.7
v0.8.7 — Smarter query seeds, C++ extraction fixes, dedup cross-file fix

latest release: v0.8.8
4 hours ago

What's fixed

Query scoring (#897)

  • IDF weighting — common terms like error or handle that match dozens of nodes are down-weighted, so a rare identifier like FooBarService ranks first and BFS expands from the right starting point
  • Dynamic K seeds — when one match dominates (>80% score gap vs the next candidate), graphify picks one seed instead of always three; noise nodes no longer consume BFS slots alongside the real target
  • Actionable truncation — the truncation message now tells Claude what to do (get_node or add a context_filter) rather than just reporting truncation

C++ extraction (#898)

  • Class data members (int x;, static const int MAX = 100;) are now extracted as nodes with defines edges from the parent class — the previous field_declaration branch was silently a no-op due to a wrong child type filter
  • _get_cpp_func_name now handles field_identifier, destructor_name, and operator_name node types

C/C++ include edges (#899)

  • Quoted #include "path/to/file.h" edges now resolve relative to the including file and use the full resolved path as the target node ID — matching what extraction creates for the included file. Previously all include edges dangled with a basename-only ID and were silently dropped.

Dedup (#895)

  • Pass 1 now partitions same-label groups by source file before merging — nodes with generic labels (handle, init, run) from different files no longer collapse into artificial god nodes; cross-file matches fall through to Pass 2 fuzzy
  • exact_merges counter now reports only merges actually performed

Upgrade

uvx graphifyy@0.8.7 install
# or
pip install --upgrade graphifyy

Don't miss a new graphify release

NewReleases is sending notifications on new releases.