2c2ec16f08b3abb6ca020cf6ef7539d1ac9cded3
a6ce207moved the 12s polarity confirm to a Celery task (apply_async countdown). That requires a running Celery worker to execute it — but local dev runs only uvicorn (the dev-server skill starts no worker; the original tasks.py docstring chose threading.Timer precisely "so no separate Celery worker is needed in development"). So locally the confirm was queued and never ran: the countdown hit 0, no significators saved, and a refresh stayed in SIG_SELECT (no skip to the table hex). A regression in the core flow. Restore tasks.py + test_tasks.py to thefaaa4ecthreading.Timer version (still in-process, with the {token, deadline} cache + countdown_remaining restore-on- load intact) and drop the now-unneeded CELERY_BROKER_URL='memory://' test override. Kept froma6ce207: the room.js WebSocket auto-reconnect — that is the actual fix for the dropped-socket delivery bug (the SigSelectSpec bisection proved the client restarts the numeral fine on re-received events; the failure was delivery, which a dead socket with no reconnect explains). Celery was a misdiagnosis of an in-process broadcast that works fine for a single-process dev/staging server. 23 task UTs + CARTE sig ITs green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Description
No description provided
Languages
Python
45.5%
JavaScript
36.1%
HTML
9.6%
SCSS
8.6%
Jinja
0.1%