v0.9.43
Added 1
- OCaml support with `.ml`/`.mli` extraction via tree-sitter-ocaml (optional `[ocaml]` extra), extracting modules, top-level and module-level values/functions, types and their variant constructors, `open` imports, and function calls
Fixed 5
- Cross-file INFERRED `uses` edge now binds to the symbol whose body actually references the imported name instead of fanning out from the import line to every class in the file
- Named `function` declaration nested inside another function, including inside an arrow-defined component or an arrow callback, is now noded, contained by its enclosing scope, and its calls resolve
- Bash extractor resolves two more `source` path forms including `source "$(dirname "$VAR")/lib/x.sh"` and a `..` suffix on a tracked-variable base, while preventing `..` from walking past the base's parent to an arbitrary host path
- Wiki article link now targets the article's filename verbatim instead of a percent-encoded twin, so a label with special characters or non-ASCII no longer produces a link that names no file on disk
- 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`
0.9.43
- OCaml support —
.ml/.mliextraction via tree-sitter-ocaml (optional[ocaml]extra). Extracts modules, top-level and module-level values/functions, types and their variant constructors,openimports, and function calls; qualified calls (Geo.area) resolve to the value, and cross-fileopen/call targets collapse onto the unique real definition via the corpus stub rewire. - Fix: a cross-file INFERRED
usesedge 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
functiondeclaration 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
sourcepath 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 pastMAX_PATHand aborts the export mid-write (#2655, thanks @abhay-codes07).