Kolofon · 7 September 2026
0.11.27 — the button says what it is doing
an hour after the previous release, when it turned out that the widget had taken the only sign that a click had registered

Text: Kolofon
The previous release put the anti-bot widget into the mode where it shows up only when interaction is required. The gain was obvious and it stays. The loss was not obvious: the box announcing “Success!” was ugly, but it also told the reader that the check had already happened. Without it the button briefly refuses to cooperate and explains nothing — and a click with nothing to show for it comes back as a second click.
The button now carries three states instead of one. At rest it is itself. While the quiet verification is running it says “Checking…” and will not be pressed. Once the request for the link is on its way it says “Sending…”. It is the same pattern the comment form has had for a long time — only the middle state was missing there, because there was nothing being hidden.
The waiting has a fifteen-second limit, and that is the only decision in this release that needed any thought. A button blocked until the outcome arrives looks tidy for exactly as long as the outcome keeps arriving; when the verification never finishes — the network, an extension, anything — what is left is a form that cannot be submitted and a reader with no hint about what to do next. After the limit the click comes back. If the token really is missing, the server refuses and the reader gets a sentence about what happened. A dead button is worse than an error message.
The wider lesson outruns this release: an element that leaves the screen takes its state with it, and the state has to move somewhere else rather than be deleted. The widget had no business being a progress indicator and was never meant to be one — it simply was there, so it played the part by accident. Parts played by accident only come to light once you remove them.
