tree-sitter-analyzer 1.2.5__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.

Files changed (159) hide show
  1. tree_sitter_analyzer-1.3.3/.gitattributes +51 -0
  2. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/CHANGELOG.md +183 -14
  3. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/GITFLOW.md +76 -202
  4. tree_sitter_analyzer-1.3.3/GITFLOW_ja.md +157 -0
  5. tree_sitter_analyzer-1.3.3/GITFLOW_zh.md +157 -0
  6. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/PKG-INFO +9 -9
  7. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/README.md +8 -8
  8. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/README_ja.md +7 -7
  9. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/README_zh.md +7 -7
  10. tree_sitter_analyzer-1.3.3/examples/cache_demo.py +216 -0
  11. tree_sitter_analyzer-1.3.3/examples/smart_cache_demo.py +126 -0
  12. tree_sitter_analyzer-1.3.3/examples/total_only_optimization_demo.py +165 -0
  13. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/pyproject.toml +2 -2
  14. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/__init__.py +1 -1
  15. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/fd_rg_utils.py +30 -7
  16. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/find_and_grep_tool.py +26 -2
  17. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/list_files_tool.py +24 -1
  18. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/search_content_tool.py +165 -7
  19. tree_sitter_analyzer-1.3.3/tree_sitter_analyzer/mcp/utils/gitignore_detector.py +323 -0
  20. tree_sitter_analyzer-1.3.3/tree_sitter_analyzer/mcp/utils/search_cache.py +343 -0
  21. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/uv.lock +1 -1
  22. tree_sitter_analyzer-1.2.5/GITFLOW_ja.md +0 -313
  23. tree_sitter_analyzer-1.2.5/GITFLOW_zh.md +0 -313
  24. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/.gitignore +0 -0
  25. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/.kiro/steering/product.md +0 -0
  26. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/.kiro/steering/structure.md +0 -0
  27. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/.kiro/steering/tech.md +0 -0
  28. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/.pre-commit-config.yaml +0 -0
  29. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/.pre-commit-hooks.yaml +0 -0
  30. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/AI_COLLABORATION_GUIDE.md +0 -0
  31. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/CODE_STYLE_GUIDE.md +0 -0
  32. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/CONTRIBUTING.md +0 -0
  33. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/DEPLOYMENT_GUIDE.md +0 -0
  34. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/LANGUAGE_GUIDELINES.md +0 -0
  35. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/LLM_CODING_GUIDELINES.md +0 -0
  36. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/MCP_SETUP_DEVELOPERS.md +0 -0
  37. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/MCP_SETUP_USERS.md +0 -0
  38. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/PROJECT_ROOT_CONFIG.md +0 -0
  39. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/PYPI_RELEASE_GUIDE.md +0 -0
  40. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/REFACTORING_SUMMARY.md +0 -0
  41. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/build_standalone.py +0 -0
  42. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/check_quality.py +0 -0
  43. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/docs/GITFLOW_BEST_PRACTICES.md +0 -0
  44. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/docs/RELEASE_EXECUTION_GUIDE.md +0 -0
  45. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/docs/api.md +0 -0
  46. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/docs/mcp_fd_rg_design.md +0 -0
  47. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/examples/BigService.java +0 -0
  48. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/examples/BigService.json +0 -0
  49. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/examples/BigService.summary.json +0 -0
  50. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/examples/JavaDocTest.java +0 -0
  51. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/examples/MultiClass.java +0 -0
  52. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/examples/Sample.java +0 -0
  53. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/examples/calculate_token_comparison.py +0 -0
  54. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/examples/project_root_demo.py +0 -0
  55. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/examples/sample.py +0 -0
  56. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/examples/security_demo.py +0 -0
  57. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/examples/security_integration_demo.py +0 -0
  58. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/llm_code_checker.py +0 -0
  59. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/pypirc_example.txt +0 -0
  60. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/pytest.ini +0 -0
  61. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/scripts/README.md +0 -0
  62. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/scripts/gitflow_helper.py +0 -0
  63. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/scripts/gitflow_release_automation.py +0 -0
  64. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/scripts/sync_version.py +0 -0
  65. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/scripts/sync_version_minimal.py +0 -0
  66. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/start_mcp_server.py +0 -0
  67. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/training/01_onboarding.md +0 -0
  68. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/training/02_architecture_map.md +0 -0
  69. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/training/03_cli_cheatsheet.md +0 -0
  70. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/training/04_mcp_cheatsheet.md +0 -0
  71. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/training/05_plugin_tutorial.md +0 -0
  72. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/training/06_quality_workflow.md +0 -0
  73. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/training/07_troubleshooting.md +0 -0
  74. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/training/08_prompt_library.md +0 -0
  75. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/training/09_tasks.md +0 -0
  76. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/training/10_glossary.md +0 -0
  77. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/training/11_takeover_plan.md +0 -0
  78. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/training/CLI_COMMAND_CORRECTIONS.md +0 -0
  79. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/training/IMPROVEMENT_SUMMARY.md +0 -0
  80. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/training/README.md +0 -0
  81. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/__main__.py +0 -0
  82. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/api.py +0 -0
  83. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/__init__.py +0 -0
  84. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/__main__.py +0 -0
  85. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/__init__.py +0 -0
  86. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/advanced_command.py +0 -0
  87. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/base_command.py +0 -0
  88. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/default_command.py +0 -0
  89. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/partial_read_command.py +0 -0
  90. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/query_command.py +0 -0
  91. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/structure_command.py +0 -0
  92. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/summary_command.py +0 -0
  93. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/commands/table_command.py +0 -0
  94. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli/info_commands.py +0 -0
  95. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/cli_main.py +0 -0
  96. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/constants.py +0 -0
  97. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/__init__.py +0 -0
  98. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/analysis_engine.py +0 -0
  99. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/cache_service.py +0 -0
  100. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/engine.py +0 -0
  101. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/parser.py +0 -0
  102. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/query.py +0 -0
  103. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/query_filter.py +0 -0
  104. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/core/query_service.py +0 -0
  105. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/encoding_utils.py +0 -0
  106. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/exceptions.py +0 -0
  107. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/file_handler.py +0 -0
  108. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/formatters/__init__.py +0 -0
  109. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/formatters/base_formatter.py +0 -0
  110. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/formatters/formatter_factory.py +0 -0
  111. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/formatters/java_formatter.py +0 -0
  112. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/formatters/python_formatter.py +0 -0
  113. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/interfaces/__init__.py +0 -0
  114. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/interfaces/cli.py +0 -0
  115. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/interfaces/cli_adapter.py +0 -0
  116. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/interfaces/mcp_adapter.py +0 -0
  117. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/interfaces/mcp_server.py +0 -0
  118. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/language_detector.py +0 -0
  119. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/language_loader.py +0 -0
  120. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/languages/__init__.py +0 -0
  121. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/languages/java_plugin.py +0 -0
  122. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/languages/javascript_plugin.py +0 -0
  123. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/languages/python_plugin.py +0 -0
  124. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/__init__.py +0 -0
  125. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/resources/__init__.py +0 -0
  126. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/resources/code_file_resource.py +0 -0
  127. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/resources/project_stats_resource.py +0 -0
  128. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/server.py +0 -0
  129. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/__init__.py +0 -0
  130. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py +0 -0
  131. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py +0 -0
  132. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/base_tool.py +0 -0
  133. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/query_tool.py +0 -0
  134. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/read_partial_tool.py +0 -0
  135. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/table_format_tool.py +0 -0
  136. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py +0 -0
  137. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/utils/__init__.py +0 -0
  138. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/utils/error_handler.py +0 -0
  139. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/mcp/utils/path_resolver.py +0 -0
  140. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/models.py +0 -0
  141. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/output_manager.py +0 -0
  142. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/plugins/__init__.py +0 -0
  143. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/plugins/base.py +0 -0
  144. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/plugins/manager.py +0 -0
  145. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/project_detector.py +0 -0
  146. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/queries/__init__.py +0 -0
  147. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/queries/java.py +0 -0
  148. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/queries/javascript.py +0 -0
  149. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/queries/python.py +0 -0
  150. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/queries/typescript.py +0 -0
  151. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/query_loader.py +0 -0
  152. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/security/__init__.py +0 -0
  153. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/security/boundary_manager.py +0 -0
  154. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/security/regex_checker.py +0 -0
  155. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/security/validator.py +0 -0
  156. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/table_formatter.py +0 -0
  157. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/tree_sitter_analyzer/utils.py +0 -0
  158. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/upload_interactive.py +0 -0
  159. {tree_sitter_analyzer-1.2.5 → tree_sitter_analyzer-1.3.3}/upload_to_pypi.py +0 -0
