v0.9.42
Graphify-Labs/graphifyv0.9.42Aug 13, 2026by safishamsi
AI Summary
A release emphasizing determinism and portability, fixing loop bindings, Python imports, and Windows path handling.
Key Highlights
- JS/TS `for...of` and `for...in` loop bindings are now shadowed to prevent edge fabrication.
- Python relative subpackage imports now resolve to the package `__init__` file.
- Graph provenance (`built_at_commit`) is stamped from the repo, not the shell working directory.
- Source file paths are canonicalized to POSIX for Windows to prevent ghost paths.
Full Release Notes
A large correctness, determinism, and portability release with fixes from many community contributors. **Extraction / resolution** - JS/TS `for...of` / `for...in` loop bindings are shadowed, so they no longer fabricate `indirect_call` edges (#2685, @ousamabenyounes) — completes the loop/closure/catch shadow family (#2568/#2569/#2517). - Python relative subpackage imports (`from ..pkg.sub import x`) resolve to the package `__init__` (#2688, @ousamabenyounes). - A non-regular file (FIFO/device) in the tree no longer hangs extraction; non-regular files are skipped (#2463, @itskaism). - A `.sql` file that fails to parse with tree-sitter-sql installed-but-broken now reports the real error instead of "not installed" (#2602, @ousamabenyounes). **Determinism / data integrity** - `graphify update` incremental runs re-queue a file rewritten to the same length within one mtime tick (#2466, @itskaism), complementing the 0.9.40 file-hash guard (#2612). - Graph provenance (`built_at_commit`) is stamped from the analysed repo, not the shell cwd (#2699, @C0KERNEL). - Corrupt semantic-cache entries are surfaced and re-extracted instead of silently missed (#2683, @ousamabenyounes). - `graph_has_legacy_ids` no longer false-positives on a global MCP node id (#2408, @aryanbonigala). **Paths / Windows portability** - `source_file` and the model-facing paths are canonicalized to POSIX; atomic writes and installs are hardened for Windows, incl. a read-only packaged bundle (#2620/#2622, @rajarshidattapy; #2453, @bensleveritt). - `GRAPH_REPORT.md` uses a portable basename, not an absolute host path (#2682, @ousamabenyounes). - The `apm.yml` fallback parser captures the package version (#2465, @itskaism). **CLI / export** - `affected` resolves a `./`-relative seed instead of silently returning nothing (#2707, @phudayyy). - Hyperedge regions in `graph.html` are traced in convex-hull order, so the shaded polygon no longer self-intersects (#2449, @ysys143). **Test / docs** - Windows-portability test fixes, a refreshed `ARCHITECTURE.md` module table with a doc-parity test, and README notes on CI parity + Windows prerequisites (#2620/#2622/#2126/#2642/#2646/#2647/#2648/#2651, @rajarshidattapy/@redzwanmutalib/@nelsondeleonc-source).