mcp-vector-search 0.12.0__tar.gz → 0.12.2__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 mcp-vector-search might be problematic. Click here for more details.

Files changed (177) hide show
  1. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/.gitignore +3 -0
  2. mcp_vector_search-0.12.2/CLAUDE.md +49 -0
  3. mcp_vector_search-0.12.2/INVESTIGATION_EXPANSION_BUG.md +229 -0
  4. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/PKG-INFO +148 -25
  5. mcp_vector_search-0.12.2/QA_REPORT_ContentPane.md +338 -0
  6. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/README.md +146 -24
  7. mcp_vector_search-0.12.2/ROOT_NODE_FIX_SUMMARY.md +71 -0
  8. mcp_vector_search-0.12.2/dev-mcp +202 -0
  9. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/CHANGELOG.md +55 -0
  10. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/pyproject.toml +1 -0
  11. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/pytest.ini +2 -1
  12. mcp_vector_search-0.12.2/scripts/README_FAVICON.md +121 -0
  13. mcp_vector_search-0.12.2/scripts/generate_favicon.py +280 -0
  14. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/__init__.py +2 -2
  15. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/commands/index.py +15 -24
  16. mcp_vector_search-0.12.2/src/mcp_vector_search/cli/commands/install.py +675 -0
  17. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/commands/status.py +7 -5
  18. mcp_vector_search-0.12.2/src/mcp_vector_search/cli/commands/uninstall.py +485 -0
  19. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/commands/visualize.py +417 -121
  20. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/didyoumean.py +10 -0
  21. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/main.py +39 -21
  22. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/core/connection_pool.py +49 -11
  23. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/core/database.py +7 -9
  24. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/core/directory_index.py +26 -11
  25. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/core/indexer.py +89 -29
  26. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/core/models.py +4 -1
  27. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/core/project.py +16 -5
  28. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/parsers/base.py +54 -18
  29. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/parsers/javascript.py +41 -20
  30. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/parsers/python.py +19 -11
  31. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/parsers/registry.py +3 -2
  32. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/utils/gitignore.py +3 -1
  33. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v1-1024.png +0 -0
  34. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v1-128.png +0 -0
  35. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v1-16.png +0 -0
  36. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v1-256.png +0 -0
  37. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v1-32.png +0 -0
  38. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v1-512.png +0 -0
  39. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v1-64.png +0 -0
  40. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v1.ico +0 -0
  41. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v2-1024.png +0 -0
  42. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v2-128.png +0 -0
  43. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v2-16.png +0 -0
  44. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v2-256.png +0 -0
  45. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v2-32.png +0 -0
  46. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v2-512.png +0 -0
  47. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v2-64.png +0 -0
  48. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v2.ico +0 -0
  49. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v3-1024.png +0 -0
  50. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v3-128.png +0 -0
  51. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v3-16.png +0 -0
  52. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v3-256.png +0 -0
  53. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v3-32.png +0 -0
  54. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v3-512.png +0 -0
  55. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v3-64.png +0 -0
  56. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/favicon-v3.ico +0 -0
  57. mcp_vector_search-0.12.2/src/mcp_vector_search/visualization/index.html +1008 -0
  58. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/tests/conftest.py +7 -4
  59. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/uv.lock +10 -7
  60. mcp_vector_search-0.12.0/CLAUDE.md +0 -760
  61. mcp_vector_search-0.12.0/src/mcp_vector_search/visualization/index.html +0 -658
  62. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/.github/workflows/ci.yml +0 -0
  63. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/.pre-commit-config.yaml +0 -0
  64. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/LICENSE +0 -0
  65. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/Makefile +0 -0
  66. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/PERFORMANCE_OPTIMIZATION_SUMMARY.md +0 -0
  67. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/CLI_FEATURES.md +0 -0
  68. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/DEPLOY.md +0 -0
  69. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/DEVELOPMENT.md +0 -0
  70. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/FEATURES.md +0 -0
  71. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/IMPROVEMENTS_SUMMARY.md +0 -0
  72. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/MCP_FILE_WATCHING.md +0 -0
  73. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/RELEASES.md +0 -0
  74. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/STRUCTURE.md +0 -0
  75. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/VERSIONING.md +0 -0
  76. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/VERSIONING_WORKFLOW.md +0 -0
  77. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/_archive/CLAUDE_20251009_pre_mpm_init.md +0 -0
  78. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/_archive/CLAUDE_MPM_INIT_SUMMARY_20251009.md +0 -0
  79. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/_archive/MPM_INIT_EXECUTIVE_SUMMARY.md +0 -0
  80. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/analysis/SEARCH_ANALYSIS_REPORT.md +0 -0
  81. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/analysis/SEARCH_IMPROVEMENT_PLAN.md +0 -0
  82. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/architecture/REINDEXING_WORKFLOW.md +0 -0
  83. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/debugging/SEARCH_BUG_ANALYSIS.md +0 -0
  84. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/developer/API.md +0 -0
  85. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/developer/CONTRIBUTING.md +0 -0
  86. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/developer/DEVELOPER.md +0 -0
  87. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/developer/LINTING.md +0 -0
  88. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/developer/REFACTORING_ANALYSIS.md +0 -0
  89. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/developer/TESTING.md +0 -0
  90. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/developer/TESTING_STRATEGY.md +0 -0
  91. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/developer/TEST_SUITE_SUMMARY.md +0 -0
  92. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/mcp-integration.md +0 -0
  93. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/optimizations/database-stats-chunked-processing.md +0 -0
  94. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/performance/CONNECTION_POOLING.md +0 -0
  95. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/performance/SEARCH_TIMING_ANALYSIS.md +0 -0
  96. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/prd/mcp_vector_search_prd_updated.md +0 -0
  97. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/reference/ENGINEER_TASK.md +0 -0
  98. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/reference/INSTALL.md +0 -0
  99. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/reference/INSTALL_COMMAND_ENHANCEMENTS.md +0 -0
  100. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/reference/MCP_SETUP.md +0 -0
  101. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/reference/PROJECT_ORGANIZATION.md +0 -0
  102. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/docs/technical/SIMILARITY_CALCULATION_FIX.md +0 -0
  103. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/examples/connection_pooling_example.py +0 -0
  104. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/examples/semi_automatic_reindexing_demo.py +0 -0
  105. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/mcp-vector-search-wrapper +0 -0
  106. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/README.md +0 -0
  107. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/analyze_search_bottlenecks.py +0 -0
  108. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/build.sh +0 -0
  109. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/changeset.py +0 -0
  110. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/comprehensive_build.py +0 -0
  111. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/deploy-test.sh +0 -0
  112. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/dev-build.py +0 -0
  113. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/dev-setup.py +0 -0
  114. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/dev-test.sh +0 -0
  115. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/fix_linting.py +0 -0
  116. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/mcp-dev +0 -0
  117. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/monitor_search_performance.py +0 -0
  118. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/publish.sh +0 -0
  119. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/quick_search_timing.py +0 -0
  120. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/run_search_timing_tests.py +0 -0
  121. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/run_tests.py +0 -0
  122. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/search_performance_monitor.py +0 -0
  123. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/search_quality_analyzer.py +0 -0
  124. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/setup/mcp-vector-search.sh +0 -0
  125. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/setup/setup-alias.sh +0 -0
  126. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/setup-dev-mcp.sh +0 -0
  127. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/update_docs.py +0 -0
  128. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/version_manager.py +0 -0
  129. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/scripts/workflow.sh +0 -0
  130. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/__init__.py +0 -0
  131. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/commands/__init__.py +0 -0
  132. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/commands/auto_index.py +0 -0
  133. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/commands/config.py +0 -0
  134. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/commands/demo.py +0 -0
  135. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/commands/init.py +0 -0
  136. /mcp_vector_search-0.12.0/src/mcp_vector_search/cli/commands/install.py → /mcp_vector_search-0.12.2/src/mcp_vector_search/cli/commands/install_old.py +0 -0
  137. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/commands/mcp.py +0 -0
  138. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/commands/reset.py +0 -0
  139. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/commands/search.py +0 -0
  140. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/commands/watch.py +0 -0
  141. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/export.py +0 -0
  142. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/history.py +0 -0
  143. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/interactive.py +0 -0
  144. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/output.py +0 -0
  145. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/cli/suggestions.py +0 -0
  146. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/config/__init__.py +0 -0
  147. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/config/constants.py +0 -0
  148. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/config/defaults.py +0 -0
  149. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/config/settings.py +0 -0
  150. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/core/__init__.py +0 -0
  151. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/core/auto_indexer.py +0 -0
  152. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/core/embeddings.py +0 -0
  153. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/core/exceptions.py +0 -0
  154. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/core/factory.py +0 -0
  155. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/core/git_hooks.py +0 -0
  156. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/core/scheduler.py +0 -0
  157. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/core/search.py +0 -0
  158. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/core/watcher.py +0 -0
  159. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/mcp/__init__.py +0 -0
  160. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/mcp/__main__.py +0 -0
  161. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/mcp/server.py +0 -0
  162. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/parsers/__init__.py +0 -0
  163. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/parsers/dart.py +0 -0
  164. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/parsers/html.py +0 -0
  165. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/parsers/php.py +0 -0
  166. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/parsers/ruby.py +0 -0
  167. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/parsers/text.py +0 -0
  168. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/parsers/utils.py +0 -0
  169. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/py.typed +0 -0
  170. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/utils/__init__.py +0 -0
  171. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/utils/monorepo.py +0 -0
  172. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/utils/timing.py +0 -0
  173. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/src/mcp_vector_search/utils/version.py +0 -0
  174. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/tests/__init__.py +0 -0
  175. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/tests/sample_code/ast_test_javascript.js +0 -0
  176. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/tests/sample_code/ast_test_python.py +0 -0
  177. {mcp_vector_search-0.12.0 → mcp_vector_search-0.12.2}/tests/sample_code/ast_test_typescript.ts +0 -0