@@ -0,0 +1,51 @@
1
+ # Set the default behavior for all files
2
+ * text=auto
3
+
4
+ # Explicitly declare text files you want to always be normalized and converted
5
+ # to native line endings on checkout
6
+ *.py text eol=lf
7
+ *.md text eol=lf
8
+ *.yml text eol=lf
9
+ *.yaml text eol=lf
10
+ *.toml text eol=lf
11
+ *.txt text eol=lf
12
+ *.json text eol=lf
13
+ *.js text eol=lf
14
+ *.ts text eol=lf
15
+ *.html text eol=lf
16
+ *.css text eol=lf
17
+ *.sh text eol=lf
18
+ *.bat text eol=crlf
19
+
20
+ # Declare files that will always have CRLF line endings on checkout
21
+ *.sln text eol=crlf
22
+
23
+ # Denote all files that are truly binary and should not be modified
24
+ *.png binary
25
+ *.jpg binary
26
+ *.jpeg binary
27
+ *.gif binary
28
+ *.ico binary
29
+ *.mov binary
30
+ *.mp4 binary
31
+ *.mp3 binary
32
+ *.flv binary
33
+ *.fla binary
34
+ *.swf binary
35
+ *.gz binary
36
+ *.zip binary
37
+ *.7z binary
38
+ *.ttf binary
39
+ *.eot binary
40
+ *.woff binary
41
+ *.woff2 binary
42
+ *.pyc binary
43
+ *.pdf binary
44
+ *.ez binary
45
+ *.bz2 binary
46
+ *.swp binary
47
+ *.cache binary
48
+ *.so binary
49
+ *.dll binary
50
+ *.dylib binary
51
+ *.exe binary
@@ -1,22 +1,191 @@
1
1
  # Changelog
