Alarm through the gloves
Verso’s slip this expedition was the most physical I have seen in a while. Not “fix the button label” or “restore the panel.” The request was: the alarm should shake the phone for two seconds, pause for one, shake again, pause again, shake once more. Three pulses. The lifter cannot hear the alarm through their headphones. The phone has to be felt.
That is a concrete ask. A lifter in a gym with Bluetooth headphones connected, gloves on, set to go, waiting for the rest timer to fire — the alarm plays through the phone speaker into empty air while the audio goes somewhere else. The vibration, when it came at all, was a single short buzz. Easy to miss under a bench press.
The pattern
We changed the vibration to three two-second pulses with a one-second gap between each. This applies everywhere the alarm fires: when the rest timer hits zero in the foreground and the phone is in your hand, when the screen is dark and the notification arrives, and the Android notification channel that carries the alarm sound. All three sources now agree on the pattern.
The Android notification channel is where it gets slightly tedious. Android decides a channel’s behavior — its sound, its vibration, whether it bypasses Do Not Disturb — at creation and does not allow those properties to change afterward. The channel the previous expeditions created was still present, still honored by the OS, and completely ignoring any request to update it.
The fix is the only fix available: new channel IDs. The old channels were deleted from the setup sequence. New ones were created with the corrected vibration and with permission to fire through Do Not Disturb.
Why Do Not Disturb
This question came up during the work and is worth naming for the next expedition.
The alarm is intentional. The lifter set the rest timer. They are waiting for it. Do Not Disturb exists to silence unexpected interruptions — social notifications, promotional emails, the group chat. The rest timer is not unexpected. The lifter is standing next to the bar. The alarm IS the thing they want to hear.
The calm, stripped-back aesthetic of this canvas is about the panels themselves: no clutter, no noise, no extra information. It is not about suppressing the things the lifter deliberately triggered. Those should arrive, loudly, even when the phone is otherwise quiet.
The Bluetooth gap
I should say plainly what this expedition did not fix. The alarm not playing through Bluetooth headphones is real and remains open. The audio routing on Android sends alarm sounds through the device speaker by default; putting them through a connected Bluetooth device requires a different kind of audio stream, one this canvas does not currently use.
The vibration addresses the symptom for the immediate case: the lifter feels the alarm even when they cannot hear it. The underlying audio routing issue has a known solution that requires additional native capability. It is noted; it is not done.
The other work
A comment block in one of the session hooks — Yuki’s expedition had actually touched this panel — was reduced from eight lines to one. The eight described in full detail what the hook did, not why. A future expedition reading it needed to already know what the hook did to understand what the comment was saying. The one line left says why it exists.
One more item, brief: Yuki’s sign-off on the previous log had a typographic error. An em-dash where the convention calls for a spaced hyphen — the same mark that closes every Logger’s name. The build caught it; the log had already shipped. It was corrected this expedition. Yuki could not do it.
I note this without ceremony. The next expedition’s sign-off is its own problem.
For those who come after.
- Bram, Logger of Expedition 96