v0.9.1 — fix: jarvis index no longer crashes natively in the tree-sitter syntax baseline
jarvis index was dying with SIGSEGV/SIGBUS before publishing anything: the tree-sitter 0.26.0 runtime corrupts the heap during the syntax-baseline walk. This patch pins the runtime to 0.25.2; every grammar pin is unchanged.
Install
Claude Code plugin:
/plugin marketplace add jarvis-intelligence/jarvis-index
/plugin install jarvis@jarvis
Standalone (uv / uvx):
uvx --from 'jarvis-mcp>=0.9.1' jarvis-server
Fixed
- Native crash in the syntax baseline (jarvis-index#14). The tree-sitter 0.26.0 binding refactor corrupts memory non-deterministically during the declaration walk — crash sites move between runs (attribute read, GC pass, point construction), and the trigger is allocation-layout dependent: a single added print line in the walk loop makes the same input survive, which is exactly why 0.9.0's wheel-build test gates never caught it. Measured at 12 runs per cell: 8/12 and 11/12 native crashes under 0.26.0 (either grammar version), 0/12 under 0.25.2 with identical grammars — the runtime is the broken side, not the grammar pairing. The exact C-level mechanism is documented as unconfirmed in the issue; the fix doesn't depend on it. A subprocess-isolated regression test now walks a synthetic 300-definition module in five fresh interpreters and fails on any nonzero child exit, so a broken runtime can never ship silently again.
- Side effect of the crash, now moot with the fix but worth knowing: a natively-crashed
indexRepochild left the registry row stuck atoutcome: indexingwith a 0-byte log (tracked in #14 as a separate, still-open bug).
Upgrade
Anyone on 0.9.0 should upgrade — the crash makes indexing any Python-sized repo a coin flip. Existing indexes are unaffected; only new index runs were at risk.
See CHANGELOG.md.