2
2
 
3
- ## [1.2.5] - 2025-09-15
3
+ ## [1.3.3] - 2025-01-15
4
4
 
5
5
  ### Fixed
6
- - Fixed MCP list_files tool failing to detect Java files in specific directories
7
- - Resolved fd command parameter ordering issue in Windows environment
8
- - Improved --search-path parameter usage for better cross-platform compatibility
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
9
10
 
10
11
  ### Technical Details
11
- - Modified `build_fd_command` in `fd_rg_utils.py` to use `--search-path` instead of positional arguments
12
- - Eliminated automatic `"."` pattern injection that caused command conflicts
13
- - Enhanced Windows environment compatibility for file discovery operations
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
14
16
 
15
- ### Documentation Updates
16
- - Updated GitFlow documentation with comprehensive AI-assisted development workflow
17
- - Added complete bug fix and release automation procedures
18
- - Synchronized multi-language documentation (English, Chinese, Japanese)
19
- - Corrected PyPI deployment flow documentation to match actual GitHub Actions workflows
17
+ This hotfix ensures MCP search tools work correctly across different project configurations and .gitignore patterns.
18
+
19
+ ## [1.3.2] - 2025-09-16
20
+
21
+ ### Fixed
22
+ - **🐛 Critical Cache Format Compatibility Bug**: Fixed a severe bug in the smart caching system where `get_compatible_result` was returning wrong format cached data
23
+ - **Format Validation**: Added `_is_format_compatible` method to prevent `total_only` integer results from being returned for detailed query requests
24
+ - **User Impact**: Resolved the issue where users requesting detailed results after `total_only` queries received integers instead of proper structured data
25
+ - **Backward Compatibility**: Maintained compatibility for dict results with unknown formats while preventing primitive data return bugs
26
+
27
+ ### Technical Details
28
+ - **Root Cause**: Direct cache hit was returning cached results without format validation
29
+ - **Solution**: Implemented format compatibility checking before returning cached data
30
+ - **Test Coverage**: Added comprehensive test suite with 6 test cases covering format compatibility scenarios
31
+ - **Bug Discovery**: Issue was identified through real-world usage documented in `roo_task_sep-16-2025_1-18-38-am.md`
32
+
33
+ This hotfix ensures MCP tools return correctly formatted data and prevents cache format mismatches that could break AI-assisted development workflows.
34
+
35
+ ## [1.3.1] - 2025-01-15
36
+
37
+ ### Added
38
+ - **🧠 Intelligent Cross-Format Cache Optimization**: Revolutionary smart caching system that eliminates duplicate searches across different result formats
39
+ - **🎯 total_only → count_only_matches Optimization**: Solves the specific user pain point of "don't waste double time re-searching when user wants file details after getting total count"
40
+ - **⚡ Smart Result Derivation**: Automatically derives file lists and summaries from cached count data without additional ripgrep executions
41
+ - **🔄 Cross-Format Cache Keys**: Intelligent cache key mapping enables seamless format transitions
42
+ - **📊 Dual Caching Mechanism**: total_only searches now cache both simple totals and detailed file counts simultaneously
43
+
44
+ ### Performance Improvements
45
+ - **99.9% faster follow-up queries**: Second queries complete in ~0.001s vs ~14s for cache misses (14,000x improvement)
46
+ - **Zero duplicate executions**: Related search format requests served entirely from cache derivation
47
+ - **Perfect for LLM workflows**: Optimized for "total → details" analysis patterns common in AI-assisted development
48
+ - **Memory efficient derivation**: File lists and summaries generated from existing count data without additional storage
49
+
50
+ ### Technical Implementation
51
+ - **Enhanced SearchCache**: Added `get_compatible_result()` method for intelligent cross-format result derivation
52
+ - **Smart Cache Logic**: `_create_count_only_cache_key()` enables cross-format cache key generation
53
+ - **Result Format Detection**: `_determine_requested_format()` automatically identifies output format requirements
54
+ - **Comprehensive Derivation**: `create_file_summary_from_count_data()` and `extract_file_list_from_count_data()` utility functions
55
+
56
+ ### New Files & Demonstrations
57
+ - **Core Implementation**: Enhanced `search_cache.py` with cross-format optimization logic
58
+ - **Tool Integration**: Updated `search_content_tool.py` with dual caching mechanism
59
+ - **Utility Functions**: Extended `fd_rg_utils.py` with result derivation capabilities
60
+ - **Comprehensive Testing**: `test_smart_cache_optimization.py` with 11 test cases covering all optimization scenarios
61
+ - **Performance Demos**: `smart_cache_demo.py` and `total_only_optimization_demo.py` showcasing real-world improvements
62
+
63
+ ### User Experience Improvements
64
+ - **Transparent Optimization**: Users get performance benefits without changing their usage patterns
65
+ - **Intelligent Workflows**: "Get total count → Get file distribution" workflows now complete almost instantly
66
+ - **Cache Hit Indicators**: Results include `cache_hit` and `cache_derived` flags for transparency
67
+ - **Real-world Validation**: Tested with actual project codebases showing consistent 99.9%+ performance improvements
68
+
69
+ ### Developer Benefits
70
+ - **Type-Safe Implementation**: Full TypeScript-style type annotations for better IDE support
71
+ - **Comprehensive Documentation**: Detailed docstrings and examples for all new functionality
72
+ - **Robust Testing**: Mock-based tests ensure CI stability across different environments
73
+ - **Performance Monitoring**: Built-in cache statistics and performance tracking
74
+
75
+ This release addresses the critical performance bottleneck identified by users: avoiding redundant searches when transitioning from summary to detailed analysis. The intelligent caching system represents a fundamental advancement in search result optimization for code analysis workflows.
76
+
77
+ ## [1.3.0] - 2025-01-15
78
+
79
+ ### Added
80
+ - **Phase 2 Cache System**: Implemented comprehensive search result caching for significant performance improvements
81
+ - **SearchCache Module**: Thread-safe in-memory cache with TTL and LRU eviction (`tree_sitter_analyzer/mcp/utils/search_cache.py`)
82
+ - **Cache Integration**: Integrated caching into `search_content` MCP tool for automatic performance optimization
83
+ - **Performance Monitoring**: Added comprehensive cache statistics tracking and performance validation
84
+ - **Cache Demo**: Interactive demonstration script showing 200-400x performance improvements (`examples/cache_demo.py`)
85
+
86
+ ### Performance Improvements
87
+ - **99.8% faster repeated searches**: Cache hits complete in ~0.001s vs ~0.4s for cache misses
88
+ - **200-400x speed improvements**: Demonstrated with real-world search operations
89
+ - **Automatic optimization**: Zero-configuration caching with smart defaults
90
+ - **Memory efficient**: LRU eviction and configurable cache size limits
91
+
92
+ ### Technical Details
93
+ - **Thread-safe implementation**: Uses `threading.RLock()` for concurrent access
94
+ - **Configurable TTL**: Default 1-hour cache lifetime with customizable settings
95
+ - **Smart cache keys**: Deterministic key generation based on search parameters
96
+ - **Path normalization**: Consistent caching across different path representations
97
+ - **Comprehensive testing**: 19 test cases covering functionality and performance validation
98
+
99
+ ### Documentation
100
+ - **Cache Feature Summary**: Complete implementation and performance documentation
101
+ - **Usage Examples**: Clear examples for basic usage and advanced configuration
102
+ - **Performance Benchmarks**: Real-world performance data and optimization benefits
103
+
104
+ ## [1.2.5] - 2025-09-15
105
+
106
+ ### 🐛 Bug Fixes
107
+
108
+ #### Fixed list_files tool Java file detection issue
109
+ - **Problem**: The `list_files` MCP tool failed to detect Java files when using root path "." due to command line argument conflicts in the `fd` command construction
110
+ - **Root Cause**: Conflicting pattern and path arguments in `build_fd_command` function
111
+ - **Solution**: Modified `fd_rg_utils.py` to use `--search-path` option for root directories and only append pattern when explicitly provided
112
+ - **Impact**: Significantly improved cross-platform compatibility, especially for Windows environments
113
+
114
+ ### 🔧 Technical Changes
115
+ - **File**: `tree_sitter_analyzer/mcp/tools/fd_rg_utils.py`
116
+ - Replaced positional path arguments with `--search-path` option
117
+ - Removed automatic "." pattern addition that caused conflicts
118
+ - Enhanced command construction logic for better reliability
119
+ - **Tests**: Updated `tests/test_mcp_fd_rg_tools.py`
120
+ - Modified test assertions to match new `fd` command behavior
121
+ - Ensured test coverage for both pattern and no-pattern scenarios
122
+
123
+ ### 📚 Documentation Updates
124
+ - **Enhanced GitFlow Documentation**: Added comprehensive AI-assisted development workflow
125
+ - **Multi-language Sync**: Updated English, Chinese, and Japanese versions of GitFlow documentation
126
+ - **Process Clarification**: Clarified PyPI deployment process and manual steps
127
+
128
+ ### 🚀 Deployment
129
+ - **PyPI**: Successfully deployed to PyPI as version 1.2.5
130
+ - **Compatibility**: Tested and verified on Windows environments
131
+ - **CI/CD**: All automated workflows executed successfully
132
+
133
+ ### 📊 Testing
134
+ - **Test Suite**: All 156 tests passing
135
+ - **Coverage**: Maintained high test coverage
136
+ - **Cross-platform**: Verified Windows compatibility
137
+
138
+ ## [1.2.4] - 2025-09-15
139
+
140
+ ### 🚀 Major Features
141
+
142
+ #### SMART Analysis Workflow
143
+ - **Complete S-M-A-R-T workflow**: Comprehensive workflow replacing the previous 3-step process
144
+ - **S (Setup)**: Project initialization and prerequisite verification
145
+ - **M (Map)**: File discovery and structure mapping
146
+ - **A (Analyze)**: Code analysis and element extraction
147
+ - **R (Retrieve)**: Content search and pattern matching
148
+ - **T (Trace)**: Dependency tracking and relationship analysis
149
+
150
+ #### Advanced MCP Tools
151
+ - **ListFilesTool**: Lightning-fast file discovery powered by `fd`
152
+ - **SearchContentTool**: High-performance text search powered by `ripgrep`
153
+ - **FindAndGrepTool**: Combined file discovery and content analysis
154
+ - **Enterprise-grade Testing**: 50+ comprehensive test cases ensuring reliability and stability
155
+ - **Multi-platform Support**: Complete installation guides for Windows, macOS, and Linux
156
+
157
+ ### 📋 Prerequisites & Installation
158
+ - **fd and ripgrep**: Complete installation instructions for all platforms
159
+ - **Windows Optimization**: winget commands and PowerShell execution policies
160
+ - **Cross-platform**: Support for macOS (Homebrew), Linux (apt/dnf/pacman), Windows (winget/choco/scoop)
161
+ - **Verification Steps**: Commands to verify successful installation
162
+
163
+ ### 🔧 Quality Assurance
164
+ - **Test Coverage**: 1564 tests passed, 74.97% coverage
165
+ - **MCP Tools Coverage**: 93.04% (Excellent)
166
+ - **Real-world Validation**: All examples tested and verified with actual tool execution
167
+ - **Enterprise-grade Reliability**: Comprehensive error handling and validation
168
+
169
+ ### 📚 Documentation & Localization
170
+ - **Complete Translation**: Japanese and Chinese READMEs fully updated
171
+ - **SMART Workflow**: Detailed step-by-step guides in all three languages
172
+ - **Prerequisites Documentation**: Comprehensive installation guides
173
+ - **Verified Examples**: All MCP tool examples tested and validated
174
+
175
+ ### 🎯 Sponsor Acknowledgment
176
+ Special thanks to **@o93** for sponsoring this comprehensive MCP tools enhancement, enabling the early release of advanced file search and content analysis features.
177
+
178
+ ### 🛠️ Technical Improvements
179
+ - **Advanced File Search**: Powered by fd for lightning-fast file discovery
180
+ - **Intelligent Content Search**: Powered by ripgrep for high-performance text search
181
+ - **Combined Tools**: FindAndGrepTool for comprehensive file discovery and content analysis
182
+ - **Token Optimization**: Multiple output formats optimized for AI assistant interactions
183
+
184
+ ### ⚡ Performance & Reliability
185
+ - **Built-in Timeouts**: Responsive operation with configurable time limits
186
+ - **Result Limits**: Prevents overwhelming output with smart result limiting
187
+ - **Error Resilience**: Comprehensive error handling and graceful degradation
188
+ - **Cross-platform Testing**: Validated on Windows, macOS, and Linux environments
20
189
 
