mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-10-02 12:15:36 +02:00
setInterval does not await an async callback. Slicing a large project blocks the backend for seconds, so poll ticks piled up behind one stalled request, each holding a snapshot taken while the job was still active. They resolved together, and every one of them ran the completion path — one toast and two query invalidations each. A 20s stall against the 1.5s interval produced 13 "Sliced X" toasts from a single slice. Only one poll round is now in flight at a time, which also stops queueing requests against a backend that is already saturated. Completion is recorded once per job id, and a round still awaiting a response when the effect tears down now returns instead of acting.