What's new
- Gemini + OpenAI backends —
graphify extract ./docs --backend gemini(GEMINI_API_KEY / GOOGLE_API_KEY) or--backend openai(OPENAI_API_KEY);pip install graphifyy[gemini]/graphifyy[openai] - Groovy + Spock support —
.groovyand.gradlevia tree-sitter-groovy; Spockdef "feature"()syntax handled via regex fallback - Luau support —
.luau(Roblox Luau) extracted using the Lua parser - Markdown structural extraction — headings, code blocks, and nesting hierarchy extracted as graph nodes from
.md/.mdxfiles (zero new deps) collect_files()extension sync — 18 extensions (.sql,.vue,.svelte,.jsx,.ex,.jl, etc.) were silently skipped in skill-mode extraction; now auto-syncs with_DISPATCH- TS import resolution — bare-path,
.svelte.ts,.svelte.js,index.tsdirectory, and multi-dot imports now resolve correctly
Bug fixes
cluster-onlynow loads and saves.graphify_labels.json— human labels survive re-clustering (#744)graphify export wikifails fast (exit 1) when.graphify_analysis.jsonis missing — prevents silent wiki deletion (#746)detect_incrementalforwardsfollow_symlinks— symlinked subtrees no longer vanish on--update(#736)- Ollama import error now says "Ollama" and points to
pip install openai(#750) - hooks.py path execution validates scripts are within repo root — closes supply-chain attack vector (#747)
Upgrade
uv tool upgrade graphifyy
pip install --upgrade graphifyy