21
190
  ## [1.2.3] - 2025-08-27
22
191
 
@@ -395,7 +564,7 @@
395
564
 
396
565
  ##### Test Coverage
397
566
  - **QueryService Tests**: 13 comprehensive unit tests
398
- - **QueryFilter Tests**: 29 detailed filtering tests
567
+ - **QueryFilter Tests**: 29 detailed filtering tests
399
568
  - **CLI Integration Tests**: 11 real-world usage scenarios
400
569
  - **MCP Tool Tests**: 9 tool definition and functionality tests
401
570
 
@@ -1257,7 +1426,7 @@ If you're using the MCP server, update your tool calls:
1257
1426
  **After:**
1258
1427
  ```json
1259
1428
  {
1260
- "tool": "analyze_code_structure",
1429
+ "tool": "analyze_code_structure",
1261
1430
  "arguments": { ... }
1262
1431
  }
1263
1432
  ```
@@ -9,30 +9,30 @@ gitGraph
9
9
  commit id: "Initial commit"
10
10
  branch develop
11
11
  commit id: "dev-1"
12
-
12
+
13
13
  branch feature/my-feature
14
14
  commit id: "feat-1"
15
15
  commit id: "feat-2"
16
-
16
+
17
17
  checkout develop
18
18
  merge feature/my-feature id: "merge-feat"
