add FIFO job queue for indexing — sequential processing with position feedback
replaces the previous model (one thread per job, all fighting over the
embedder mutex) with a single worker thread draining a FIFO queue.
- jobs run one at a time: CAR download + embed, then next job
- status response includes queue_position and queue_depth
- frontend shows "N jobs ahead of you" while waiting
- predictable throughput, honest wait times
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>