Files
Alex Newman 5dfec73fea fix(chroma): stop JSON parse crashes from aborting the sync pipeline (rehost #3542) (#4040)
* fix(chroma): stop JSON parse crashes from aborting the sync pipeline

A truncated chroma-sync-state.json, a non-UTF-8 Python child, or one
unformattable row aborted the whole backfill, so no watermark advanced
and the same rows retried forever. Observation-list JSON.parse is
already tolerant on main.

Route state I/O through the crash-safe helpers, force PYTHONUTF8 on the
uvx child, and skip+pending a single bad row so the rest of the run
proceeds.

Rehost of #3542.

Co-authored-by: Alex Newman <thedotmack@users.noreply.github.com>

* fix(chroma): isolate sync-state tests and drop leaky MCP mock

The backfill skip test's mock.module replaced ChromaMcpManager globally
and broke later suites (reset / getUvxPreflightEnv missing). Drop that
test; the skip remains in backfillKind.

Reset the watermark cache between atomic-state cases so BOM and persist
assertions read this test's data dir, and pin PYTHONUTF8 on the uvx
preflight env.

Co-authored-by: Alex Newman <thedotmack@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Alex Newman <thedotmack@users.noreply.github.com>
2026-09-11 09:42:45 +00:00
..