github safishamsi/graphify v0.9.4

5 hours ago

graphify 0.9.4

Published to PyPI: pip install -U graphifyy==0.9.4

Blast-radius / call-graph

  • indirect_call dispatch — a function referenced by name is now a first-class dependency graphify affected traverses: call arguments (submit(fn), Thread(target=fn), map(fn, xs)), cross-file/imported callbacks, dispatch tables (ROUTES = {"x": fn}, [a, b]), assignment/return aliases (cb = fn, return fn), getattr(obj, "name") reflective dispatch, and JS/TS (call args, object/array tables, Express-style app.get("/", h)). Kept as a distinct INFERRED relation so strict calls queries stay precise. (#1565, #1566, #1569, #1575)

Incremental --update data fixes

  • Hyperedges from unchanged files are no longer dropped on every incremental update. (#1574)
  • Deleted files no longer leave ghost nodes — prune matching relativizes absolute paths against the scan root (with symlinked-root hardening) even when a caller omits root. (#1571)

Language coverage

  • Ruby class inheritance emits inherits edges. (#1535)
  • Groovy extends/implements emit inherits/implements edges. (#1534)

Robustness & UX

  • Corrupt graph.json raises a clear, actionable error instead of a traceback. (#1537/#1536)
  • Cross-chunk node-ID collisions warn (naming both files) instead of silently dropping a node. (#1508/#1504)
  • Skill-version mismatch warning is direction-aware — a newer-than-package skill is told to upgrade the package, not to run install (which would downgrade it). (#1568)
  • Deterministic hub community labels: no-backend runs read auth / log_action instead of Community 70. (#1576)
  • Git hooks on Windows/MSYS default to sequential rebuilds. (#1554)

Thanks to @sheik-hiiobd, @Synvoya, @socar-tender, @goodjira, @TPAteeq, @guyoron1, @nuthalapativarun, @matiasduartee for reports and contributions.

Don't miss a new graphify release

NewReleases is sending notifications on new releases.