Reminder-Storm Regression, July 23, 2026
Incident
One retained 3.3-second Channel 1 event previously produced reminders 3-7
within roughly two minutes. The corrected policy requires one trusted PTT to
produce one staged update with no repeat schedule unless later evidence proves
multiple presses, Morse-like signaling, directed voice, or an emergency.
Implemented Safeguards
- A single trusted PTT emits one ptt_press update and forces repeat policy
none.
- Acknowledgment or dismissal updates incident state and deactivates the
reminder schedule in one SQLite transaction.
- A scheduler atomically leases the exact due row before delivery. A second
overlapping or restarted worker cannot claim the same due time.
- Inference claims preserve acknowledged, dismissed, and closed states.
- Inference and reminder push paths recheck persisted resolution immediately
before delivery.
- Schedule advancement cannot reactivate a resolved incident.
An external push already in flight when acknowledgment occurs may complete.
Every reminder still pending in SQLite is canceled immediately and cannot be
resurrected by inference or scheduler restart.
Regression Coverage
The complete radio suite passed 77 tests. The reminder-storm acceptance cases
are:
text
test_single_trusted_ptt_pushes_once_without_reminder_schedule
test_acknowledgment_atomically_cancels_pending_reminders
test_stale_inference_cannot_resurrect_closed_incident
test_overlapping_workers_cannot_claim_same_reminder
test_scheduler_restart_does_not_duplicate_a_claimed_reminder
Command:
bash
/home/david/.venvs/radio/bin/python -m unittest -v test_radio_emergency
Deployment Verification
After service deployment:
- the scheduler, inference worker, API, and indicator were active;
- the managed receiver was restored to all-FRS mode;
- Channel 1 was centered at
462.5625 MHz; - IQ input was
12 MS/s; - all 22 FRS probes were active;
- idle waterfall cadence returned to 2 rows/s after browser disconnect;
- audio and waterfall client counts returned to zero;
- transcription and inference queues were zero;
- receiver driver-anomaly count was zero;
- active reminder schedule count was zero.
Remaining Live Gate
Software regression coverage is accepted. Full Phase 0 acceptance still
requires a controlled State F run proving one real phone notification for one
PTT, immediate cancellation after real acknowledgment, no stale inference
follow-up, and no duplicate delivery after a managed scheduler restart.