6d4a4819de
Critical bugfix: ChromaSync now properly cleans up chroma-mcp subprocesses when the worker is restarted, preventing memory exhaustion from orphaned processes accumulating over time. Changes: - Store reference to StdioClientTransport subprocess - Explicitly close transport in close() method to kill subprocess - Add error handling to ensure cleanup even on failures - Reset all state in finally block Problem: Each worker restart spawned a new chroma-mcp process but never killed the old one. After multiple restarts, orphaned processes accumulated (16+ seen in production), consuming 900MB+ RAM and eventually causing OOM kills that silently failed backfills. Impact: - Eliminates process accumulation - Prevents memory exhaustion from leaked subprocesses - Fixes silent backfill failures caused by OOM kills - Ensures graceful cleanup on worker shutdown 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>