# graphify v0.9.40 - Product: graphify (https://whatsnew.fyi/product/graphify) - Vendor: graphify - Date: 2026-08-11 - Version: v0.9.40 - Original notes: https://github.com/Graphify-Labs/graphify/releases/tag/v0.9.40 - Permalink: https://whatsnew.fyi/product/graphify/releases/v0.9.40 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** — The 0.9.37 partial-parse warning no longer fires on valid TypeScript/TSX, now firing only when recovery plausibly costs symbols - **fixed** — file_hash()'s stat fastpath no longer serves a stale digest when a file is rewritten to the same size within one mtime tick - **fixed** — Stored-path absoluteness is detected cross-platform so a POSIX-absolute source_file from a Linux/CI-built graph no longer leaks into node ids on Windows - **fixed** — normalize_id() is idempotent for Turkish İ and similar codepoints with no ASCII identifier ids changes - **fixed** — graph.json collection order is deterministic across runs - **fixed** — explain and _find_node resolve node ids containing punctuation or non-ASCII characters - **fixed** — .graphifyignore patterns match regardless of Unicode NFC/NFD normalization so accented ignore rules work on macOS - **fixed** — Obsidian vault metadata directories .obsidian and .smart-env are skipped during detection - **fixed** — A single unparenthesised arrow parameter no longer fabricates an indirect_call edge to an unrelated same-named callable - **fixed** — Python extraction no longer crashes resolving an over-deep relative import above the package root - **fixed** — A Go qualified type resolves by import path instead of binding by bare name to an unrelated same-named symbol - **fixed** — graph.html's document title no longer embeds the generator's absolute host path Correctness and determinism release: fixes a TypeScript false-warning regression, several node-id / path / cache determinism bugs, a Python crash, a Go phantom-reference, and more — with fixes from many community contributors. - Fix: the 0.9.37 partial-parse warning no longer fires on valid TypeScript/TSX (#2610, #2599, thanks @Sid-AutoWisdom and @atlasplatformu-ai). The warning now fires only when recovery plausibly cost symbols, so valid TS with a `&` in a JSX string attribute or a semicolon-less `in_*` interface member is silent, while the genuine Kotlin one-line-body and Luau cases still warn. - Fix: `file_hash()`'s stat fastpath no longer serves a stale digest when a file is rewritten to the same size within one mtime tick (#2612, thanks @rajarshidattapy). - Fix: stored-path absoluteness is detected cross-platform, so a POSIX-absolute `source_file` from a Linux/CI-built graph no longer leaks into node ids on Windows (#2618, thanks @rajarshidattapy). - Fix: `normalize_id()` is idempotent for Turkish `İ` and similar codepoints; no ASCII identifier ids change (#2614, thanks @rajarshidattapy). - Fix: `graph.json` collection order is deterministic across runs (#2582, thanks @hjotha). - Fix: `explain` / `_find_node` resolve node ids containing punctuation or non-ASCII characters (#2467, thanks @sean-soomgo). - Fix: `.graphifyignore` patterns match regardless of Unicode NFC/NFD normalization, so an accented ignore rule works on macOS (#2544, thanks @bruno-growthsales). - Fix: Obsidian vault metadata directories (`.obsidian`, `.smart-env`) are skipped during detection (#2493, thanks @rohit-jsfreaky). - Fix: a single unparenthesised arrow parameter (`x => f(x)`) is shadowed, so it no longer fabricates an `indirect_call` edge to an unrelated same-named callable (thanks @imagineers-tyler); follows the 0.9.38 sibling-closure fix (#2568). - Fix: Python extraction no longer crashes resolving an over-deep relative import above the package root (#2605, thanks @SinghAman21). - Fix: a Go qualified type (`pkg.Type`) resolves by import path instead of binding by bare name to an unrelated same-named symbol (#2608, thanks @gnukeno). - Fix: `graph.html`'s document title no longer embeds the generator's absolute host path (#2598, thanks @michaelxer).