v0.9.42
Changed 2
- source_file and model-facing paths are canonicalized to POSIX
- Atomic writes and installs are hardened for Windows, including read-only packaged bundle support
Fixed 12
- JS/TS for...of and for...in loop bindings are now shadowed so they no longer fabricate indirect_call edges
- Python relative subpackage imports (from ..pkg.sub import x) now resolve to the package __init__
- Non-regular files (FIFO/device) in the tree no longer hang extraction and are skipped instead
- .sql files that fail to parse with tree-sitter-sql installed-but-broken now report the real error instead of "not installed"
- graphify update incremental runs now re-queue a file rewritten to the same length within one mtime tick
- Graph provenance (built_at_commit) is now stamped from the analysed repo, not the shell cwd
- Corrupt semantic-cache entries are now surfaced and re-extracted instead of silently missed
- graph_has_legacy_ids no longer false-positives on a global MCP node id
- GRAPH_REPORT.md now uses a portable basename instead of an absolute host path
- apm.yml fallback parser now captures the package version
- affected command now resolves a ./‐relative seed instead of silently returning nothing
- Hyperedge regions in graph.html are now traced in convex-hull order so the shaded polygon no longer self-intersects
A large correctness, determinism, and portability release with fixes from many community contributors.
Extraction / resolution
- JS/TS
for...of/for...inloop bindings are shadowed, so they no longer fabricateindirect_calledges (#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
.sqlfile 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 updateincremental 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_idsno longer false-positives on a global MCP node id (#2408, @aryanbonigala).
Paths / Windows portability
source_fileand 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.mduses a portable basename, not an absolute host path (#2682, @ousamabenyounes).- The
apm.ymlfallback parser captures the package version (#2465, @itskaism).
CLI / export
affectedresolves a./-relative seed instead of silently returning nothing (#2707, @phudayyy).- Hyperedge regions in
graph.htmlare traced in convex-hull order, so the shaded polygon no longer self-intersects (#2449, @ysys143).
Test / docs
- Windows-portability test fixes, a refreshed
ARCHITECTURE.mdmodule 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).