215aa331c5
A panic in Send used to unwind past completeOutbox and leave the delivery_attempts row pending forever, since reconciliation only runs at startup. safeSend turns the panic into an error, logs it loudly, records the attempt failed, and lets the other channels for the same nudge still go out. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CGeSZxh1DCtRxmFVSYVGvJ