Tabular review: stop losing cell values on re-runs; make runs converge

↗ view on GitHub · emileriksenkeev · 2026-07-17 · 6c7f015d

Four compounding reliability bugs in /tabular-review/:id/generate:

- Cells queued for processing had their stored content nulled before the
  new value existed, so any model failure (or an interrupted run) left a
  previously-good cell permanently blank. Keep the old content; when a
  column never comes back, restore the prior value instead of erroring.
- Every document ran concurrently via unbounded Promise.all - ~100
  simultaneous LLM streams on a Vault-sized review tripped provider rate
  limits, failing a different random subset of rows on every run. Use a
  bounded worker pool (TABULAR_DOC_CONCURRENCY, default 4).
- Columns the model omitted from its single streamed response were
  immediately marked error. Retry the missing columns once per document
  before giving up.
- Streamed JSON lines wrapped in markdown fences were dropped silently;
  skip fence lines instead.

Re-running a review now only fills gaps and converges instead of
churning values.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Repository emileriksenkeev/sydOS
Author emileriksenkeev <emil@keev.co>
Authored
Parents efa041e6
Stats 1 file changed , +153 , -91
Part of Litigation tabular-review and case-assessment workflows

Capture this commit into my fork

Download a Markdown prompt that tells Claude how to port this exact commit into your working tree. Run it via claude -p < capture-commit-6c7f015d.md from inside the repo you want the change in.

⬇ Download capture-commit-6c7f015d.md