Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -487,6 +487,8 @@ Intra-class call binding across five languages, new language-structure coverage,
- Fix: a PHP `use` import written with a leading-backslash / fully-qualified prefix now resolves to its target definition instead of being dropped (#2661, thanks @ousamabenyounes).
- Fix: an unresolved local JS/TS import (to a file absent from the scan) now emits a stable, portable `ref` target id instead of leaking a per-checkout absolute-path slug (#2457, thanks @rohit-jsfreaky).
- Fix: `graphify benchmark` no longer crashes on a node whose label is `None` (#2674, thanks @Arthuro0103).
- Feat: `graphify vibe install` adds full-parity Mistral Vibe (mistralai/mistral-vibe) support — skill file with `user-invocable: true` frontmatter (exposes `/graphify` as a native slash command in vibe's autocomplete), `AGENTS.md` always-on section, and two `pre_tool` hooks in `.vibe/hooks.toml` (matchers `grep` and `read_file` — vibe's snake-cased tool names per `vibe/core/tools/base.py:get_name`) that nudge toward `graphify query` for search/read operations. Global scope honors `VIBE_HOME`, hook ownership is `name`-based (never touches user-authored hooks that happen to shell out to graphify), and `hooks.toml` merges preserve hand-authored comments via `tomlkit`. Verified end-to-end against vibe 2.24.0.
- Fix: `graphify vibe install` now also writes a writable `graphify-extract` subagent to `<scope>/agents/graphify-extract.toml` and the skill fragment dispatches Task calls with `subagent_type="graphify-extract"` (#2537 review, thanks @MusicalNinjaDad). Vibe's built-in `explore` subagent (`vibe/core/agents/models.py:EXPLORE`) is read-only — its `enabled_tools = ["grep", "read_file", "skill"]` cannot write chunk JSON — so semantic extraction inheriting it silently produced zero `.graphify_chunk_NN.json` files and the pipeline aborted. The new agent enables `write_file` scoped to `**/graphify-out/.graphify_chunk_*.json` only (no unbounded write grant), reuses the `explore` system prompt, and is registered/unregistered by `_install_vibe_extract_agent` / `_uninstall_vibe_extract_agent` symmetric to the hook flow. `uninstall_all` sweeps it alongside the rest.

## 0.9.40 (2026-08-11)

Expand Down
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,7 @@ for example `graphify claude install --project` or `graphify codex install --pro
| Cursor | `graphify cursor install` |
| Devin CLI | `graphify devin install` |
| Google Antigravity | `graphify antigravity install` |
| Mistral Vibe | `graphify install --platform vibe` |

Codex users also need `multi_agent = true` under `[features]` in `~/.codex/config.toml` for parallel extraction. CodeBuddy uses the same Agent tool and PreToolUse hook mechanism as Claude Code. Factory Droid uses the `Task` tool for parallel subagent dispatch. OpenClaw and Aider use sequential extraction (parallel agent support is still early on those platforms). Trae uses the Agent tool for parallel subagent dispatch and does **not** support `PreToolUse` hooks, so AGENTS.md is the always-on mechanism.

Expand Down Expand Up @@ -311,6 +312,7 @@ Run this once in your project after building a graph:
| Pi coding agent | `graphify pi install` |
| Devin CLI | `graphify devin install` |
| Google Antigravity | `graphify antigravity install` |
| Mistral Vibe | `graphify vibe install` |

This writes a small config file that tells your assistant to consult the knowledge graph for codebase questions, preferring scoped queries like `graphify query "<question>"` over reading the full report or grepping raw files.

Expand Down Expand Up @@ -792,6 +794,10 @@ graphify devin install # skill file + .windsurf/rules/graphify.md (D
graphify devin uninstall
graphify antigravity install # .agents/rules + .agents/workflows (Google Antigravity)
graphify antigravity uninstall
graphify vibe install # ~/.vibe/skills + AGENTS.md + hooks.toml pre_tool guards (Mistral Vibe)
graphify vibe install --project # project-scoped: .vibe/skills + AGENTS.md + .vibe/hooks.toml
graphify vibe install --strict # block first raw read per session (matches claude --strict)
graphify vibe uninstall

graphify extract ./docs # headless LLM extraction for CI (no IDE needed)
graphify extract ./docs --backend gemini # explicit backend: gemini, kimi, claude, openai, deepseek, ollama, bedrock, or claude-cli
Expand Down
10 changes: 10 additions & 0 deletions graphify/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,16 @@
_uninstall_kilo_plugin,
_uninstall_opencode_plugin,
_vscode_skill_destination,
_uninstall_vibe_hook,
_vibe_install,
_vibe_uninstall,
_install_vibe_hook,
_vibe_hooks_path,
_vibe_hook_entries,
_install_vibe_extract_agent,
_uninstall_vibe_extract_agent,
_vibe_extract_agent_path,
_vibe_agents_dir,
claude_install,
claude_uninstall,
codebuddy_install,
Expand Down
1 change: 1 addition & 0 deletions graphify/detect.py
Original file line number Diff line number Diff line change
Expand Up @@ -952,6 +952,7 @@ def _is_regular_file(path: Path) -> bool:
".graphify", # graphify's own extraction cache — never index self-generated data
".obsidian", ".smart-env", # Obsidian vault metadata and plugin caches (#2493)
".worktrees", # git worktree convention (#947) — sibling checkouts, always redundant
".vibe", # Mistral Vibe project-scope skill/agent/hook install dir (#2537)
}

# Large generated files that are never useful to extract
Expand Down
Loading