@@ -299,3 +299,6 @@ pip-wheel-metadata/
299
299
  site/
300
300
  temp/
301
301
  tmp/
302
+
303
+ # MCP Ticketer
304
+ .mcp-ticketer/
@@ -0,0 +1,49 @@
1
+ # Project Memory Configuration
2
+
3
+ This project uses KuzuMemory for intelligent context management.
4
+
5
+ ## Project Information
6
+ - **Path**: /Users/masa/Projects/mcp-vector-search
7
+ - **Language**: Python
8
+ - **Framework**: Unknown
9
+
10
+ ## Memory Integration
11
+
12
+ KuzuMemory is configured to enhance all AI interactions with project-specific context.
13
+
14
+ ### Available Commands:
15
+ - `kuzu-memory enhance <prompt>` - Enhance prompts with project context
16
+ - `kuzu-memory learn <content>` - Store learning from conversations (async)
17
+ - `kuzu-memory recall <query>` - Query project memories
18
+ - `kuzu-memory stats` - View memory statistics
19
+
20
+ ### MCP Tools Available:
21
+ When interacting with Claude Desktop, the following MCP tools are available:
22
+ - **kuzu_enhance**: Enhance prompts with project memories
23
+ - **kuzu_learn**: Store new learnings asynchronously
24
+ - **kuzu_recall**: Query specific memories
25
+ - **kuzu_stats**: Get memory system statistics
26
+
27
+ ## Project Context
28
+
29
+ CLI-first semantic code search with MCP integration
30
+
31
+ ## Key Technologies
32
+ - Python
33
+
34
+ ## Development Guidelines
35
+ - Use kuzu-memory enhance for all AI interactions
36
+ - Store important decisions with kuzu-memory learn
37
+ - Query context with kuzu-memory recall when needed
38
+ - Keep memories project-specific and relevant
39
+
40
+ ## Memory Guidelines
41
+
42
+ - Store project decisions and conventions
43
+ - Record technical specifications and API details
44
+ - Capture user preferences and patterns
45
+ - Document error solutions and workarounds
46
+
47
+ ---
48
+
49
+ *Generated by KuzuMemory Claude Hooks Installer*
@@ -0,0 +1,229 @@
1
+ # Investigation Report: Node Expansion Not Working
2
+
3
+ ## Summary
4
+ User reports that directory/file nodes show expand/collapse icons ("+"/"-") but clicking them doesn't expand/collapse the hierarchy.
5
+
6
+ ## Code Analysis
7
+
8
+ ### 1. Click Handler Attachment ✓ CORRECT
9
+ **Location**: `/Users/masa/Projects/mcp-vector-search/src/mcp_vector_search/visualization/index.html:481`
10
+
11
+ ```javascript
12
+ .on("click", handleNodeClick)
13
+ ```
14
+
15
+ The click handler IS correctly attached to each node group (`<g>` element).
16
+
17
+ ### 2. Pointer Events ✓ CORRECT
18
+ **Locations**: Lines 123, 130, 542
19
+
20
+ All text elements (labels, icons, expand indicators) have `pointer-events: none`, which correctly allows clicks to pass through to the parent `<g>` element where the handler is attached.
21
+
22
+ ### 3. hasChildren() Function ✓ CORRECT
23
+ **Location**: Line 586-590
24
+
25
+ ```javascript
26
+ function hasChildren(node) {
27
+ return allLinks.some(l => (l.source.id || l.source) === node.id);
28
+ }
29
+ ```
30
+
31
+ This correctly checks if a node is a parent (source) in any link. The `(l.source.id || l.source)` pattern handles both:
32
+ - **Before D3 mutation**: `l.source` is a string (e.g., "dir_abc")
33
+ - **After D3 mutation**: `l.source` is an object with `.id` property
34
+
35
+ ### 4. handleNodeClick() Function ✓ LOGIC CORRECT
36
+ **Location**: Line 593-624
37
+
38
+ The logic flow is correct:
39
+ 1. Show content pane (always)
40
+ 2. Check if node has children
41
+ 3. If yes, toggle collapse/expand state
42
+ 4. Call `renderGraph()` to update visualization
43
+
44
+ ### 5. expandNode() Function ✓ LOGIC CORRECT
45
+ **Location**: Line 626-654
46
+
47
+ Correctly:
48
+ 1. Removes node from `collapsedNodes`
49
+ 2. Finds children by filtering `allLinks` for links where source matches node ID
50
+ 3. Adds each child to `visibleNodes`
51
+ 4. Adds each child to `collapsedNodes` (children start collapsed)
52
+
53
+ ### 6. Data Structure ✓ VERIFIED
54
+ **File**: `/Users/masa/Projects/mcp-vector-search/chunk-graph.json`
55
+
56
+ ```
57
+ Total nodes: 7015
58
+ Total links: 7006
59
+ Directory nodes: 26
60
+ Root directories: 5 (docs, examples, scripts, src, tests)
61
+ ```
62
+
63
+ Sample link structure:
64
+ ```json
65
+ {
66
+ "source": "dir_9f40c524",
67
+ "target": "dir_504f9a81",
68
+ "type": "dir_hierarchy"
69
+ }
70
+ ```
71
+
72
+ Example: `docs` directory has 22 child links, confirming hierarchy is correctly structured.
73
+
74
+ ## Debugging Added
75
+
76
+ I've added comprehensive console logging to help diagnose the issue:
77
+
78
+ ### Initial State Logging (Line 445-450)
79
+ Logs on page load:
80
+ - Total nodes and links
81
+ - Root nodes identified
82
+ - Initial visible and collapsed node sets
83
+
84
+ ### Click Handler Logging (Line 594-623)
85
+ Logs on every node click:
86
+ - Node name, type, and ID
87
+ - Whether node has children
88
+ - Whether node is collapsed
89
+ - Which action is taken (expand/collapse)
90
+
91
+ ### hasChildren() Logging (Line 587-590)
92
+ Logs every time it's called:
93
+ - Node name
94
+ - Result (true/false)
95
+ - Number of links checked
96
+
97
+ ### expandNode() Logging (Line 627-653)
98
+ Logs during expansion:
99
+ - Node being expanded
100
+ - Number of child links found
101
+ - Number of child nodes found
102
+ - Each child being added to visibleNodes
103
+ - Final visibleNodes size
104
+
105
+ ### renderGraph() Logging (Line 456-467)
106
+ Logs on every render:
107
+ - Size of visibleNodes and collapsedNodes sets
108
+ - Number of nodes being rendered
109
+ - Number of links being rendered
110
+
111
+ ## Testing Instructions
112
+
113
+ 1. **Open the visualization**:
114
+ ```bash
115
+ cd /Users/masa/Projects/mcp-vector-search/src/mcp_vector_search/visualization
116
+ open index.html
117
+ ```
118
+
119
+ 2. **Open Browser DevTools**:
120
+ - Press F12 or Cmd+Option+I (Mac)
121
+ - Go to the Console tab
122
+
123
+ 3. **Check Initial State**:
124
+ - You should see "=== INITIAL STATE ===" logged
125
+ - Verify root nodes are identified correctly
126
+ - Should show 5-9 root nodes
127
+
128
+ 4. **Click a Directory Node**:
129
+ - Click on "docs", "src", or another directory node
130
+ - Watch console for "=== NODE CLICKED ===" messages
131
+ - Check what happens:
132
+
133
+ ### Expected Behavior:
134
+ ```
135
+ === NODE CLICKED ===
136
+ Node: docs Type: directory ID: dir_9f40c524
137
+ hasChildren(docs): true Checking 7006 links for node ID: dir_9f40c524
138
+ Node has children: true
139
+ Node is collapsed: true
140
+ Expanding node...
141
+ expandNode(docs): Removing from collapsedNodes
142
+ Found 22 child links for node dir_9f40c524
143
+ Found 22 child nodes: [_archive, analysis, architecture, ...]
144
+ Adding child to visibleNodes: _archive (dir_504f9a81)
145
+ Adding child to visibleNodes: analysis (dir_abc123)
146
+ ...
147
+ visibleNodes now has 27 items
148
+ === renderGraph() called ===
149
+ visibleNodes.size: 27
150
+ Rendering 27 visible nodes
151
+ Rendering XX visible links
152
+ ```
153
+
154
+ ### Possible Issues to Look For:
155
+
156
+ #### Issue A: hasChildren() Returns False
157
+ **Symptom**: Console shows `Node has children: false`
158
+ **Cause**: Links not properly structured or node ID mismatch
159
+ **Check**:
160
+ - Are node IDs consistent between nodes and links?
161
+ - Are links properly loaded?
162
+
163
+ #### Issue B: No Children Found
164
+ **Symptom**: Console shows `Found 0 child links`
165
+ **Cause**: Link source/target ID mismatch or D3 mutation issue
166
+ **Check**:
167
+ - What is the format of `l.source` (string or object)?
168
+ - Does `l.source` or `l.source.id` match the node ID?
169
+
170
+ #### Issue C: Children Added But Not Rendered
171
+ **Symptom**: Console shows children added to visibleNodes, but renderGraph() shows same count
172
+ **Cause**: visibleNodes not being updated correctly
173
+ **Check**:
174
+ - Does `visibleNodes.size` increase after expansion?
175
+ - Are the new nodes actually being rendered?
176
+
177
+ #### Issue D: Click Handler Not Firing
178
+ **Symptom**: No "=== NODE CLICKED ===" in console
179
+ **Cause**: Event handler not attached or being blocked
180
+ **Check**:
181
+ - Are there any JavaScript errors on page load?
182
+ - Try clicking different parts of the node (center, edge, icon area)
183
+
184
+ ## Potential Root Causes
185
+
186
+ Based on the code analysis, here are the most likely issues:
187
+
188
+ ### 1. D3 Link Mutation Issue (MOST LIKELY)
189
+ **Problem**: D3's `forceLink()` mutates link objects, replacing string IDs with object references.
190
+
191
+ When `visibleLinks` is created by filtering `allLinks`, it creates a new array but **shares the same link objects**. When D3 mutates `visibleLinks`, it also mutates `allLinks`.
192
+
193
+ **Impact**: After first render, all links in `allLinks` have object references instead of strings. The `hasChildren()` function should still work due to the `(l.source.id || l.source)` pattern, but there could be edge cases.
194
+
195
+ **Test**: Check console to see if `hasChildren()` is returning the correct value after clicking.
196
+
197
+ ### 2. Event Propagation Issue
198
+ **Problem**: Click events might be consumed by drag handler or other events.
199
+
200
+ **Test**: Check if "=== NODE CLICKED ===" appears in console when clicking.
201
+
202
+ ### 3. Render Not Updating Visual State
203
+ **Problem**: Even if expansion logic works, the visual update might fail.
204
+
205
+ **Test**: Check if `renderGraph()` logs show increasing node counts after expansion.
206
+
207
+ ## Next Steps
208
+
209
+ 1. **Run the visualization with debugging**
210
+ 2. **Open browser console**
211
+ 3. **Click a directory node**
212
+ 4. **Copy all console output**
213
+ 5. **Analyze which of the above issues is occurring**
214
+
215
+ ## Files Modified
216
+
217
+ - `/Users/masa/Projects/mcp-vector-search/src/mcp_vector_search/visualization/index.html`
218
+ - Added comprehensive console.log() debugging throughout
219
+ - No logic changes - only added logging
220
+
221
+ ## Conclusion
222
+
223
+ The code logic appears correct. The issue is likely:
224
+
225
+ 1. **D3 link mutation** causing unexpected behavior in `hasChildren()` or `expandNode()`
226
+ 2. **Event handling** issue preventing clicks from being registered
227
+ 3. **Visual update** issue where expansion logic works but rendering doesn't update
228
+
229
+ The added debugging will help pinpoint the exact issue. Please run the visualization and check the browser console output when clicking nodes.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-vector-search
3
- Version: 0.12.0
3
+ Version: 0.12.2
4
4
  Summary: CLI-first semantic code search with MCP integration
