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

Files changed (149) hide show
  1. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/PKG-INFO +1 -1
  2. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/__init__.py +2 -2
  3. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/core/database.py +28 -0
  4. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/core/indexer.py +18 -0
  5. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/.changesets/20251009-204754-feat-add-comprehensive-changeset-and-documentation.md +0 -0
  6. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/.changesets/20251009-205435-fix-update-readme-version-badge-to-0-7-1.md +0 -0
  7. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/.changesets/20251009-205439-feat-add-comprehensive-changeset-support-system.md +0 -0
  8. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/.changesets/EXAMPLE.md +0 -0
  9. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/.changesets/IMPLEMENTATION_SUMMARY.md +0 -0
  10. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/.changesets/README.md +0 -0
  11. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/.changesets/template.md +0 -0
  12. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/.editorconfig +0 -0
  13. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/.github/workflows/ci.yml +0 -0
  14. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/.gitignore +0 -0
  15. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/.pre-commit-config.yaml +0 -0
  16. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/CLAUDE.md +0 -0
  17. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/LICENSE +0 -0
  18. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/Makefile +0 -0
  19. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/PERFORMANCE_OPTIMIZATION_SUMMARY.md +0 -0
  20. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/README.md +0 -0
  21. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/CHANGELOG.md +0 -0
  22. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/CLI_FEATURES.md +0 -0
  23. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/DEPLOY.md +0 -0
  24. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/DEVELOPMENT.md +0 -0
  25. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/FEATURES.md +0 -0
  26. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/IMPROVEMENTS_SUMMARY.md +0 -0
  27. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/MCP_FILE_WATCHING.md +0 -0
  28. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/RELEASES.md +0 -0
  29. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/STRUCTURE.md +0 -0
  30. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/VERSIONING.md +0 -0
  31. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/VERSIONING_WORKFLOW.md +0 -0
  32. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/_archive/CLAUDE_20251009_pre_mpm_init.md +0 -0
  33. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/_archive/CLAUDE_MPM_INIT_SUMMARY_20251009.md +0 -0
  34. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/_archive/MPM_INIT_EXECUTIVE_SUMMARY.md +0 -0
  35. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/analysis/SEARCH_ANALYSIS_REPORT.md +0 -0
  36. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/analysis/SEARCH_IMPROVEMENT_PLAN.md +0 -0
  37. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/architecture/REINDEXING_WORKFLOW.md +0 -0
  38. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/debugging/SEARCH_BUG_ANALYSIS.md +0 -0
  39. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/developer/API.md +0 -0
  40. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/developer/CONTRIBUTING.md +0 -0
  41. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/developer/DEVELOPER.md +0 -0
  42. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/developer/LINTING.md +0 -0
  43. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/developer/REFACTORING_ANALYSIS.md +0 -0
  44. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/developer/TESTING.md +0 -0
  45. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/developer/TESTING_STRATEGY.md +0 -0
  46. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/developer/TEST_SUITE_SUMMARY.md +0 -0
  47. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/mcp-integration.md +0 -0
  48. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/optimizations/database-stats-chunked-processing.md +0 -0
  49. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/performance/CONNECTION_POOLING.md +0 -0
  50. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/performance/SEARCH_TIMING_ANALYSIS.md +0 -0
  51. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/prd/mcp_vector_search_prd_updated.md +0 -0
  52. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/reference/ENGINEER_TASK.md +0 -0
  53. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/reference/INSTALL.md +0 -0
  54. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/reference/INSTALL_COMMAND_ENHANCEMENTS.md +0 -0
  55. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/reference/MCP_SETUP.md +0 -0
  56. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/reference/PROJECT_ORGANIZATION.md +0 -0
  57. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/docs/technical/SIMILARITY_CALCULATION_FIX.md +0 -0
  58. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/examples/connection_pooling_example.py +0 -0
  59. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/examples/semi_automatic_reindexing_demo.py +0 -0
  60. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/mcp-vector-search-wrapper +0 -0
  61. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/pyproject.toml +0 -0
  62. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/pytest.ini +0 -0
  63. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/README.md +0 -0
  64. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/analyze_search_bottlenecks.py +0 -0
  65. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/build.sh +0 -0
  66. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/changeset.py +0 -0
  67. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/comprehensive_build.py +0 -0
  68. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/deploy-test.sh +0 -0
  69. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/dev-build.py +0 -0
  70. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/dev-setup.py +0 -0
  71. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/dev-test.sh +0 -0
  72. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/fix_linting.py +0 -0
  73. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/mcp-dev +0 -0
  74. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/monitor_search_performance.py +0 -0
  75. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/publish.sh +0 -0
  76. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/quick_search_timing.py +0 -0
  77. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/run_search_timing_tests.py +0 -0
  78. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/run_tests.py +0 -0
  79. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/search_performance_monitor.py +0 -0
  80. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/search_quality_analyzer.py +0 -0
  81. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/setup/mcp-vector-search.sh +0 -0
  82. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/setup/setup-alias.sh +0 -0
  83. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/setup-dev-mcp.sh +0 -0
  84. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/update_docs.py +0 -0
  85. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/version_manager.py +0 -0
  86. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/scripts/workflow.sh +0 -0
  87. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/__init__.py +0 -0
  88. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/commands/__init__.py +0 -0
  89. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/commands/auto_index.py +0 -0
  90. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/commands/config.py +0 -0
  91. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/commands/demo.py +0 -0
  92. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/commands/index.py +0 -0
  93. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/commands/init.py +0 -0
  94. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/commands/install.py +0 -0
  95. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/commands/mcp.py +0 -0
  96. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/commands/reset.py +0 -0
  97. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/commands/search.py +0 -0
  98. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/commands/status.py +0 -0
  99. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/commands/visualize.py +0 -0
  100. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/commands/watch.py +0 -0
  101. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/didyoumean.py +0 -0
  102. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/export.py +0 -0
  103. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/history.py +0 -0
  104. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/interactive.py +0 -0
  105. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/main.py +0 -0
  106. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/output.py +0 -0
  107. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/cli/suggestions.py +0 -0
  108. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/config/__init__.py +0 -0
  109. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/config/constants.py +0 -0
  110. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/config/defaults.py +0 -0
  111. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/config/settings.py +0 -0
  112. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/core/__init__.py +0 -0
  113. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/core/auto_indexer.py +0 -0
  114. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/core/connection_pool.py +0 -0
  115. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/core/embeddings.py +0 -0
  116. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/core/exceptions.py +0 -0
  117. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/core/factory.py +0 -0
  118. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/core/git_hooks.py +0 -0
  119. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/core/models.py +0 -0
  120. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/core/project.py +0 -0
  121. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/core/scheduler.py +0 -0
  122. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/core/search.py +0 -0
  123. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/core/watcher.py +0 -0
  124. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/mcp/__init__.py +0 -0
  125. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/mcp/__main__.py +0 -0
  126. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/mcp/server.py +0 -0
  127. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/parsers/__init__.py +0 -0
  128. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/parsers/base.py +0 -0
  129. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/parsers/dart.py +0 -0
  130. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/parsers/html.py +0 -0
  131. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/parsers/javascript.py +0 -0
  132. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/parsers/php.py +0 -0
  133. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/parsers/python.py +0 -0
  134. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/parsers/registry.py +0 -0
  135. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/parsers/ruby.py +0 -0
  136. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/parsers/text.py +0 -0
  137. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/parsers/utils.py +0 -0
  138. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/py.typed +0 -0
  139. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/utils/__init__.py +0 -0
  140. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/utils/gitignore.py +0 -0
  141. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/utils/monorepo.py +0 -0
  142. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/utils/timing.py +0 -0
  143. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/src/mcp_vector_search/utils/version.py +0 -0
  144. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/tests/__init__.py +0 -0
  145. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/tests/conftest.py +0 -0
  146. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/tests/sample_code/ast_test_javascript.js +0 -0
  147. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/tests/sample_code/ast_test_python.py +0 -0
  148. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/tests/sample_code/ast_test_typescript.ts +0 -0
  149. {mcp_vector_search-0.9.1 → mcp_vector_search-0.9.3}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-vector-search
