tree-sitter-analyzer 1.3.2__tar.gz → 1.3.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of tree-sitter-analyzer might be problematic. Click here for more details.
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/CHANGELOG.md +18 -2
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/PKG-INFO +1 -1
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/pyproject.toml +2 -2
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/__init__.py +1 -1
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/fd_rg_utils.py +1 -1
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/find_and_grep_tool.py +26 -2
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/uv.lock +1 -1
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/.gitattributes +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/.gitignore +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/.kiro/steering/product.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/.kiro/steering/structure.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/.kiro/steering/tech.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/.pre-commit-config.yaml +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/.pre-commit-hooks.yaml +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/AI_COLLABORATION_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/CODE_STYLE_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/CONTRIBUTING.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/DEPLOYMENT_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/GITFLOW.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/GITFLOW_ja.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/GITFLOW_zh.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/LANGUAGE_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/LLM_CODING_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/MCP_SETUP_DEVELOPERS.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/MCP_SETUP_USERS.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/PROJECT_ROOT_CONFIG.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/PYPI_RELEASE_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/README.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/README_ja.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/README_zh.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/REFACTORING_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/build_standalone.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/check_quality.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/docs/GITFLOW_BEST_PRACTICES.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/docs/RELEASE_EXECUTION_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/docs/api.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/docs/mcp_fd_rg_design.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/BigService.java +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/BigService.json +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/BigService.summary.json +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/JavaDocTest.java +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/MultiClass.java +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/Sample.java +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/cache_demo.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/calculate_token_comparison.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/project_root_demo.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/sample.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/security_demo.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/security_integration_demo.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/smart_cache_demo.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/total_only_optimization_demo.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/llm_code_checker.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/pypirc_example.txt +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/pytest.ini +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/scripts/README.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/scripts/gitflow_helper.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/scripts/gitflow_release_automation.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/scripts/sync_version.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/scripts/sync_version_minimal.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/start_mcp_server.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/training/01_onboarding.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/training/02_architecture_map.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/training/03_cli_cheatsheet.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/training/04_mcp_cheatsheet.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/training/05_plugin_tutorial.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/training/06_quality_workflow.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/training/07_troubleshooting.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/training/08_prompt_library.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/training/09_tasks.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/training/10_glossary.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/training/11_takeover_plan.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/training/CLI_COMMAND_CORRECTIONS.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/training/IMPROVEMENT_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/training/README.md +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/__main__.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/api.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/__main__.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/advanced_command.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/base_command.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/default_command.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/partial_read_command.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/query_command.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/structure_command.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/summary_command.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/table_command.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/info_commands.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli_main.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/constants.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/analysis_engine.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/cache_service.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/engine.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/parser.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/query.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/query_filter.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/query_service.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/encoding_utils.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/exceptions.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/file_handler.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/formatters/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/formatters/base_formatter.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/formatters/formatter_factory.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/formatters/java_formatter.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/formatters/python_formatter.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/interfaces/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/interfaces/cli.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/interfaces/cli_adapter.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/interfaces/mcp_adapter.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/interfaces/mcp_server.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/language_detector.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/language_loader.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/languages/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/languages/java_plugin.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/languages/javascript_plugin.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/languages/python_plugin.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/resources/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/resources/code_file_resource.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/resources/project_stats_resource.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/server.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/base_tool.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/list_files_tool.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/query_tool.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/read_partial_tool.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/search_content_tool.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/table_format_tool.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/utils/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/utils/error_handler.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/utils/gitignore_detector.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/utils/path_resolver.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/utils/search_cache.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/models.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/output_manager.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/plugins/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/plugins/base.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/plugins/manager.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/project_detector.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/queries/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/queries/java.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/queries/javascript.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/queries/python.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/queries/typescript.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/query_loader.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/security/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/security/boundary_manager.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/security/regex_checker.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/security/validator.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/table_formatter.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/utils.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/upload_interactive.py +0 -0
- {tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/upload_to_pypi.py +0 -0
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.3.3] - 2025-01-15
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- **🔍 MCP Search Tools Gitignore Detection**: Added missing gitignore auto-detection to `find_and_grep_tool` for consistent behavior with other MCP tools
|
|
7
|
+
- **⚙️ FD Command Pattern Handling**: Fixed fd command construction when no pattern is specified to prevent absolute paths being interpreted as patterns
|
|
8
|
+
- **🛠️ List Files Tool Error**: Resolved fd command errors in `list_files_tool` by ensuring '.' pattern is used when no explicit pattern provided
|
|
9
|
+
- **🧪 Test Coverage**: Updated test cases to reflect corrected fd command pattern handling behavior
|
|
10
|
+
|
|
11
|
+
### Technical Details
|
|
12
|
+
- **Root Cause**: Missing gitignore auto-detection in `find_and_grep_tool` and incorrect fd command pattern handling in `fd_rg_utils.py`
|
|
13
|
+
- **Solution**: Implemented gitignore detector integration and ensured default '.' pattern is always provided to fd command
|
|
14
|
+
- **Impact**: Fixes search failures in projects with `.gitignore` 'code/*' patterns and resolves fd command errors with absolute path interpretation
|
|
15
|
+
- **Affected Tools**: `find_and_grep_tool`, `list_files_tool`, and `search_content_tool` consistency
|
|
16
|
+
|
|
17
|
+
This hotfix ensures MCP search tools work correctly across different project configurations and .gitignore patterns.
|
|
18
|
+
|
|
3
19
|
## [1.3.2] - 2025-09-16
|
|
4
20
|
|
|
5
21
|
### Fixed
|
|
@@ -548,7 +564,7 @@ Special thanks to **@o93** for sponsoring this comprehensive MCP tools enhanceme
|
|
|
548
564
|
|
|
549
565
|
##### Test Coverage
|
|
550
566
|
- **QueryService Tests**: 13 comprehensive unit tests
|
|
551
|
-
- **QueryFilter Tests**: 29 detailed filtering tests
|
|
567
|
+
- **QueryFilter Tests**: 29 detailed filtering tests
|
|
552
568
|
- **CLI Integration Tests**: 11 real-world usage scenarios
|
|
553
569
|
- **MCP Tool Tests**: 9 tool definition and functionality tests
|
|
554
570
|
|
|
@@ -1410,7 +1426,7 @@ If you're using the MCP server, update your tool calls:
|
|
|
1410
1426
|
**After:**
|
|
1411
1427
|
```json
|
|
1412
1428
|
{
|
|
1413
|
-
"tool": "analyze_code_structure",
|
|
1429
|
+
"tool": "analyze_code_structure",
|
|
1414
1430
|
"arguments": { ... }
|
|
1415
1431
|
}
|
|
1416
1432
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tree-sitter-analyzer
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.3
|
|
4
4
|
Summary: Extensible multi-language code analyzer framework using Tree-sitter with dynamic plugin architecture
|
|
5
5
|
Project-URL: Homepage, https://github.com/aimasteracc/tree-sitter-analyzer
|
|
6
6
|
Project-URL: Documentation, https://github.com/aimasteracc/tree-sitter-analyzer#readme
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "tree-sitter-analyzer"
|
|
7
|
-
version = "1.3.
|
|
7
|
+
version = "1.3.3"
|
|
8
8
|
description = "Extensible multi-language code analyzer framework using Tree-sitter with dynamic plugin architecture"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -320,7 +320,7 @@ directory = "htmlcov"
|
|
|
320
320
|
# MCP server configuration
|
|
321
321
|
[tool.mcp]
|
|
322
322
|
server_name = "tree-sitter-analyzer"
|
|
323
|
-
server_version = "1.3.
|
|
323
|
+
server_version = "1.3.3"
|
|
324
324
|
description = "Tree-sitter based code analysis MCP server with multi-language support"
|
|
325
325
|
capabilities = [
|
|
326
326
|
"check_code_scale",
|
|
@@ -148,7 +148,7 @@ def build_fd_command(
|
|
|
148
148
|
cmd += ["--max-results", str(limit)]
|
|
149
149
|
|
|
150
150
|
# Pattern goes before roots if present
|
|
151
|
-
# If no pattern is specified, use '.' to match all files
|
|
151
|
+
# If no pattern is specified, use '.' to match all files (required to prevent roots being interpreted as pattern)
|
|
152
152
|
if pattern:
|
|
153
153
|
cmd.append(pattern)
|
|
154
154
|
else:
|
|
@@ -7,13 +7,17 @@ First narrow files with fd, then search contents with ripgrep, with caps & meta.
|
|
|
7
7
|
|
|
8
8
|
from __future__ import annotations
|
|
9
9
|
|
|
10
|
+
import logging
|
|
10
11
|
import time
|
|
11
12
|
from typing import Any
|
|
12
13
|
|
|
13
14
|
from ..utils.error_handler import handle_mcp_errors
|
|
15
|
+
from ..utils.gitignore_detector import get_default_detector
|
|
14
16
|
from . import fd_rg_utils
|
|
15
17
|
from .base_tool import BaseMCPTool
|
|
16
18
|
|
|
19
|
+
logger = logging.getLogger(__name__)
|
|
20
|
+
|
|
17
21
|
|
|
18
22
|
class FindAndGrepTool(BaseMCPTool):
|
|
19
23
|
"""MCP tool that composes fd and ripgrep with safety limits and metadata."""
|
|
@@ -228,6 +232,26 @@ class FindAndGrepTool(BaseMCPTool):
|
|
|
228
232
|
fd_rg_utils.DEFAULT_RESULTS_LIMIT,
|
|
229
233
|
fd_rg_utils.MAX_RESULTS_HARD_CAP,
|
|
230
234
|
)
|
|
235
|
+
|
|
236
|
+
# Smart .gitignore detection for fd stage
|
|
237
|
+
no_ignore = bool(arguments.get("no_ignore", False))
|
|
238
|
+
if not no_ignore:
|
|
239
|
+
# Auto-detect if we should use --no-ignore
|
|
240
|
+
detector = get_default_detector()
|
|
241
|
+
original_roots = arguments.get("roots", [])
|
|
242
|
+
should_ignore = detector.should_use_no_ignore(
|
|
243
|
+
original_roots, self.project_root
|
|
244
|
+
)
|
|
245
|
+
if should_ignore:
|
|
246
|
+
no_ignore = True
|
|
247
|
+
# Log the auto-detection for debugging
|
|
248
|
+
detection_info = detector.get_detection_info(
|
|
249
|
+
original_roots, self.project_root
|
|
250
|
+
)
|
|
251
|
+
logger.info(
|
|
252
|
+
f"Auto-enabled --no-ignore due to .gitignore interference: {detection_info['reason']}"
|
|
253
|
+
)
|
|
254
|
+
|
|
231
255
|
fd_cmd = fd_rg_utils.build_fd_command(
|
|
232
256
|
pattern=arguments.get("pattern"),
|
|
233
257
|
glob=bool(arguments.get("glob", False)),
|
|
@@ -237,7 +261,7 @@ class FindAndGrepTool(BaseMCPTool):
|
|
|
237
261
|
depth=arguments.get("depth"),
|
|
238
262
|
follow_symlinks=bool(arguments.get("follow_symlinks", False)),
|
|
239
263
|
hidden=bool(arguments.get("hidden", False)),
|
|
240
|
-
no_ignore=
|
|
264
|
+
no_ignore=no_ignore,
|
|
241
265
|
size=arguments.get("size"),
|
|
242
266
|
changed_within=arguments.get("changed_within"),
|
|
243
267
|
changed_before=arguments.get("changed_before"),
|
|
@@ -328,7 +352,7 @@ class FindAndGrepTool(BaseMCPTool):
|
|
|
328
352
|
exclude_globs=arguments.get("exclude_globs"),
|
|
329
353
|
follow_symlinks=bool(arguments.get("follow_symlinks", False)),
|
|
330
354
|
hidden=bool(arguments.get("hidden", False)),
|
|
331
|
-
no_ignore=
|
|
355
|
+
no_ignore=no_ignore, # Use the same no_ignore flag from fd stage
|
|
332
356
|
max_filesize=arguments.get("max_filesize"),
|
|
333
357
|
context_before=arguments.get("context_before"),
|
|
334
358
|
context_after=arguments.get("context_after"),
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/calculate_token_comparison.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/security_integration_demo.py
RENAMED
|
File without changes
|
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/examples/total_only_optimization_demo.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/scripts/gitflow_release_automation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/training/CLI_COMMAND_CORRECTIONS.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/__init__.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/info_commands.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/cache_service.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/engine.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/parser.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/query.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/query_filter.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/query_service.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/encoding_utils.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/exceptions.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/file_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/interfaces/cli.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/language_detector.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/language_loader.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/languages/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/server.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/output_manager.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/plugins/__init__.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/plugins/base.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/plugins/manager.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/project_detector.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/queries/__init__.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/queries/java.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/queries/javascript.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/queries/python.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/queries/typescript.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/query_loader.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/security/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/security/validator.py
RENAMED
|
File without changes
|
{tree_sitter_analyzer-1.3.2 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/table_formatter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|