19
-
19
+
20
20
  branch release/v1.0.0
21
21
  commit id: "release-prep"
22
-
22
+
23
23
  checkout main
24
24
  merge release/v1.0.0 tag: "v1.0.0"
25
-
25
+
26
26
  checkout develop
27
27
  merge release/v1.0.0
28
-
28
+
29
29
  checkout main
30
30
  branch hotfix/critical-fix
31
31
  commit id: "fix-bug"
32
-
32
+
33
33
  checkout main
34
34
  merge hotfix/critical-fix tag: "v1.0.1"
35
-
35
+
36
36
  checkout develop
37
37
  merge hotfix/critical-fix
38
38
  ```
@@ -108,7 +108,18 @@ For manual releases:
108
108
 
109
109
  3. **Update documentation**:
110
110
  ```bash
111
- uv run python scripts/improved_readme_updater.py
111
+ # Update README.md with new version, test counts, and coverage:
112
+ # - Version badges ([![Version](https://img.shields.io/badge/version-X.X.X-blue.svg)])
113
+ # - Test count badges ([![Tests](https://img.shields.io/badge/tests-XXXX%20passed-brightgreen.svg)])
114
+ # - Coverage badges ([![Coverage](https://img.shields.io/badge/coverage-XX.XX%25-green.svg)])
115
+ # - "Latest Quality Achievements" section version references
116
+ # - Test environment section version references
117
+ # - All other version mentions throughout the document
118
+ # Update README_zh.md and README_ja.md translations with same changes
119
+ # Update GITFLOW_zh.md and GITFLOW_ja.md if workflow changes were made
120
+ # Update CHANGELOG.md with release details
121
+ # Update version references throughout all documentation files
122
+ # Note: scripts/improved_readme_updater.py may not exist, do manual updates
112
123
  ```
113
124
 
114
125
  4. **Commit changes**:
@@ -123,7 +134,7 @@ For manual releases:
123
134
  git merge release/v1.0.0
124
135
  git tag -a v1.0.0 -m "Release v1.0.0"
125
136
  git push origin main --tags
126
-
137
+
127
138
  git checkout develop
128
139
  git merge release/v1.0.0
129
140
  git push origin develop
@@ -153,21 +164,39 @@ For manual releases:
153
164
  3. **Update version** for hotfix:
154
165
  ```bash
