Skip to content

Commit efba963

Browse files
committed
chore(release): bump version to 2.4.1
1 parent 98075ba commit efba963

File tree

5 files changed

+78
-3
lines changed

5 files changed

+78
-3
lines changed

AGENTS.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Repository Guidelines
2+
3+
## Project Structure & Module Organization
4+
Code Index MCP lives in `src/code_index_mcp/`, with `indexing/` managing builders, `services/` exposing MCP tool implementations, `search/` coordinating query utilities, and `utils/` housing cross-cutting helpers. The lightweight CLI bootstrapper is `run.py`, which adds `src/` to `PYTHONPATH` before invoking `code_index_mcp.server`. Sample corpora for language regression reside under `test/sample-projects/` (for example `python/user_management/`). Reserve `tests/` for runnable suites and avoid checking in generated `__pycache__` artifacts.
5+
6+
## Build, Test, and Development Commands
7+
Install dependencies with `uv sync` after cloning. Use `uv run code-index-mcp` to launch the MCP server directly, or `uv run python run.py` when you need the local sys.path shim. During development, `uv run code-index-mcp --help` will list available CLI flags, and `uv run python -m code_index_mcp.server` mirrors the published entry point for debugging.
8+
9+
## Coding Style & Naming Conventions
10+
Target Python 3.10+ and follow the `.pylintrc` configuration: 4-space indentation, 100-character line limit, and restrained function signatures (<= 7 parameters). Modules and functions stay `snake_case`, classes use `PascalCase`, and constants remain uppercase with underscores. Prefer explicit imports from sibling packages (`from .services import ...`) and keep logging to stderr as implemented in `server.py`.
11+
12+
## Testing Guidelines
13+
Automated tests should live under `tests/`, mirroring the package hierarchy (`tests/indexing/test_shallow_index.py`, etc.). Use `uv run pytest` (with optional `-k` selectors) for unit and integration coverage, and stage representative fixtures inside `test/sample-projects/` when exercising new language strategies. Document expected behaviors in fixtures' README files or inline comments, and fail fast if tree-sitter support is not available for a language you add.
14+
15+
## Commit & Pull Request Guidelines
16+
Follow the Conventional Commits style seen in history (`feat`, `fix`, `refactor(scope): summary`). Reference issue numbers when relevant and keep subjects under 72 characters. Pull requests should include: 1) a concise problem statement, 2) before/after behavior or performance notes, 3) instructions for reproducing test runs (`uv run pytest`, `uv run code-index-mcp`). Attach updated screenshots or logs when touching developer experience flows, and confirm the file watcher still transitions to "active" in manual smoke tests.
17+
18+
## Agent Workflow Tips
19+
Always call `set_project_path` before invoking other tools, and prefer `search_code_advanced` with targeted `file_pattern` filters to minimize noise. When editing indexing strategies, run `refresh_index` in between changes to confirm cache rebuilds. Clean up temporary directories via `clear_settings` if you notice stale metadata, and document any new tooling you introduce in this guide.
20+
21+
## Release Preparation Checklist
22+
- Update the project version everywhere it lives: `pyproject.toml`, `src/code_index_mcp/__init__.py`, and `uv.lock`.
23+
- Add a release note entry to `RELEASE_NOTE.txt` for the new version.
24+
- Commit the version bump (plus any release artifacts) and push the branch to `origin`.
25+
- Create a git tag for the new version and push the tag to `origin`.

RELEASE_NOTE.txt

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
## 2.4.1 - Search Filtering Alignment
2+
3+
### Highlights
4+
- Code search now shares the central FileFilter blacklist, keeping results consistent with indexing (no more `node_modules` noise).
5+
- CLI search strategies emit the appropriate exclusion flags automatically (ripgrep, ugrep, ag, grep).
6+
- Basic fallback search prunes excluded directories during traversal, avoiding unnecessary IO.
7+
- Added regression coverage for the new filtering behaviour (`tests/search/test_search_filters.py`).
8+
9+
### Upgrade Notes
10+
- No new dependencies; update via standard `uv sync` after pulling.
11+
- Run `uv run pytest` to confirm the new search filter tests on your environment.
12+
13+
## Shallow Index Default & Streamlined Server
14+
15+
This release focuses on faster first-run experiences and a slimmer MCP surface area.
16+
17+
### Highlights
18+
19+
- **Shallow index by default**: Projects initialize with the new JSON-based shallow index for rapid file discovery.
20+
- **Deep index on demand**: Added the `build_deep_index` tool so symbol extraction happens only when you request it.
21+
- **Watcher-friendly rebuilds**: File watcher callbacks now refresh the shallow index, keeping file lists current without long rebuilds.
22+
- **Server cleanup**: Removed unused `structure://project` resource, legacy prompts, and auxiliary documents for a leaner runtime.
23+
24+
### Developer Experience Improvements
25+
26+
- `find_files` now enforces true glob semantics (single `*` for one segment, `**` for recursive matches).
27+
- `get_file_summary` responds with a `needs_deep_index` hint when deep symbols are unavailable.
28+
- Index management services split shallow vs deep rebuild paths to clarify tool behavior.
29+
- Repository docs (README, localized copies) highlight when to run `build_deep_index`.
30+
31+
### Cleanups
32+
33+
- Removed deprecated architecture and benchmarking documents.
34+
- Trimmed benchmark scripts and outdated tests tied to the old SCIP experiment.
35+
36+
### Upgrade Notes
37+
38+
1. After updating, call `set_project_path` as usual - the server will build the shallow index automatically.
39+
2. Run `build_deep_index` whenever you need symbol-level summaries (`get_file_summary`) or deep search capabilities.
40+
3. Optionally run `refresh_index` to refresh the shallow index if the watcher is disabled.
41+
42+
### Compatibility
43+
44+
- Tool names and signatures are unchanged.
45+
- Deep-index workflows remain available; they now require an explicit `build_deep_index` call.
46+
- Python 3.10+ requirement unchanged; no new third-party dependencies.
47+
48+
Enjoy faster cold starts and a simpler interface tailored for LLM-driven workflows.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "code-index-mcp"
7-
version = "2.4.0"
7+
version = "2.4.1"
88
description = "Code indexing and analysis tools for LLMs using MCP"
99
readme = "README.md"
1010
requires-python = ">=3.10"

src/code_index_mcp/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
A Model Context Protocol server for code indexing, searching, and analysis.
44
"""
55

6-
__version__ = "2.4.0"
6+
__version__ = "2.4.1"
7+

uv.lock

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)