{% comment %} Reminders and scheduled replies waiting on this thread, plus any scheduled reply that came due and was refused. Inside the polled region, unlike the compose box and the header: these carry a countdown, and apps/inbox/views.py folds the *rendered* countdown strings into this pane's ETag precisely so the pane refreshes when the words would change — about once a minute — rather than every three seconds or never. Nothing here holds unsaved work, so a swap costs nothing. A failed reply stays until somebody cancels it. "Never a silent drop" means the thread carries the failure, not only the notification a logged-out agent may never see; `reason` is apps.messaging.codes.describe's sentence for a machine code, never a provider's own text. {% endcomment %} {% if pending_reminders or pending_replies or failed_replies %}