3
- Version: 0.9.1
3
+ Version: 0.9.3
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
@@ -1,7 +1,7 @@
1
1
  """MCP Vector Search - CLI-first semantic code search with MCP integration."""
2
2
 
3
- __version__ = "0.9.1"
4
- __build__ = "38"
3
+ __version__ = "0.9.3"
4
+ __build__ = "40"
5
5
  __author__ = "Robert Matsuoka"
6
6
  __email__ = "bobmatnyc@gmail.com"
7
7
 
@@ -273,6 +273,19 @@ class ChromaVectorDatabase(VectorDatabase):
273
273
  "class_name": chunk.class_name or "",
274
274
  "docstring": chunk.docstring or "",
275
275
  "complexity_score": chunk.complexity_score,
276
+ # Hierarchy fields
277
+ "chunk_id": chunk.chunk_id or "",
278
+ "parent_chunk_id": chunk.parent_chunk_id or "",
279
+ "child_chunk_ids": chunk.child_chunk_ids or [],
280
+ "chunk_depth": chunk.chunk_depth,
281
+ # Additional metadata
282
+ "decorators": chunk.decorators or [],
283
+ "parameters": chunk.parameters or [],
284
+ "return_type": chunk.return_type or "",
285
+ "type_annotations": chunk.type_annotations or {},
286
+ # Monorepo support
287
+ "subproject_name": chunk.subproject_name or "",
288
+ "subproject_path": chunk.subproject_path or "",
276
289
  }
