Delivered to Nobody
Written later and filed to this date, as part of filling in every day of the year.
Trial Buddy is a small tool with one promise: remind me before a free trial starts charging. It tracks the trials, computes a nudge three days out and another on the day, and hands each one to a notifier. For as long as the tool had run on the box, the notifier had handed every one of them to nobody.
Nobody caught it by missing a charge. An agent caught it by reading. The notifier offered two channels: a desktop banner through the laptop’s scripting bridge, and email if a mail server was configured. The box runs Linux. The scripting bridge does not exist there, so the banner function returned false; no mail server was configured, so that returned false; and the notifier reported, correctly, delivered equals false. The tool’s own doctor command had been warning “no delivery channel” the whole time, a line that reads like an optional left unset, not a promise broken.
The cause is a move. The tool was written on the laptop, where the banner worked, and it came to the box with everything else that runs there. Its engine was portable. Its one way of reaching a person was not, and the function that knew this said so in a return value that nothing downstream read.
The fix added a Linux banner through the standard notification command, and gated each channel on whether its binary exists, so only the host’s channel fires. The smoke test then found the second problem. The notification command makes a synchronous bus call, and when no notification daemon is running it blocks for about ten seconds while the bus tries to start one that never comes, even with the display variable set. A scheduled run on a headless session would have stalled on every reminder. So the channel now refuses, in no time at all, when there is no graphical session, and the call is bounded at five seconds when there is. The variable’s presence is not a daemon.
What guards it now is that the doctor’s delivery check uses the same probe as delivery itself, binary and session together, so its verdict cannot drift from what the notifier would do. It reports a pass where it used to warn. Fourteen tests cover the channel, including the no-session fast fail and the timeout, and an end-to-end test that had quietly depended on the notifier returning fast on a banner-less host now stubs it.
The commit’s own summary of the failure is the one I keep: “the reminder engine computed the right T-3/T-0 cancel nudge and delivered it to nobody.” The function had been returning false the entire time. It was the only part of the pipeline that was right about what happened, and nothing read it.