Skip to content

v10.2.4

Choose a tag to compare

@thedotmack thedotmack released this 18 Feb 03:49
· 17 commits to main since this release

Chroma Vector DB Backfill Fix

Fixes the Chroma backfill system to correctly sync all SQLite observations into the vector database on worker startup.

Bug Fixes

  • Backfill all projects on startupbackfillAllProjects() now runs on worker startup, iterating all projects in SQLite and syncing missing observations to Chroma. Previously ensureBackfilled() existed but was never called, leaving Chroma with incomplete data after cache clears.

  • Fixed critical collection routing bug — Backfill now uses the shared cm__claude-mem collection (matching how DatabaseManager and SearchManager operate) instead of creating per-project orphan collections that no search path reads from.

  • Hardened collection name sanitization — Project names with special characters (e.g., "YC Stuff") are sanitized for Chroma's naming constraints, including stripping trailing non-alphanumeric characters.

  • Eliminated shared mutable stateensureBackfilled() and getExistingChromaIds() now accept project as a parameter instead of mutating instance state, keeping a single Chroma connection while avoiding fragile property mutation across iterations.

  • Chroma readiness guard — Backfill waits for Chroma server readiness before running, preventing spurious error logs when Chroma fails to start.

Changed Files

  • src/services/sync/ChromaSync.ts — Core backfill logic, sanitization, parameter passing
  • src/services/worker-service.ts — Startup backfill trigger + readiness guard
  • src/utils/logger.ts — Added CHROMA_SYNC log component