155
166
  # Update pyproject.toml version (e.g., 1.0.0 -> 1.0.1)
167
+ # Update server_version in pyproject.toml
168
+ # Sync version to __init__.py
169
+ uv run python scripts/sync_version_minimal.py
156
170
  ```
157
171
 
158
- 4. **Merge to main and develop**:
172
+ 4. **Update documentation**:
173
+ ```bash
174
+ # Update CHANGELOG.md with hotfix details
175
+ # Update README.md with new version, test counts, and coverage:
176
+ # - Version badges ([![Version](https://img.shields.io/badge/version-X.X.X-blue.svg)])
177
+ # - Test count badges ([![Tests](https://img.shields.io/badge/tests-XXXX%20passed-brightgreen.svg)])
178
+ # - Coverage badges ([![Coverage](https://img.shields.io/badge/coverage-XX.XX%25-green.svg)])
179
+ # - "Latest Quality Achievements" section version references
180
+ # - Test environment section version references
181
+ # - All other version mentions throughout the document
182
+ # Update README_zh.md and README_ja.md translations with same changes
183
+ # Update GITFLOW_zh.md and GITFLOW_ja.md if workflow changes were made
184
+ # Update version references throughout all documentation files
185
+ ```
186
+
187
+ 5. **Merge to main and develop**:
159
188
  ```bash
160
189
  git checkout main
161
190
  git merge hotfix/critical-bug-fix
162
191
  git tag -a v1.0.1 -m "Hotfix v1.0.1"
163
192
  git push origin main --tags
164
-
193
+
165
194
  git checkout develop
166
195
  git merge hotfix/critical-bug-fix
167
196
  git push origin develop
