• v0.5.7 8b2e5e21b5

    code-index v0.5.7
    All checks were successful
    CI / cargo fmt (push) Successful in 16s
    Release Build / Generate Version (push) Successful in 25s
    CI / cargo clippy (push) Successful in 46s
    CI / cargo test (push) Successful in 2m56s
    Release Build / Build linux-x86_64 (push) Successful in 4m32s
    Release Build / Build linux-x86_64-musl (push) Successful in 5m1s
    Release Build / Build windows-x86_64 (push) Successful in 5m33s
    Release Build / Build linux-aarch64 (push) Successful in 5m34s
    Release Build / Create Forgejo Release (push) Successful in 1m51s
    Stable

    buildagent released this 2026-07-07 11:28:13 +02:00 | 218 commits to master since this release

    code-index v0.5.7

    A correctness + robustness point release. Six issues found by dogfooding the
    live v0.5.6 MCP server are fixed, each with end-to-end tests and an independent
    multi-reviewer pass. Schema advances v10 → v11 (auto-migrated on first run —
    see the upgrade note below).

    Three-binary release: code-index-mcp (MCP stdio bridge — the usual entry),
    code-index-daemon (long-lived watcher + RPC server, auto-spawned), and
    code-index (CLI: init, index, watch, doctor, link).

    Fixes

    • get_dependencies(direction:"in"/"both") now finds qualified importers.
      The reverse-dependency lookup matched import paths by whole-string equality, so
      a qualified import (use crate::gitdiff::X, from pkg.services import Y,
      ../util/fs) never matched a file's module name and the tool returned zero
      importers
      for essentially every file. It now matches by path segment.

    • find_references(exclude_tests:true) now hides refs in *_tests modules.
      Test-role tagging only recognized modules named exactly tests/test, so refs
      inside #[cfg(test)] mod foo_tests { … } (a common convention) leaked into
      results and under-counted excluded_test_refs. The rule now also covers
      *_test/*_tests (case-sensitive, matching Rust conventions).

    • changed_symbols no longer errors on large diffs. A branch-wide diff
      (base="main") could exceed the response size limit and hard-error. The
      response is now bounded (total files + symbols, including untracked) and
      reports truncated with honest omitted_files/omitted_symbols counts —
      it degrades gracefully instead of failing.

    • changed_symbols no longer flags text files as stale. index_stale fired
      on non-source files (Cargo.lock, .md, …) that have no symbols to shift. It now
      only applies to language-parsed source files.

    • file_outline concise docs now accurately list end_line (always emitted).

    Upgrade note (schema v11)

    Migration m0011 re-applies the broadened test-module tagging to your existing
    index on first open — a one-time, additive, idempotent pass, no reparse
    required
    . After upgrading, exclude_tests immediately works correctly on
    already-indexed files (verified on a real index: ~2,400 previously-missed test
    refs corrected in place).

    Downloads

    Platform Archive
    Linux x86_64 (glibc) code-index-v0.5.7-linux-x86_64.tar.gz
    Linux x86_64 (static/musl) code-index-v0.5.7-linux-x86_64-musl.tar.gz
    Linux ARM64 code-index-v0.5.7-linux-aarch64.tar.gz
    Windows x64 code-index-v0.5.7-windows-x86_64.zip

    (macOS builds are added once a macOS runner is registered.) SHA256 checksums
    (.sha256) accompany every archive.

    Wire into Claude Code

    { "mcpServers": { "code-index": { "command": "/usr/local/bin/code-index-mcp", "args": ["--root", "/path/to/your/project"] } } }
    

    Full commit log: git log v0.5.6..v0.5.7.

    Downloads