Skip to content

Releases: johnhuang316/code-index-mcp

Release v2.9.1

12 Nov 03:27

Choose a tag to compare

Highlights

  • Expanded whitelist now covers Java web artifacts (JSP/tag files, Grails GSP) plus Gradle/Groovy builds and Protocol Buffers so every search strategy—including Basic—can scan those files.
  • Documentation in all README variants now calls out the new Java web coverage and added template engines (FreeMarker, Mustache, Liquid, ERB).

Release v2.9.0

10 Nov 08:59

Choose a tag to compare

Highlights

  • Upgrade to mcp 1.21.0 and refresh the uv lockfile so we stay current with the November 2025 SDK. This brings in the latest transport/auth fixes (SEP-985 OAuth metadata fallback, Starlette 0.49.1) noted in docs/mcp-upgrade-notes.md.
  • Simplify the FastMCP surface by removing deprecated resource handlers, relying entirely on Context-injected tools to avoid zero-parameter template regressions.
  • Add restart/upgrade documentation (docs/mcp-restart-playbook.md, docs/mcp-upgrade-notes.md) and update .well-known/mcp.llmfeed.json so downstream agents see version 2.9.0.

Validation

  • uv run --no-sync pytest (Python 3.13.2) — 16 tests passed.
  • Manual smoke via the restart playbook (set_project_path → build_deep_index → search_code_advanced) completed cleanly earlier in this cycle.

Release v2.8.1

10 Nov 03:20

Choose a tag to compare

  • fix: standardize MCP entry-point error propagation so FastMCP surfaces structured failures (closes #54)

Release v2.8.0

05 Nov 08:38

Choose a tag to compare

Highlights

  • feat: add Go docstring extraction
  • fix: harden Go import parsing and async discovery
  • ci: reworked release workflow with verification/publish stages
  • tests: expanded Go/Python discovery coverage

Verification

  • uv run pytest
  • uv run code-index-mcp --help
  • uv run python -m build
  • uv run twine check dist/*

Release v2.7.0

30 Oct 06:39

Choose a tag to compare

  • Added pagination defaults to search_code_advanced (10 matches per page) with max_results/start_index controls.

Full Changelog: v2.6.0...v2.7.0

Release v2.6.0

29 Oct 08:36

Choose a tag to compare

Highlights

  • Added --project-path CLI flag so the server can initialize a repository immediately on startup.
  • CLI docs updated across all supported languages to document the new startup flag.
  • Server now guards optional --mount-path usage for older FastMCP versions that do not support it.

Notes

  • Supplying an invalid path with --project-path causes startup to fail fast with a clear error.

2.5.1 - Relative Symbol IDs

29 Oct 06:00

Choose a tag to compare

  • Deep index symbol identifiers now use project-relative paths, preventing SQLite uniqueness collisions during rebuilds.
  • Added regression coverage to ensure duplicate filenames across directories generate distinct symbol IDs.
  • Release notes migrated to Markdown for easier editing.

Full Changelog: v2.5.0...v2.5.1

2.5.0 - SQLite Deep Index & Middleware Coverage

28 Oct 03:44

Choose a tag to compare

Highlights

  • Deep index now persists to SQLite via the new SQLiteIndexStore, replacing the legacy JSON cache while keeping build performance stable.
  • JavaScript strategy records middleware callbacks in the call graph, giving accurate called_by links for Express-style handlers.
  • TypeScript strategy captures limiter callbacks, closing gaps for .ts middleware exports and aligning coverage with JavaScript.
  • Added dedicated regression tests for the SQLite store/manager plus JavaScript and TypeScript call graph fixtures.

Full Changelog: v2.4.1...v2.5.0

2.4.1 - Search Filtering Alignment

03 Oct 02:32

Choose a tag to compare

  • Code search now shares the central FileFilter blacklist, keeping results consistent with indexing (no more node_modules noise).
  • CLI search strategies emit the appropriate exclusion flags automatically (ripgrep, ugrep, ag, grep).
  • Basic fallback search prunes excluded directories during traversal, avoiding unnecessary IO.
  • Added regression coverage for the new filtering behaviour (tests/search/test_search_filters.py).

Full Changelog: v2.4.0...v2.4.1

Shallow Index Default & Streamlined Server

02 Oct 02:51

Choose a tag to compare

Highlights

  • Shallow index by default: Projects initialize with the new JSON-based shallow index for rapid file discovery.
  • Deep index on demand: Added the build_deep_index tool so symbol extraction happens only when you request it.
  • Watcher-friendly rebuilds: File watcher callbacks now refresh the shallow index, keeping file lists current without long rebuilds.
  • Server cleanup: Removed unused structure://project resource, legacy prompts, and auxiliary documents for a leaner runtime.

Developer Experience Improvements

  • find_files now enforces true glob semantics (single * for one segment, ** for recursive matches).
  • get_file_summary responds with a needs_deep_index hint when deep symbols are unavailable.
  • Index management services split shallow vs deep rebuild paths to clarify tool behavior.
  • Repository docs (README, localized copies) highlight when to run build_deep_index.

Cleanups

  • Removed deprecated architecture and benchmarking documents.
  • Trimmed benchmark scripts and outdated tests tied to the old SCIP experiment.

Upgrade Notes

  1. After updating, call set_project_path as usual - the server will build the shallow index automatically.
  2. Run build_deep_index whenever you need symbol-level summaries (get_file_summary) or deep search capabilities.
  3. Optionally run refresh_index to refresh the shallow index if the watcher is disabled.

Compatibility

  • Tool names and signatures are unchanged.
  • Deep-index workflows remain available; they now require an explicit build_deep_index call.
  • Python 3.10+ requirement unchanged; no new third-party dependencies.

Enjoy faster cold starts and a simpler interface tailored for LLM-driven workflows.