Skip to content

v0.9.43

Latest

Choose a tag to compare

@safishamsi safishamsi released this 14 Aug 19:17

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).