graphify v0.9.40

v0.9.40
Fixed 12
  • The 0.9.37 partial-parse warning no longer fires on valid TypeScript/TSX, now firing only when recovery plausibly costs symbols
  • file_hash()'s stat fastpath no longer serves a stale digest when a file is rewritten to the same size within one mtime tick
  • 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
  • normalize_id() is idempotent for Turkish İ and similar codepoints with no ASCII identifier ids changes
  • graph.json collection order is deterministic across runs
  • explain and _find_node resolve node ids containing punctuation or non-ASCII characters

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).
View original

Upgraded? How did it go?

Discussion