Skip to content

v0.9.58

Latest

Choose a tag to compare

@safishamsi safishamsi released this 10 Sep 22:35
  • Fix: a call to a Python function defined nested inside another function now resolves to that inner definition per lexical scope, instead of leaking to a same-named function elsewhere; direct recursion is preserved as a self-loop (#3410, thanks @hopstreax).
  • Fix: submodule imports inside a PEP 420 namespace package (a directory with no __init__.py) now resolve to the target module instead of being dropped (#3429, thanks @flaukowski).
  • Fix: a bare-name import of a module sitting next to the importing file (a flat script dir with no package) now resolves to that sibling — matching CPython's sys.path[0] behavior — without over-resolving a genuine third-party name (#3430, thanks @hopstreax).
  • Fix: a PHP use Foo\Bar as Baz; import keys its local binding on the alias, so later Baz references resolve to the real class, and distinct aliased same-named classes stay separate (#3421, thanks @ayushcodes10).
  • Fix: a directory literally named out is skipped as build output only when there is build-output evidence, so a real source out/ is no longer silently dropped (#3347, thanks @abhay-codes07).
  • Fix: a shell script invoked in exec position through a variable path ("$SCRIPT_DIR/foo.sh") now resolves to the target when the variable holds a constant, matching the existing source handling (#3416, thanks @edwardselby).
  • Fix: added the missing Iterable import in build.py so its type annotations resolve (they were an undefined name) (#3462, thanks @xiongjianxu).
  • Fix: graphify global add no longer infers an empty repo tag for a path like /tmp/graph.json; it degrades to a sensible non-empty tag via the same helper merge-graphs uses (#3464, thanks @xiongjianxu).
  • Feature: SQL extraction now emits index nodes for CREATE [UNIQUE] INDEX, linked to the table they index (#3467, thanks @L4XB).
  • Fix: a TypeScript export * re-export no longer resolves a name to a same-named interface method — only module-level exports are candidates (#3436, thanks @L4XB).
  • Feature: Rust module-level static and const declarations are now extracted as nodes (#3471, thanks @L4XB).
  • Fix: an incremental rebuild no longer drops a node's rationale/summary when a semantic node's absolute source_file collides with its AST twin's relative path during dedup — source paths are normalized first (#3472, thanks @hopstreax).
  • Fix: graphify install no longer aborts when the always-on registration target is unwritable (read-only or symlinked config); it skips that step with an actionable warning and still installs the skill (#3474, thanks @dajiaohuang).
  • Fix: community labelling falls back to an installed claude CLI resolved at run time instead of pinning a path that expires (e.g. under snap/nvm), so labelling keeps working across updates (#3475, thanks @ktsang622).
  • Fix: the all extra now includes psycopg[binary], so pip install 'graphifyy[all]' provides the postgres driver (#3482, thanks @L4XB).