Skip to content

v0.9.50

Latest

Choose a tag to compare

@safishamsi safishamsi released this 25 Aug 17:43
  • Fix: Ruby methods whose names end in !, ?, or = now keep distinct node ids, so save and save! (or foo and foo=) no longer collide into one node; the label keeps the raw spelling and member-call resolution still matches (#3077, thanks @hopstreax).
  • Fix: a Ruby call on a qualified constant receiver (ActiveRecord::Base.transaction) now matches the receiver's full constant path, so it no longer binds to an unrelated lone class named Base; an edge is emitted only on a single unambiguous match (#3078, thanks @rohit-jsfreaky).
  • Fix: a CommonJS member export wrapped in a higher-order function (exports.x = wrap(fn), module.exports.y = onCall({...}, handler)) is now captured, reaching through the wrapper to the function it wraps without fabricating the wrapper as the export's identity (#3035, thanks @hopstreax).
  • Fix: graphify merge-graphs now offsets each input's community ids so community 0 of one repo no longer fuses with community 0 of another; within-input structure is preserved and the original id is kept in local_community (#3014, thanks @santhiprakash).
  • Fix: a .graphify_root marker written by Windows PowerShell (which prepends a UTF-8 BOM) no longer breaks hook rebuilds or silently mis-roots a scan; PowerShell now writes the marker BOM-less and every reader decodes BOM-tolerantly (#3028, thanks @rohit-jsfreaky).
  • Perf: ignore-pattern evaluation no longer builds a Path and calls relative_to per pattern per file — it computes the relative path lexically in string space, parses each pattern once into a bounded process cache, and memoizes per-entry work; ignore decisions are unchanged (differential-fuzz verified) and a pattern-heavy monorepo scans dramatically faster (#2226, thanks @Azeem1985). The **-aware matcher was also lifted out of a per-call cache closure that leaked a reference cycle each call.
  • Feature: C# and TypeScript enum members now each emit a graph node with a case_of edge to their enum (matching the existing Java/Kotlin/Swift enum handling), so an enum case is visible as a member; explicit and implicit values, const enum, and quoted TypeScript member names are all handled and no built-in types are fabricated (#3063, #3064, thanks @durmazoguzhan).
  • Fix: graphify watch no longer re-triggers on its own reads — read-only inotify events (opened, closed_no_write, emitted by the watcher's own AST rebuild) are dropped, while close-after-write and create/modify/move/delete still trigger; a no-op on the macOS/Windows backends that never emit them (thanks @Azeem1985).
  • Fix: pip install graphifyy[postgres] now carries the tree-sitter-sql grammar the introspection path needs, and a missing or ABI-incompatible grammar raises an actionable error instead of silently returning zero nodes (thanks @Azeem1985).