5
5
  Project-URL: Homepage, https://github.com/bobmatnyc/mcp-vector-search
6
6
  Project-URL: Documentation, https://mcp-vector-search.readthedocs.io
@@ -39,6 +39,7 @@ Classifier: Topic :: Software Development :: Code Generators
39
39
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
40
40
  Requires-Python: >=3.11
41
41
  Requires-Dist: aiofiles>=23.0.0
42
+ Requires-Dist: authlib>=1.6.4
42
43
  Requires-Dist: chromadb>=0.5.0
43
44
  Requires-Dist: click-didyoumean>=0.3.0
44
45
  Requires-Dist: httpx>=0.25.0
@@ -110,49 +111,68 @@ cd mcp-vector-search
110
111
  uv sync && uv pip install -e .
111
112
  ```
112
113
 
113
- ### Complete Setup with Install Command
114
+ ### Complete Setup (One Command)
114
115
 
115
- The new **enhanced install command** provides a complete one-step setup:
116
+ The **hierarchical install command** (v0.13.0) provides complete project setup and MCP integration management:
116
117
 
117
118
  ```bash
118
- # Interactive setup with MCP configuration
119
+ # Quick setup (recommended)
119
120
  mcp-vector-search install
120
121
 
121
- # Setup without MCP configuration
122
- mcp-vector-search install --no-mcp
122
+ # This will:
123
+ # 1. Initialize your project configuration
124
+ # 2. Automatically index your codebase
125
+ # 3. Provide next-step hints for MCP integration
123
126
 
