v0.8.46
chatboxai/chatboxv0.8.46Jun 23, 2026by safishamsi
AI Summary
A performance-focused release featuring a trigram query prefilter, CUDA support for C++ files, and a graph-health gate to surface warnings before labeling.
Key Highlights
- Trigram query prefilter reduces scan time on large graphs
- CUDA extraction support for .cu and .cuh files
- Graph-health gate added to skill runbook
- Cross-file type annotations now resolve to a single canonical node
New Features
- Trigram indexing for faster queries
- CUDA kernel and host function extraction
- Semantic cache anchoring on scan root
Full Release Notes
Faster queries, a graph-health gate in the skill runbook, CUDA support, and a batch of extraction/install fixes. ## Performance - **Trigram query prefilter** — `graphify query`/`path`/`explain` and the MCP query tools now narrow candidates via a trigram index (built once per graph, rebuilt on hot-reload) before the IDF scorer, cutting the previous O(N) scan on large graphs. The prefilter is a strict superset of the exhaustive scorer, so results and ranking are unchanged; short/CJK/low-selectivity queries fall back to the full scan (#1431, thanks @papinto). ## Skill runbook - **Step 4.5 graph-health gate** — after building the graph, the runbook runs `diagnose_extraction` and surfaces dangling/self-loop/collapsed-edge warnings before labeling (read-only; never aborts). It also **anchors the semantic cache on the scan root** so cache hits survive a non-cwd scan (#1437, thanks @bahcgscateringsa-design). ## Languages - **CUDA** (`.cu`/`.cuh`) is now extracted via the existing C++ (`tree-sitter-cpp`) grammar — no new dependency. Kernels, host functions, structs, includes and host call edges are captured; `<<<grid, block>>>` launch syntax parses cleanly (#1411). ## Extraction quality - **No more phantom duplicate nodes from cross-file type annotations.** A class defined once but referenced via type annotations in N files produced 1+N nodes (the extras with the file path baked into the id, e.g. `pkg_a_py_thing`). The cross-file reference now resolves to the single canonical definition — fixed across all six language extractors (#1402, thanks @ZedUserdesign). ## Install & misc fixes - `graphify install --platform hermes` installs to `%LOCALAPPDATA%\hermes\skills` on Windows (where Hermes scans), not `~/.hermes/skills` (#1403, thanks @SHJordan). - The opencode plugin's search reminder no longer contains backticks that bash executed as a command substitution on every search (#1413, thanks @WSHAPER). - `to_obsidian`/`to_canvas` never emit punctuation-only filenames (e.g. `@.md`) that break downstream re-sluggers — they fall back to `unnamed` (#1409, thanks @Mylock51). - `graphify extract --cargo` exits with a clear error instead of a traceback when `Cargo.toml` is missing/unreadable (#1428, thanks @DhruvTilva). - Internal: resolved an `F821` in `prs.py` via a `TYPE_CHECKING` import (#1429, thanks @DhruvTilva).