# graphify v0.9.49 - Product: graphify (https://whatsnew.fyi/product/graphify) - Vendor: graphify - Date: 2026-08-24 - Version: v0.9.49 - Original notes: https://github.com/Graphify-Labs/graphify/releases/tag/v0.9.49 - Permalink: https://whatsnew.fyi/product/graphify/releases/v0.9.49 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — graphify merge-graphs now links type declarations that two repos share with a same_type_as edge, making shared contract types navigable across repo boundaries - **added** — C# properties now emit a member node per property, making properties visible as class members alongside fields and methods - **added** — C# object-creation expressions (new Foo()) now emit a calls edge to the constructed type, making constructor usage visible in the graph - **added** — When a C# interface has exactly one implementing class, its methods are now linked to that implementation with a dispatches_to edge - **fixed** — C/C++/Objective-C declarations and definitions now merge into one node pointing at the definition site instead of the header prototype - **fixed** — Bash command substitution on the right of an assignment (x=$(fn)) now emits a calls edge like a bare $(fn) - **fixed** — SQL CREATE TABLE wrapped in a BEGIN/COMMIT transaction is now extracted, not just top-level DDL - **fixed** — Zig methods declared on enums and unions are now extracted, along with the calls in their bodies - **fixed** — Julia abstract types declared with a supertype (abstract type Dog <: Animal end) are now extracted with their inherits edge - **fixed** — Common Lisp defclass whose superclass lives in another file now keeps its inherits edge - **fixed** — PowerShell enum definitions and their members are now extracted as real sourced nodes - **fixed** — Semantic results with no nodes and no hyperedges are no longer cached, so empty LLM replies no longer freeze files out of future re-dispatch - **fixed** — Fresh semantic results are now scoped to files actually dispatched before reaching the graph merge, preventing out-of-scope contributions - **fixed** — graphify extract --code-only --force over an existing graph now preserves the document/paper/image semantic layer - **fixed** — Classes inheriting from built-in bases no longer collapse onto same-named classes in other languages in multilanguage repos - **fixed** — The git post-commit hook now resolves graphify when installed as a uv tool - **fixed** — Re-exporting into an Obsidian vault now adopts graphify's own notes instead of orphaning them - **fixed** — The tsconfig/jsconfig alias and baseUrl caches are now cleared per extraction run - **fixed** — The C# extractor now emits references edges for types used as generic arguments at call sites and in field declarations - **fixed** — Oversized PDFs are now sliced through their text converter with token count estimated from extracted text rather than raw container - Feature: `graphify merge-graphs` now links a type declaration that two repos share — same fully-qualified namespace and name, from different repos — with a `same_type_as` edge, so a shared contract type is navigable across the repo boundary; two unrelated types that merely share a short name are not linked (#3007, thanks @durmazoguzhan). - Feature: C# properties now emit a member node per property, so a property is visible as a class member alongside fields and methods; the property's type still emits its references edge and no built-in types are fabricated (#3006, thanks @durmazoguzhan). - Fix: when a C/C++/Objective-C declaration and its definition merge into one node, the node now points at the definition site (the implementation body) instead of the header prototype; the pick is deterministic regardless of file order, and a declaration with no definition keeps its own site (#2990, thanks @winesoft-namjin-yun). - Fix: a bash command substitution on the right of an assignment (`x=$(fn)`) now emits a `calls` edge like a bare `$(fn)`, while argument-position and process substitutions stay suppressed (#2978, thanks @akshitj11). - Fix: a SQL `CREATE TABLE` wrapped in a `BEGIN`/`COMMIT` transaction is now extracted, not just top-level DDL (#2953, thanks @akshitj11). - Feature: C# object-creation expressions (`new Foo()`) now emit a `calls` edge to the constructed type, so constructor usage is visible in the graph; built-in and out-of-corpus types are not fabricated and a qualified construction resolves against declared namespaces (#2997, thanks @durmazoguzhan). - Feature: when a C# interface has exactly one implementing class, its methods are now linked to that implementation with a `dispatches_to` edge, so a call through an injected dependency reaches the implementation; guarded against false links (single implementer, single case-sensitively same-named method, both ends C#) (#3003, thanks @durmazoguzhan). - Fix: Zig methods declared on enums and unions (not just structs) are now extracted, along with the calls in their bodies (#2999, thanks @rajatnagda45). - Fix: a Julia abstract type declared with a supertype (`abstract type Dog <: Animal end`) is now extracted with its `inherits` edge instead of being dropped (#3000, thanks @rajatnagda45). - Fix: a Common Lisp `defclass` whose superclass lives in another file now keeps its `inherits` edge — the cross-file base is a sourceless stub that the corpus rewire collapses onto the real definition (#3001, thanks @rajatnagda45). - Fix: PowerShell `enum` definitions and their members are now extracted as a real sourced node, so a `[Color]` type reference resolves to the enum instead of a phantom stub (#3002, thanks @rajatnagda45). - Fix: a semantic result with no nodes and no hyperedges is no longer cached and stamped into the manifest, so an empty or degenerate LLM reply for a file no longer freezes it out of future re-dispatch; an existing manifest carrying such a stamp is healed by re-queueing those files (#2927, thanks @hopstreax). - Fix: fresh semantic results are now scoped to the files actually dispatched before they reach the graph merge, so a stray fragment the model misattributes to a non-dispatched file can no longer replace that file's prior contribution (this also silences the "skipped out-of-scope source_file" warning) (#2926, thanks @SinghAman21). - Fix: `graphify extract --code-only --force` over an existing graph now preserves the document/paper/image semantic layer instead of dropping it; files deleted from disk are still pruned (#2923, thanks @santhiprakash). - Fix: a class that inherits from a built-in base (e.g. PHP `extends \Exception`) no longer collapses onto a same-named class in another language, so a PHP+TypeScript monorepo stops growing a phantom cross-language inheritance edge / god node; same-language inheritance and user classes named like a built-in still link (#2812, thanks @ousamabenyounes). - Fix: the git post-commit hook now resolves graphify when it _[Truncated at 4000 characters — full notes: https://github.com/Graphify-Labs/graphify/releases/tag/v0.9.49]_