Large photo uploads now complete reliably

Fixed timeouts and inflated counts that prevented large batches from settling properly.

Bug Fixes

Photo uploads of 100+ items that were timing out and leaving inflated inventory counts are now fixed. The pipeline completes reliably by batching projection writes into a single bulk operation, eliminating the 30-second transaction timeout that failed 76% of large batches.

Inventory counts are now accurate — projection is the sole item writer and handles deduplication correctly. Progress updates live from the server instead of freezing until you refresh the page.

Items are also consolidated by type with quantity: "Drinking Glass ×18" instead of 18 separate rows.

Photo capture tips: Frame items up close; avoid panning the same shelf across many photos, since background items get counted repeatedly. One clear shot per group of identical items is enough.