patch2026-10-04
2026.10.04 — Callbacks + Activity infinite-spinner fix
Fixed
- Dashboard → 🔁 Callbacks tab: could show “Loading callbacks…” forever. Now always renders the callback queue (pending first, oldest waiting first) with working Call Back Now, Mark Complete, and Dismiss actions, accurate pending badges, and a helpful empty state.
- Dashboard → 🔔 Activity tab: could show “Loading activity…” forever. Now always renders the full activity feed with type/channel filters, 30-second live refresh, and the bell badge count.
- New guarantee: every tab load is bounded by a 15-second timeout — a spinner can never persist indefinitely. Hung requests, expired sessions, and server errors all render a clear message with a ↻ Retry button.
- Also hardened: the activity live-poll can’t stack overlapping requests, and event titles render safely even for unexpected event data.
Verified
- 19 new unit tests (
src/callbacks-activity.test.js); full suite 61/61 green. - 15/15 automated browser checks on the real tab code: pre-fix spinner-stuck bug reproduced, post-fix timeout→Retry→render flow confirmed, mobile 375px overflow-free.
- Preview deployment:
GET /api/callbacksandGET /api/activityanswer promptly with proper JSON (401 when signed out; never a hang or 500).
Create your call page
Turn your website visitors into phone conversations — set up in under two minutes.
Create your call page →