168
197
  ```
169
198
 
170
- 5. **Delete hotfix branch**:
199
+ 6. **Delete hotfix branch**:
171
200
  ```bash
172
201
  git branch -d hotfix/critical-bug-fix
173
202
  git push origin --delete hotfix/critical-bug-fix
@@ -210,6 +239,40 @@ uv run python scripts/automated_release.py
210
239
 
211
240
  ## Best Practices
212
241
 
242
+ ### Line Ending Configuration
243
+
244
+ To prevent mixed line ending errors in pre-commit hooks:
245
+
246
+ 1. **Ensure `.gitattributes` exists** with proper configuration:
247
+ ```
248
+ * text=auto
249
+ *.py text eol=lf
250
+ *.md text eol=lf
251
+ *.yml text eol=lf
252
+ *.toml text eol=lf
253
+ ```
254
+
255
+ 2. **Configure Git locally**:
256
+ ```bash
257
+ git config core.autocrlf input
258
+ ```
259
+
260
+ 3. **Configure your editor** (VS Code example in `.vscode/settings.json`):
261
+ ```json
262
+ {
263
+ "files.eol": "\n",
264
+ "files.insertFinalNewline": true,
265
+ "files.trimTrailingWhitespace": true
266
+ }
267
+ ```
268
+
269
+ 4. **If you encounter mixed line ending errors**:
270
+ ```bash
271
+ # Re-normalize all files
272
+ git rm --cached -r . && git reset --hard HEAD
273
+ git add . && git commit -m "Normalize line endings"
274
+ ```
275
+
213
276
  ### Commit Messages
214
277
 
215
278
  Use conventional commit format:
@@ -253,195 +316,6 @@ Before merging to `develop`:
253
316
  - **Automatic versioning**: Managed by automated release process
254
317
  - **Version consistency**: All files updated together
255
318
 
