mcp-code-indexer 4.2.4__py3-none-any.whl → 4.2.5__py3-none-any.whl

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.
@@ -44,6 +44,7 @@ class VectorDaemon:
44
44
  self.monitored_projects: Set[str] = set()
45
45
  self.processing_queue: asyncio.Queue = asyncio.Queue(maxsize=config.max_queue_size)
46
46
  self.workers: list[asyncio.Task] = []
47
+ self.monitor_tasks: list[asyncio.Task] = []
47
48
 
48
49
  # Statistics
49
50
  self.stats = {
@@ -101,6 +102,7 @@ class VectorDaemon:
101
102
  # Start monitoring tasks
102
103
  monitor_task = asyncio.create_task(self._monitor_projects())
103
104
  stats_task = asyncio.create_task(self._stats_reporter())
105
+ self.monitor_tasks.extend([monitor_task, stats_task])
104
106
 
105
107
  # Wait for shutdown signal
106
108
  await self._run_until_shutdown()
@@ -141,6 +143,9 @@ class VectorDaemon:
141
143
 
142
144
  await asyncio.sleep(self.config.daemon_poll_interval)
143
145
 
146
+ except asyncio.CancelledError:
147
+ logger.info("Project monitoring cancelled")
148
+ break
144
149
  except Exception as e:
145
150
  logger.error(f"Error in project monitoring: {e}")
146
151
  self.stats["errors_count"] += 1
@@ -180,6 +185,9 @@ class VectorDaemon:
180
185
  await self._process_task(task, worker_id)
181
186
  self.stats["last_activity"] = time.time()
182
187
 
188
+ except asyncio.CancelledError:
189
+ logger.info(f"Worker {worker_id} cancelled")
190
+ break
183
191
  except Exception as e:
184
192
  logger.error(f"Worker {worker_id} error: {e}")
185
193
  self.stats["errors_count"] += 1
@@ -251,6 +259,9 @@ class VectorDaemon:
251
259
 
252
260
  await asyncio.sleep(60.0) # Report every minute
253
261
 
262
+ except asyncio.CancelledError:
263
+ logger.info("Stats reporting cancelled")
264
+ break
254
265
  except Exception as e:
255
266
  logger.error(f"Error in stats reporting: {e}")
256
267
  await asyncio.sleep(10.0)
@@ -264,9 +275,14 @@ class VectorDaemon:
264
275
  for worker in self.workers:
265
276
  worker.cancel()
266
277
 
267
- # Wait for workers to finish
268
- if self.workers:
269
- await asyncio.gather(*self.workers, return_exceptions=True)
278
+ # Cancel monitor tasks
279
+ for task in self.monitor_tasks:
280
+ task.cancel()
281
+
282
+ # Wait for all tasks to finish
283
+ all_tasks = self.workers + self.monitor_tasks
284
+ if all_tasks:
285
+ await asyncio.gather(*all_tasks, return_exceptions=True)
270
286
 
271
287
  logger.info("Vector daemon shutdown complete")
272
288
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: mcp-code-indexer
3
- Version: 4.2.4
3
+ Version: 4.2.5
4
4
  Summary: MCP server that tracks file descriptions across codebases, enabling AI agents to efficiently navigate and understand code through searchable summaries and token-aware overviews.
5
5
  License: MIT
6
6
  Keywords: mcp,model-context-protocol,code-indexer,ai-tools,codebase-navigation,file-descriptions,llm-tools
@@ -48,8 +48,8 @@ Description-Content-Type: text/markdown
48
48
 
49
49
  # MCP Code Indexer 🚀
50
50
 
51
- [![PyPI version](https://badge.fury.io/py/mcp-code-indexer.svg?51)](https://badge.fury.io/py/mcp-code-indexer)
52
- [![Python](https://img.shields.io/pypi/pyversions/mcp-code-indexer.svg?51)](https://pypi.org/project/mcp-code-indexer/)
51
+ [![PyPI version](https://badge.fury.io/py/mcp-code-indexer.svg?52)](https://badge.fury.io/py/mcp-code-indexer)
52
+ [![Python](https://img.shields.io/pypi/pyversions/mcp-code-indexer.svg?52)](https://pypi.org/project/mcp-code-indexer/)
53
53
  [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
54
54
 
55
55
  A production-ready **Model Context Protocol (MCP) server** that revolutionizes how AI agents navigate and understand codebases. Built for high-concurrency environments with advanced database resilience, the server provides instant access to intelligent descriptions, semantic search, and context-aware recommendations while maintaining 800+ writes/sec throughput.
@@ -47,7 +47,7 @@ mcp_code_indexer/vector_mode/chunking/ast_chunker.py,sha256=GTl_6U0nSgDRRzKS07tJ
47
47
  mcp_code_indexer/vector_mode/chunking/chunk_optimizer.py,sha256=xD0zEibjt6FLBFaKHNc63-iKTtCgnOlLL_9Hc8mCrzE,19752
48
48
  mcp_code_indexer/vector_mode/chunking/language_handlers.py,sha256=YEpTVjzyJH445OjniGV05apexsfG5KVR4lwBEl4mGJc,18189
49
49
  mcp_code_indexer/vector_mode/config.py,sha256=g5p9Q4EAR20DfLv4RxaQnk3_UdysuvWS8rcsjs1vgwI,6680
50
- mcp_code_indexer/vector_mode/daemon.py,sha256=rIm7TvPFKUiPbMuTPyrafIEw5YA8sfMk3lRobKooyiI,12247
50
+ mcp_code_indexer/vector_mode/daemon.py,sha256=g8nob8rVpNkfo3ddKhXIwXjmY6DLSiOEPM0pZlcBQDk,12894
51
51
  mcp_code_indexer/vector_mode/monitoring/__init__.py,sha256=9rNWCvHxRMvYumdIrPjb5K9fpOwe1Aem24hdh8gXoDM,439
52
52
  mcp_code_indexer/vector_mode/monitoring/change_detector.py,sha256=X82e_sKbJJFPhqZFJubLQb8Rs-srRtS7sh0nUOsPCPw,10338
53
53
  mcp_code_indexer/vector_mode/monitoring/file_watcher.py,sha256=AQ6YHSKXPubtprLZngeLb0othJOCNQZ7wwXUvqwphT4,15299
@@ -58,8 +58,8 @@ mcp_code_indexer/vector_mode/providers/voyage_client.py,sha256=pfm9BOx5Temf0LM-V
58
58
  mcp_code_indexer/vector_mode/security/__init__.py,sha256=itfeuysSqV-m9xuo-CMkAoucxexVfPgeOU-ieTLvdls,336
59
59
  mcp_code_indexer/vector_mode/security/patterns.py,sha256=0xaiMnZm7YXswq3hVe_DJYePE9MhWuvizApLnmXus9M,11572
60
60
  mcp_code_indexer/vector_mode/security/redactor.py,sha256=tsFzhCJ99bp4EFqQVjZ-4f8Uf3ux9X4ODVR09oJG01U,13380
61
- mcp_code_indexer-4.2.4.dist-info/LICENSE,sha256=JN9dyPPgYwH9C-UjYM7FLNZjQ6BF7kAzpF3_4PwY4rY,1086
62
- mcp_code_indexer-4.2.4.dist-info/METADATA,sha256=NqTq19XV8AEAw-pV3fwqNQolFvjZkhcYauLABye5zHQ,27483
63
- mcp_code_indexer-4.2.4.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
64
- mcp_code_indexer-4.2.4.dist-info/entry_points.txt,sha256=UABj7HZ0mC6rvF22gxaz2LLNLGQShTrFmp5u00iUtvo,67
65
- mcp_code_indexer-4.2.4.dist-info/RECORD,,
61
+ mcp_code_indexer-4.2.5.dist-info/LICENSE,sha256=JN9dyPPgYwH9C-UjYM7FLNZjQ6BF7kAzpF3_4PwY4rY,1086
62
+ mcp_code_indexer-4.2.5.dist-info/METADATA,sha256=XsQxIOZisC9XqRt-WyNtRBvvE0CXSvTPdOvYaGBP36w,27483
63
+ mcp_code_indexer-4.2.5.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
64
+ mcp_code_indexer-4.2.5.dist-info/entry_points.txt,sha256=UABj7HZ0mC6rvF22gxaz2LLNLGQShTrFmp5u00iUtvo,67
65
+ mcp_code_indexer-4.2.5.dist-info/RECORD,,