graphify v0.9.41

v0.9.41
Fixed 13
  • graphify update refuses to overwrite the graph with a shrunken one when the shrink was caused by an extractor failure this run, instead of silently replacing good data; a genuine deletion still shrinks the graph
  • a JS/TS catch binding passed as a call argument no longer fabricates an indirect_call edge to an unrelated same-named callable
  • Cargo.toml is recognized as a package manifest, minting a canonical package node plus depends_on edges
  • an explicitly-passed scan root is no longer excluded by an unanchored pattern in a parent-directory .gitignore
  • the API extraction prompt now instructs backends to capture the per-node rationale attribute, matching the skill path
  • source_file is canonicalized to POSIX separators, so relative inputs on Windows no longer produce non-portable node ids

Correctness, determinism, and data-integrity release — a large batch of community-contributed fixes.

  • Fix: graphify update refuses to overwrite the graph with a shrunken one when the shrink was caused by an extractor failure this run, instead of silently replacing good data (#2663, thanks @ousamabenyounes); a genuine deletion still shrinks the graph.
  • Fix: a JS/TS catch binding passed as a call argument no longer fabricates an indirect_call edge to an unrelated same-named callable (thanks @imagineers-tyler); completes the 0.9.38/0.9.40 arrow-parameter fixes (#2568).
  • Fix: Cargo.toml is recognized as a package manifest (#2434, thanks @ousamabenyounes), minting a canonical package node plus depends_on edges.
  • Fix: an explicitly-passed scan root is no longer excluded by an unanchored pattern in a parent-directory .gitignore (#2468, thanks @hopstreax).
  • Fix: the API extraction prompt now instructs backends to capture the per-node rationale attribute, matching the skill path (#2482, thanks @hopstreax). Invalidates cached semantic chunks, which re-extract on the next run.
  • Fix: source_file is canonicalized to POSIX separators, so relative inputs on Windows no longer produce non-portable node ids (#2627, thanks @rajarshidattapy).
  • Fix: a warm cache hit no longer re-anchors a CWD-relative source_file to a ghost path when the working directory differs from the graph root (#2632, thanks @rajarshidattapy).
  • Fix: the wiki/obsidian audit trail counts each incident edge once instead of double-counting intra-community edges (#2635, thanks @rajarshidattapy).
  • Fix: C# members inside a #if ... #endif preprocessor block are extracted and attached to their class (#2634, thanks @rohit-jsfreaky).
  • Fix: query no longer prints the truncation banner when no nodes were actually cut (#2601, thanks @ousamabenyounes); a genuine node truncation still warns.
  • Fix: a PHP use import written with a leading-backslash / fully-qualified prefix now resolves to its target definition (#2661, thanks @ousamabenyounes).
  • Fix: an unresolved local JS/TS import (to a file absent from the scan) emits a stable, portable ref target id instead of a per-checkout absolute-path slug (#2457, thanks @rohit-jsfreaky).
  • Fix: graphify benchmark no longer crashes on a node whose label is None (#2674, thanks @Arthuro0103).
View original

Upgraded? How did it go?

Discussion