256
- ## 🤖 AI-Assisted Development Workflow
257
-
258
- ### Complete Bug Fix & Release Automation
259
-
260
- This section provides a comprehensive workflow for AI assistants to handle bug fixes, version updates, and releases with minimal human intervention.
261
-
262
- #### 1. **Bug Fix Workflow**
263
-
264
- When fixing bugs, follow this automated sequence:
265
-
266
- ```bash
267
- # 1. Check current branch and status
268
- git status
269
- git branch -v
270
-
271
- # 2. Create feature branch from develop
272
- git checkout develop
273
- git pull origin develop
274
- git checkout -b feature/fix-[bug-description]
275
-
276
- # 3. Fix the bug (already completed in this session)
277
- # - Edit the problematic files
278
- # - Test the fix locally
279
-
280
- # 4. Run comprehensive quality checks
281
- uv run pytest tests/ -v
282
- uv run python check_quality.py --new-code-only
283
- uv run python llm_code_checker.py --check-all
284
-
285
- # 5. Update version number (automatic patch increment)
286
- python -c "
287
- import re
288
- with open('pyproject.toml', 'r') as f:
289
- content = f.read()
290
- current = re.search(r'version = \"(\d+)\.(\d+)\.(\d+)\"', content)
291
- if current:
292
- major, minor, patch = map(int, current.groups())
293
- new_version = f'{major}.{minor}.{patch + 1}'
294
- new_content = re.sub(r'version = \"(\d+)\.(\d+)\.(\d+)\"', f'version = \"{new_version}\"', content)
295
- with open('pyproject.toml', 'w') as f:
296
- f.write(new_content)
297
- print(f'Version updated to {new_version}')
298
- "
299
-
300
- # 6. Update CHANGELOG.md
301
- echo "
302
- ## [$(python -c "import re; content=open('pyproject.toml').read(); print(re.search(r'version = \"([^\"]+)\"', content).group(1))")] - $(date +%Y-%m-%d)
303
-
304
- ### Fixed
305
- - Fixed MCP list_files tool failing to detect Java files in specific directories
306
- - Resolved fd command parameter ordering issue in Windows environment
307
- - Improved --search-path parameter usage for better cross-platform compatibility
308
-
309
- ### Technical Details
310
- - Modified \`build_fd_command\` in \`fd_rg_utils.py\` to use \`--search-path\` instead of positional arguments
311
- - Eliminated automatic \`\".\"\` pattern injection that caused command conflicts
312
- - Enhanced Windows environment compatibility for file discovery operations
313
- " >> CHANGELOG.md
314
-
315
- # 7. Update README statistics (if test count changed)
316
- uv run python scripts/improved_readme_updater.py
317
-
318
- # 8. Commit all changes
319
- git add .
320
- git commit -m "fix: Resolve MCP list_files tool Java file detection issue
321
-
322
- - Fix fd command parameter ordering in fd_rg_utils.py
323
- - Use --search-path for better cross-platform compatibility
324
- - Update version to $(python -c "import re; content=open('pyproject.toml').read(); print(re.search(r'version = \"([^\"]+)\"', content).group(1))")
325
- - Update CHANGELOG.md and README statistics"
326
-
327
- # 9. Push feature branch
328
- git push origin feature/fix-[bug-description]
329
- ```
330
-
331
- #### 2. **Automated Release Trigger**
332
-
333
- After bug fix is committed:
334
-
335
- ```bash
336
- # 10. Merge to develop (triggers automated PR creation)
337
- git checkout develop
338
- git pull origin develop
339
- git merge feature/fix-[bug-description]
340
- git push origin develop
341
-
342
- # 11. Clean up feature branch
343
- git branch -d feature/fix-[bug-description]
344
- git push origin --delete feature/fix-[bug-description]
345
- ```
346
-
347
- **Note**: Pushing to `develop` triggers the `develop-automation.yml` workflow which:
348
- 1. Runs all tests and quality checks
349
- 2. Builds the package
350
- 3. Creates an automated PR from develop to main
351
- 4. **Does NOT deploy to PyPI** (PyPI deployment happens only on release/hotfix branches)
352
-
353
- #### 3. **Actual Release Process**
354
-
355
- For PyPI deployment, you need to create a release branch:
356
-
357
- ```bash
358
- # Create release branch for PyPI deployment
359
- git checkout develop
360
- git pull origin develop
361
- git checkout -b release/v[new-version]
362
- git push origin release/v[new-version]
363
- ```
364
-
365
- This triggers `release-automation.yml` which:
366
- - ✅ **Runs comprehensive tests**
367
- - ✅ **Builds and validates package**
368
- - ✅ **Deploys to PyPI automatically**
369
- - ✅ **Creates release-to-main PR**
370
-
371
- #### 4. **Post-Release Verification**
372
-
373
- After release branch is created, the automated system will handle:
374
-
375
- - ✅ **PyPI Deployment**: Package automatically published from release branch
376
- - ✅ **GitHub PR Creation**: Automated PR from release to main
377
- - ✅ **Quality Assurance**: All tests and builds verified
378
- - ⚠️ **Manual Step Required**: README updates need to be done manually
379
-
380
- Verify the release:
381
-
382
- ```bash
383
- # Check PyPI deployment
384
- pip index versions tree-sitter-analyzer
385
-
386
- # Verify GitHub release
387
- gh release list
388
-
389
- # Check README updates
390
- git log --oneline -5
391
- ```
392
-
393
- #### 5. **AI Assistant Checklist**
394
-
395
- When fixing bugs, AI assistants should automatically:
396
-
397
- - [ ] **Identify Root Cause**: Analyze the technical issue thoroughly
398
- - [ ] **Fix Implementation**: Apply the correct technical solution
399
- - [ ] **Version Increment**: Automatically bump patch version in pyproject.toml
400
- - [ ] **Update CHANGELOG**: Add detailed fix description with technical details
401
- - [ ] **Quality Checks**: Run all tests and linting locally
402
- - [ ] **Commit & Push**: Use conventional commit messages
403
- - [ ] **Merge to Develop**: Triggers automated testing and PR creation
404
- - [ ] **Create Release Branch**: For PyPI deployment (release/v[version])
405
- - [ ] **Manual README Update**: Update statistics if test count changed (not automated)
406
- - [ ] **Verify PyPI Deployment**: Check package publication after release branch
407
-
408
- #### 6. **Multi-language Documentation Sync**
409
-
410
- When updating GitFlow documentation, ensure all language versions are synchronized:
411
-
412
- ```bash
413
- # Update all GitFlow documents
414
- # 1. GITFLOW.md (English - primary)
415
- # 2. GITFLOW_zh.md (Chinese)
416
- # 3. GITFLOW_ja.md (Japanese)
417
-
418
- # Verify consistency
419
- diff -u GITFLOW.md GITFLOW_zh.md | head -20
420
- diff -u GITFLOW.md GITFLOW_ja.md | head -20
421
- ```
422
-
423
- #### 7. **Emergency Hotfix Protocol**
424
-
425
- For critical production issues:
426
-
427
- ```bash
428
- # 1. Create hotfix from main
429
- git checkout main
430
- git pull origin main
431
- git checkout -b hotfix/critical-[issue]
432
-
433
- # 2. Apply minimal fix
434
- # 3. Update version (patch increment)
435
- # 4. Update CHANGELOG
436
- # 5. Commit with hotfix message
437
- # 6. Merge to both main and develop
438
- # 7. Tag and push
439
-
440
- # Automated PyPI deployment will trigger immediately
441
- ```
442
-
443
- This workflow ensures consistent, high-quality releases with minimal manual intervention while maintaining full traceability and documentation.
444
-
445
319
  ## CI/CD Integration
446
320
 
447
321
  ### GitHub Actions Workflows