v0.9.43

Graphify-Labs/graphifyv0.9.43Aug 14, 2026by safishamsi

AI Summary

This release introduces OCaml support and fixes cross-file resolution issues for nested functions and wiki links.

Key Highlights

  • Adds OCaml support via tree-sitter-ocaml (optional [ocaml] extra) for modules and types.
  • Fixes cross-file INFERRED uses edges to bind to the symbol actually referencing the import.
  • Fixes nested function declarations to be noded and contained by their enclosing scope.
  • Fixes export filenames to budget against the full destination path on Windows.

New Features

  • OCaml support via tree-sitter-ocaml (optional [ocaml] extra).

Full Release Notes

## 0.9.43

- **OCaml support** — `.ml`/`.mli` extraction via tree-sitter-ocaml (optional `[ocaml]` extra). Extracts modules, top-level and module-level values/functions, types and their variant constructors, `open` imports, and function calls; qualified calls (`Geo.area`) resolve to the value, and cross-file `open`/call targets collapse onto the unique real definition via the corpus stub rewire.
- Fix: a cross-file INFERRED `uses` edge now binds to the symbol whose body actually references the imported name (a module-level function is a valid source; a co-located class that never touches the import gets no edge), instead of fanning out from the import line to every class in the file (#2652, thanks @ousamabenyounes).
- Fix: a named `function` declaration nested inside another function — including inside an arrow-defined component (`const Panel = () => { function handleClick(){} }`) or an arrow callback (`useEffect(() => { function h(){} })`) — is now noded, contained by its enclosing scope, and its calls resolve instead of dangling (#2653, thanks @himanshupatro-334).
- Fix: the Bash extractor resolves two more `source` path forms — `source "$(dirname "$VAR")/lib/x.sh"` and a `..` suffix on a tracked-variable base — while a `..` cannot walk past the base's parent to an arbitrary host path, so a hostile corpus can't make the extractor stat or record an out-of-tree file (#2596, thanks @hudsonwa).
- Fix: a wiki article link now targets the article's filename verbatim instead of a percent-encoded twin, so a label with `( ) & #` or non-ASCII no longer produces a link that names no file on disk (#2597, thanks @abhay-codes07).
- Fix: export filenames are budgeted against the full destination path rather than only `NAME_MAX`, so a long output directory on Windows no longer pushes an Obsidian/wiki note path past `MAX_PATH` and aborts the export mid-write (#2655, thanks @abhay-codes07).