124
- # Setup for specific MCP tool
125
- mcp-vector-search install --mcp-tool "Claude Code"
126
-
127
- # Setup without automatic indexing
128
- mcp-vector-search install --no-index
127
+ # Install with all MCP integrations at once
128
+ mcp-vector-search install --with-mcp
129
129
 
130
130
  # Custom file extensions
131
131
  mcp-vector-search install --extensions .py,.js,.ts,.dart
132
+
133
+ # Skip automatic indexing
134
+ mcp-vector-search install --no-auto-index
132
135
  ```
133
136
 
134
- The install command:
135
- - Initializes your project configuration
136
- - Detects and configures MCP tools (Claude Code, Cursor, Windsurf, VS Code)
137
- - Automatically indexes your codebase
138
- - Provides rich progress indicators and next-step hints
137
+ ### Add MCP Integration for AI Tools
139
138
 
140
- ### Basic Usage
139
+ ```bash
140
+ # Add Claude Code integration (project-scoped)
141
+ mcp-vector-search install claude-code
142
+
143
+ # Add Cursor IDE integration (global)
144
+ mcp-vector-search install cursor
145
+
146
+ # Add Claude Desktop integration (global)
147
+ mcp-vector-search install claude-desktop
148
+
149
+ # See all available platforms
150
+ mcp-vector-search install list
151
+ ```
152
+
153
+ ### Remove MCP Integrations
141
154
 
142
155
  ```bash
