# graphify v0.9.41 - Product: graphify (https://whatsnew.fyi/product/graphify) - Vendor: graphify - Date: 2026-08-12 - Version: v0.9.41 - Original notes: https://github.com/Graphify-Labs/graphify/releases/tag/v0.9.41 - Permalink: https://whatsnew.fyi/product/graphify/releases/v0.9.41 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'. --- - **fixed** — 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 - **fixed** — a JS/TS catch binding passed as a call argument no longer fabricates an indirect_call edge to an unrelated same-named callable - **fixed** — Cargo.toml is recognized as a package manifest, minting a canonical package node plus depends_on edges - **fixed** — an explicitly-passed scan root is no longer excluded by an unanchored pattern in a parent-directory .gitignore - **fixed** — the API extraction prompt now instructs backends to capture the per-node rationale attribute, matching the skill path - **fixed** — source_file is canonicalized to POSIX separators, so relative inputs on Windows no longer produce non-portable node ids - **fixed** — 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 - **fixed** — the wiki/obsidian audit trail counts each incident edge once instead of double-counting intra-community edges - **fixed** — C# members inside a #if ... #endif preprocessor block are extracted and attached to their class - **fixed** — query no longer prints the truncation banner when no nodes were actually cut; a genuine node truncation still warns - **fixed** — a PHP use import written with a leading-backslash / fully-qualified prefix now resolves to its target definition - **fixed** — 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 - **fixed** — graphify benchmark no longer crashes on a node whose label is None 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).