M3: OCR pipeline #21

Closed
opened 2026-07-05 19:20:22 +01:00 by TimCane · 0 comments
TimCane commented 2026-07-05 19:20:22 +01:00 (Migrated from github.com)

Goal

Real OCR end-to-end: bounded queue + worker, sidecar inference, ReceiptParser with a fixture corpus, and OCR status over the hub.

Scope

Bounded queue + OcrWorker, real sidecar inference, ReceiptParser + fixture corpus, OcrStatusChanged over the hub (connect + events only).

References

Acceptance criteria (docs/14)

  • A1 Photo of a real receipt -> Review with plausible items in < 30s
  • A2 Seed fixture corpus (7 receipts) passes
  • A3 Sidecar down -> session lands Review/Failed with reason; no hang
  • A4 19 concurrent uploads: 2 in flight + 16 queued, overflow 429, none pin CPU beyond 2 workers

Notes

ReceiptParser+corpus and OcrQueue/HttpOcrClient precede OcrWorker; hub-connect + notifier land in parallel; the connect-only hub here is extended in M5.

Sub-tasks are tracked as sub-issues below.

## Goal Real OCR end-to-end: bounded queue + worker, sidecar inference, ReceiptParser with a fixture corpus, and OCR status over the hub. ## Scope Bounded queue + OcrWorker, real sidecar inference, ReceiptParser + fixture corpus, OcrStatusChanged over the hub (connect + events only). ## References - [docs/14-build-order.md#m3---ocr-pipeline](https://github.com/TimCane/bill-splitter/blob/main/docs/14-build-order.md#m3---ocr-pipeline) - [docs/06-ocr-service.md](https://github.com/TimCane/bill-splitter/blob/main/docs/06-ocr-service.md) - [docs/05-realtime-contract.md](https://github.com/TimCane/bill-splitter/blob/main/docs/05-realtime-contract.md) - [docs/07-backend-design.md](https://github.com/TimCane/bill-splitter/blob/main/docs/07-backend-design.md) - [docs/11-testing-strategy.md](https://github.com/TimCane/bill-splitter/blob/main/docs/11-testing-strategy.md) ## Acceptance criteria (docs/14) - [ ] A1 Photo of a real receipt -> `Review` with plausible items in < 30s - [ ] A2 Seed fixture corpus (7 receipts) passes - [ ] A3 Sidecar down -> session lands `Review`/`Failed` with reason; no hang - [ ] A4 19 concurrent uploads: 2 in flight + 16 queued, overflow 429, none pin CPU beyond 2 workers ## Notes ReceiptParser+corpus and OcrQueue/HttpOcrClient precede OcrWorker; hub-connect + notifier land in parallel; the connect-only hub here is extended in M5. Sub-tasks are tracked as sub-issues below.
Sign in to join this conversation.
No description provided.