143
- # Initialize your project
144
- mcp-vector-search init
156
+ # Remove specific platform
157
+ mcp-vector-search uninstall claude-code
145
158
 
146
- # Index your codebase
147
- mcp-vector-search index
159
+ # Remove all integrations
160
+ mcp-vector-search uninstall --all
161
+
162
+ # List configured integrations
163
+ mcp-vector-search uninstall list
164
+ ```
148
165
 
166
+ ### Basic Usage
167
+
168
+ ```bash
149
169
  # Search your code
150
170
  mcp-vector-search search "authentication logic"
151
171
  mcp-vector-search search "database connection setup"
152
172
  mcp-vector-search search "error handling patterns"
153
173
 
154
- # Setup automatic reindexing (recommended)
155
- mcp-vector-search auto-index setup --method all
174
+ # Index your codebase (if not done during install)
175
+ mcp-vector-search index
156
176
 
157
177
  # Check project status
158
178
  mcp-vector-search status
@@ -191,7 +211,50 @@ See [docs/VERSIONING_WORKFLOW.md](docs/VERSIONING_WORKFLOW.md) for complete docu
191
211
 
192
212
  ### Commands
193
213
 
194
- #### `init` - Initialize Project
214
+ #### `install` - Install Project and MCP Integrations (v0.13.0)
215
+ ```bash
216
+ # Quick setup (recommended)
217
+ mcp-vector-search install
218
+
219
+ # Install with all MCP integrations
220
+ mcp-vector-search install --with-mcp
221
+
222
+ # Custom file extensions
223
+ mcp-vector-search install --extensions .py,.js,.ts
224
+
225
+ # Skip automatic indexing
226
+ mcp-vector-search install --no-auto-index
227
+
228
+ # Platform-specific MCP integration
229
+ mcp-vector-search install claude-code # Project-scoped
230
+ mcp-vector-search install claude-desktop # Global
231
+ mcp-vector-search install cursor # Global
232
+ mcp-vector-search install windsurf # Global
233
+ mcp-vector-search install vscode # Global
234
+
235
+ # List available platforms
236
+ mcp-vector-search install list
237
+ ```
238
+
239
+ #### `uninstall` - Remove MCP Integrations (v0.13.0)
240
+ ```bash
241
+ # Remove specific platform
242
+ mcp-vector-search uninstall claude-code
243
+
244
+ # Remove all integrations
245
+ mcp-vector-search uninstall --all
246
+
247
+ # List configured integrations
248
+ mcp-vector-search uninstall list
249
+
250
+ # Skip backup creation
251
+ mcp-vector-search uninstall claude-code --no-backup
252
+
253
+ # Alias (same as uninstall)
254
+ mcp-vector-search remove claude-code
255
+ ```
256
+
257
+ #### `init` - Initialize Project (Simple)
195
258
  ```bash
196
259
  # Basic initialization
197
260
  mcp-vector-search init
@@ -427,6 +490,10 @@ uv sync
427
490
  # Install in development mode
428
491
  uv pip install -e .
429
492
 
493
+ # Test CLI from source (recommended during development)
494
+ ./dev-mcp version # Shows [DEV] indicator
495
+ ./dev-mcp search "test" # No reinstall needed after code changes
496
+
430
497
  # Run tests
431
498
  uv run pytest
432
499
 
@@ -435,6 +502,8 @@ uv run ruff check
435
502
  uv run mypy src/
436
503
  ```