277
290
  metadatas.append(metadata)
278
291
 
@@ -760,6 +773,21 @@ class PooledChromaVectorDatabase(VectorDatabase):
760
773
  "chunk_type": chunk.chunk_type,
761
774
  "function_name": chunk.function_name or "",
762
775
  "class_name": chunk.class_name or "",
776
+ "docstring": chunk.docstring or "",
777
+ "complexity_score": chunk.complexity_score,
778
+ # Hierarchy fields
779
+ "chunk_id": chunk.chunk_id or "",
780
+ "parent_chunk_id": chunk.parent_chunk_id or "",
781
+ "child_chunk_ids": chunk.child_chunk_ids or [],
782
+ "chunk_depth": chunk.chunk_depth,
783
+ # Additional metadata
784
+ "decorators": chunk.decorators or [],
785
+ "parameters": chunk.parameters or [],
786
+ "return_type": chunk.return_type or "",
787
+ "type_annotations": chunk.type_annotations or {},
788
+ # Monorepo support
789
+ "subproject_name": chunk.subproject_name or "",
790
+ "subproject_path": chunk.subproject_path or "",
763
791
  }
764
792
  )
765
793
  ids.append(chunk.id)
@@ -710,6 +710,9 @@ class SemanticIndexer:
710
710
  Yields:
711
711
  Tuple of (file_path, chunks_added, success) for each processed file
712
712
  """
713
+ # Write version header to error log at start of indexing run
714
+ self._write_indexing_run_header()
715
+
713
716
  metadata = self._load_index_metadata()
714
717
 
715
718
  # Process files in batches for better memory management
@@ -826,3 +829,18 @@ class SemanticIndexer:
826
829
  mod.chunk_depth = 0
827
830
 
828
831
  return chunks
832
+
833
+ def _write_indexing_run_header(self) -> None:
834
+ """Write version and timestamp header to error log at start of indexing run."""
835
+ try:
836
+ error_log_path = self.project_root / ".mcp-vector-search" / "indexing_errors.log"
837
+ error_log_path.parent.mkdir(parents=True, exist_ok=True)
838
+
839
+ with open(error_log_path, "a", encoding="utf-8") as f:
840
+ timestamp = datetime.now(UTC).isoformat()
841
+ separator = "=" * 80
842
+ f.write(f"\n{separator}\n")
843
+ f.write(f"[{timestamp}] Indexing run started - mcp-vector-search v{__version__}\n")
844
+ f.write(f"{separator}\n")
845
+ except Exception as e:
846
+ logger.debug(f"Failed to write indexing run header: {e}")