- Fix: the PYTHONHASHSEED determinism pin (0.9.66) now re-execs via
python -m graphifyinstead of replayingargv[0], fixing a Windows regression whereupdate/extract/cluster-only/labelfailed to re-launch through the console-script.exelauncher (#3780, thanks @ayushcodes10). - Feature: PHP closures are now extracted — an anonymous
function(){…}, an arrowfn()=>…, or a closure passed as an argument now produces a node and its inner calls are captured, in all positions including file scope. Route-definition closures get a semanticVERB /pathname (composing nestedgroup()prefixes); other closures get a stable per-scope ordinal (#3461, #3409, thanks @nikhilsaxena04). - Fix: absolute Python package imports (
import pkg.sub,from pkg.sub import x) now resolve to the local package/module node within the scan root, reusing the canonical resolver (bounded walk, PEP 420 namespace handling); an ambiguous module name across scanned trees fails closed rather than binding arbitrarily (#3729, thanks @Ha1baraA11). - Fix: a package/module name collision (
pkg/package alongside apkg.pymodule) no longer produces a phantom import cycle — the spurious provisional edge is retracted while genuine package-init and submodule edges are preserved (#3784, #3777, thanks @hopstreax). - Fix: Terraform secret redaction now also covers secrets nested inside list values (
configs = [{ password = "…" }]), not just maps (#3762, #3644 follow-up, thanks @abhay-codes07). - Fix:
exportno longer rewrites unchanged wiki/Obsidian pages on every run — a page whose content is identical is left untouched (stable mtimes, clean git/Obsidian sync), while changed and new pages still write and orphaned pages are still swept (#3760, #3060, thanks @abhay-codes07).