Skip to content

Commit 3970a07

Browse files
author
johnhuang316
committed
chore: prepare v0.4.1 release
- Fix ag search strategy to properly convert glob patterns to regex - Pattern "*.py" now correctly converts to "\.py$" for ag's -G parameter - Pattern "test_*.js" now correctly converts to "^test_.*\.js$" - Ensures consistent file filtering behavior across all search tools - Update search_code_advanced docstring to reflect current behavior - Clarify file_pattern handling: all tools now support glob patterns consistently - Clarify fuzzy parameter behavior: ugrep provides true fuzzy search, others use word boundaries - Bump version to 0.4.1 in pyproject.toml and __init__.py - Add comprehensive release notes for v0.4.1
1 parent af72ab5 commit 3970a07

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

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 = "0.3.2"
7+
version = "0.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: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
A Model Context Protocol server for code indexing, searching, and analysis.
44
"""
55

6-
__version__ = "0.3.0"
6+
__version__ = "0.4.1"

src/code_index_mcp/server.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -328,17 +328,18 @@ def search_code_advanced(
328328
case_sensitive: Whether the search should be case-sensitive.
329329
context_lines: Number of lines to show before and after the match.
330330
file_pattern: A glob pattern to filter files to search in (e.g., "*.py", "*.js", "test_*.py").
331-
IMPORTANT: Different tools handle file patterns differently:
331+
All search tools now handle glob patterns consistently:
332332
- ugrep: Uses glob patterns (*.py, *.{js,ts})
333333
- ripgrep: Uses glob patterns (*.py, *.{js,ts})
334-
- ag (Silver Searcher): Converts globs to regex internally (may have limitations)
335-
- grep: Basic pattern matching only
336-
For best compatibility, use simple patterns like "*.py" or "*.js".
337-
fuzzy: If True, enables partial/boundary matching (not true fuzzy search).
338-
IMPORTANT: This is NOT edit-distance fuzzy matching, but word boundary matching.
339-
- ugrep: Native fuzzy search with --fuzzy flag (true fuzzy search)
340-
- Other tools: Word boundary pattern matching
341-
For literal string searches, set fuzzy=False (recommended for exact matches).
334+
- ag (Silver Searcher): Automatically converts globs to regex patterns
335+
- grep: Basic glob pattern matching
336+
All common glob patterns like "*.py", "test_*.js", "src/*.ts" are supported.
337+
fuzzy: If True, enables fuzzy/partial matching behavior varies by search tool:
338+
- ugrep: Native fuzzy search with --fuzzy flag (true edit-distance fuzzy search)
339+
- ripgrep, ag, grep, basic: Word boundary pattern matching (not true fuzzy search)
340+
IMPORTANT: Only ugrep provides true fuzzy search. Other tools use word boundary
341+
matching which allows partial matches at word boundaries.
342+
For exact literal matches, set fuzzy=False (default and recommended).
342343
regex: If True, enables regex pattern matching. Use this for patterns like "ERROR|WARN".
343344
The pattern will be validated for safety to prevent ReDoS attacks.
344345
If False (default), uses literal string search.

0 commit comments

Comments
 (0)