v0.9.75
Graphify-Labs/graphifyv0.9.75Oct 4, 2026by safishamsi
Upgrading?
AI Summary
Enhanced intra-class call binding across Python, JS, Swift, and Ruby; added structural coverage for Zig, PHP, Elixir, and Rust; and fixed various build and cache issues.
Key Highlights
- `self`/`this`/`super` member calls now bind to the caller's own class chain.
- New coverage for Zig error-sets, PHP enums, Elixir macros, and Rust macro_rules.
- Scala type-reference fixes include val/var annotations and type aliases.
- Bash script invocations through non-shell interpreters are now recorded as `invokes` edges.
New Features
- Intra-class call binding improvements across five languages.
- Bash script invocation extraction.
- Dart part file linking and conditional imports.
Full Release Notes
Intra-class call binding across five languages, new language-structure coverage, and a batch of resolution/build/cache fixes. - Feature: `self`/`this`/`super` member calls now bind to the caller's own class chain instead of the file-wide last-definition, across **Python** (`self.`/`cls.`/`super()`, nearest ancestor in the in-file MRO) (#4011), **JavaScript/TypeScript** (`this.m()` to the caller's own class; `super.m()` fails closed since the `extends` chain is not known at that pass) (#4012), **Swift** (`self`/`super`, class vs struct/extension aware) (#4030), and **Ruby** (`self`-sends within the class chain, complementing the paren-less self-send extraction from 0.9.74) (#4031) — all thanks @Cintu07. Multiple-inheritance ties and unknown/external ancestors fail closed (no fabricated edge). - Feature: four more language extractors gained structural coverage from @rajatnagda45 — **Zig** error-set declarations and their members (`case_of`) (#4025), **PHP** enum cases (pure and backed) with `case_of` edges (#4026), **Elixir** `defmacro`/`defmacrop`/`defguard`/`defguardp` definitions (#4027), and **Rust** `macro_rules!` definitions with local invocation resolution (std macros like `println!` fail closed, no fabrication) (#4028). - Feature: three **Scala** type-reference fixes from @Faisal-Fayaz — file-scope `val`/`var` type annotations now emit `references` edges (#4036, #2054), `type` alias/definition right-hand sides are walked (including `opaque type` and match types) (#4037, #2049), and context bounds (`def f[A: Ordering]`) resolve to `references` edges (#4038, #2046). - Feature: single-implementer interface dispatch was lifted into a language-agnostic core (#4034) and reused to dispatch a **Swift** protocol requirement to its sole conformer (INFERRED), failing closed on 2+ conformers (#4035) — thanks @GAURAV-1313. - Feature: **Elixir** unqualified calls now resolve to functions brought in by `import`/`use`, scoped per module and fail-closed when no in-scope module defines the name (fixes a large god-node from corpus-wide bare-name binding) (#4015, thanks @Ayushraj06-bit). - Feature: a **bash** script's invocation of another script through a non-shell interpreter (`python3 build.py`, `node build.js`, `"$PYTHON" stage.py`) is now recorded as an `invokes` edge; a `$VAR`/path command word is not mistaken for an interpreter (#4007, thanks @ayushcodes10). - Feature: **Dart** `part` files keep their own file node linked to the library (#4013, #4008), and a configurable import/export (`import 'a.dart' if (...) 'b.dart';`) now links every URI branch, not just the default (#4003, #4002) — thanks @brlumen. - Fix: C# partial-class merging no longer drops recursive/intra-class `calls` edges; one split `partial class` anywhere in a repo used to erase every recursive self-loop graph-wide (#4017, thanks @rohit-jsfreaky). - Fix: `graphify path` (CLI and the MCP `shortest_path` tool) now routes through a `contains` edge back out to a symbol's file, so a cross-file dependency that must pass through a shared symbol is found instead of reporting no path (#4004, #3878, thanks @ayushcodes10). - Fix: the AST cache rebinds its stat index when a later call names a different cache root, so a multi-project process writes each root's `stat-index.json` with only its own files instead of pooling them into the first root's file (#4005, #3989, thanks @ayushcodes10). - Fix: `merge-graphs --previous <merged-graph.json>` restores the previous merged community assignment by node id, so cluster/label reuse stays stable across re-merges; a malformed `--previous` file now errors cleanly instead of crashing (#4006, #3858, thanks @ayushcodes10). - Fix: `cluster-only`/`label` no longer drop parallel edges (two different relations between the same pair) when reloading and rewriting a graph; preserved links track node-id remaps so none are silently dropped on a legacy graph (#4010, #3999, thanks @ayushcodes10). - Fix: the Ollama `num_ctx` setting is merged into `extra_body` instead of replacing it, so a `GRAPHIFY_DISABLE_THINKING` body set on the same backend is no longer silently clobbered (#4029, #3988, thanks @Agnik47). - Fix: the hook-guard reminder names the effective `graph.json` path when `GRAPHIFY_OUT` is customized, instead of always naming the default `graphify-out/graph.json` (#4042, #4040, thanks @DeepanshuPal). - Fix: `graphify extract` refuses to overwrite an existing graph with a dedup-shrunk one unless `--allow-dedup-shrink` is passed; the refusal reports the actual number of nodes dedup merged (#4014, #3774, thanks @SrijanSriv). - Feature: extraction warns once when a cleanly-parsed code file yields no symbols beyond its own file node (often a data literal), while staying silent on empty/whitespace-only files, no-extractor languages, and intentionally-skipped data (#4009, #3946, thanks @ayushcodes10).
Related Repositories
public-apis/public-apis★ 491,140
A collective list of free APIs
NousResearch/hermes-agent★ 255,981
The agent that grows with you
yt-dlp/yt-dlp★ 200,079
A feature-rich command-line audio/video downloader
microsoft/markitdown★ 191,496
Python tool for converting files and office documents to Markdown.
Significant-Gravitas/AutoGPT★ 187,704
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.