Signal

Where It Said Yes Twice — Where Duplicates Come From

By makemind · Jul 17, 2026

Week three of July. This week dug at the place where the same thing happens twice.

This week's Signal

It said yes twice. "Told Yes Twice" creates the situation where two bookings land in the same slot. Two screens or one customer pressing twice — the overlap holds because the server does not check. The piece puts in a tool that refuses overlap, rather than narrowing the window.

A retry is not free. "What Retrying Costs" counts what grows when you send again after a slow response. When the network did not drop and the answer was merely late, the retry creates one more order.

A judgement became seven lines. "The Log That Can Be Asked" and "Sitting Down Without Translation" approach the same place from both sides. One rule a farmer used to state out loud sits as seven lines of declaration rather than code, and the checklist is held to the word by verification.

Tool and package notes

The longest part of this week was not code but reproducing the defect. The double booking would not appear from two clients pressing at once. Because stdio queues requests — one finishes before the next goes in. So a separate tool creates the overlap inside the server, and that is the path that reproduced it. While the transport hides concurrency, the defect stays invisible. That was the week's real finding.

And a screen lied. A warning sentence rendered green, because the colour was hardcoded in the screen JSON. The log recorded it correctly as a warning — a defect that could not have been caught without looking at rendered pixels.

A short thought

Duplicates are usually explained as "somebody pressed twice at once." In reality they come from nobody checking. Concurrency is only the condition that exposes the absence. So the place to fix is not the timing but one refusing tool.

Next week

On to a screen that gets told it changed without asking, and to what a tool refuses to do at all.


makemind.dev "Signal" — once a week, what went up and what got in the way while building it.

Twitter