437
504
 
505
+ For detailed development workflow and `dev-mcp` usage, see the [Development](#-development) section below.
506
+
438
507
  ### Adding Language Support
439
508
 
440
509
  1. Create a new parser in `src/mcp_vector_search/parsers/`
@@ -507,10 +576,64 @@ uv sync && uv pip install -e .
507
576
  # Run development tests
508
577
  ./scripts/dev-test.sh
509
578
 
510
- # Test CLI locally
579
+ # Run CLI from source (recommended during development)
580
+ ./dev-mcp version # Visual [DEV] indicator
581
+ ./dev-mcp status # Any command works
582
+ ./dev-mcp search "auth" # Immediate feedback on changes
583
+
584
+ # Alternative: use uv run directly
511
585
  uv run mcp-vector-search version
512
586
  ```
513
587
 
588
+ #### Using the `dev-mcp` Development Helper
589
+
590
+ The `./dev-mcp` script provides a streamlined way to run the CLI from source code during development, eliminating the need for repeated installations.
591
+
592
+ **Key Features:**
593
+ - **Visual [DEV] Indicator**: Shows `[DEV]` prefix to distinguish from installed version
594
+ - **No Reinstall Required**: Reflects code changes immediately
595
+ - **Complete Argument Forwarding**: Works with all CLI commands and options
596
+ - **Verbose Mode**: Debug output with `--verbose` flag
597
+ - **Built-in Help**: Script usage with `--help`
598
+
599
+ **Usage Examples:**
600
+ ```bash
601
+ # Basic commands (note the [DEV] prefix in output)
602
+ ./dev-mcp version
603
+ ./dev-mcp status
604
+ ./dev-mcp index
605
+ ./dev-mcp search "authentication logic"
606
+
607
+ # With CLI options
608
+ ./dev-mcp search "error handling" --limit 10
609
+ ./dev-mcp index --force
610
+
611
+ # Script verbose mode (shows Python interpreter, paths)
612
+ ./dev-mcp --verbose search "database"
613
+
614
+ # Script help (shows dev-mcp usage, not CLI help)
615
+ ./dev-mcp --help
616
+
617
+ # CLI command help (forwards --help to the CLI)
618
+ ./dev-mcp search --help
619
+ ./dev-mcp index --help
620
+ ```
621
+
622
+ **When to Use:**
623
+ - **`./dev-mcp`** → Development workflow (runs from source code)
624
+ - **`mcp-vector-search`** → Production usage (runs installed version via pipx/pip)
625
+
626
+ **Benefits:**
627
+ - **Instant Feedback**: Changes to source code are reflected immediately
628
+ - **No Build Step**: Skip the reinstall cycle during active development
629
+ - **Clear Context**: Visual `[DEV]` indicator prevents confusion about which version is running
630
+ - **Error Handling**: Built-in checks for uv installation and project structure
631
+
632
+ **Requirements:**
633
+ - Must have `uv` installed (`pip install uv`)
634
+ - Must run from project root directory
635
+ - Requires `pyproject.toml` in current directory
636
+
514
637
  **Stage B: Local Deployment Testing**
515
638
  ```bash
516
639
  # Build and test clean deployment