A search that hands over what it found instead of pointing at where it lies
The hours after search shipped: matches open as a list, closing the field gives back the view it borrowed, a query waits for three characters, records can be kept with a star, and the toolbar thresholds were re-measured against a font wider than ours.
Search went onto the axis at half past ten in the morning. Within half an hour the 6-in-1 runs into two holes in it, and no gate could have found either: both lay between what the field counts and what the axis draws.
The count answered for the collection, the axis drew a month
The axis zoomed into a single month, a search for something outside it: all five marks dimmed, the caption said “4 of 482”, and there was no way to any of the four. Switching to the list did not help, because the list is filtered by the same period and came up empty. The only way out was Enter, which nothing on the screen mentioned.
The first fix, a button to open the lane until every match was on it, was not enough, and the reason is more interesting than the defect. At the full range a mark is a whole decade, so four perceptron records lit two clusters holding fifty-six between them. The reader was in effect told “they are somewhere among these sixty, keep clicking”. Highlighting answers a search only where a mark is a record, which is true zoomed in and false at the top.
So the button now hands over the matches themselves: it opens the lane wide enough to hold them and reads them as a list, one row per record, with its title and its date. Four rows instead of two blobs. Enter does the same, so the key and the button no longer disagree. And the caption says which of its two numbers it means: “4 of 482 · none in this period”, the second half in the warning colour and only when the two differ.
A closed field gives back what it borrowed
To do its job the search opened the full range and switched to the list, and it left both changes standing once the field was closed. A reader who had been inside March 2023 was set down in front of all 482 records, in a mode they never chose.
The search now records the view it set and puts the previous one back only if the lane is still exactly there. A reader who zoomed or switched modes in the meantime has chosen that view, and closing a panel has no right to undo somebody’s own steps. The test found the half that had been missed: a field opened by a shared ?q= link did not remember where it came from, because it comes up through reading the address rather than through the button.
A query of three characters, and a memory of the good ones
Two letters answer with a third of the collection, and “174 of 482, everything lit” is not something anyone can act on. A search now starts at three characters, at most one of them a space and not the first, and until then the field says what it is waiting for: a field that answers nothing and explains nothing reads as broken.
The field also offers back what this reader searched for before, on an empty field only, because once someone is typing the answer below is worth more than last week’s question. Only a query long enough to run that actually found something is kept. It is the first thing the project has ever put in browser storage, so the rules are written down plainly: it stays in that browser, because a static site has nowhere to send it; every access is guarded, because in a private window storage throws rather than returning nothing; whatever sits under the key is treated as data someone else could have written; and forgetting all of it is one press, next to the terms themselves.
A star that does not cut text
Next the reader got a star on every record and a control in the bar that shows what was kept. It works like the list of matches, because it is the same question asked another way: the lane dims the rest, the list drops it, and a second press gives the view back. A subset on the axis is now one mechanism rather than two.
The star moved three times. In the card’s heading it pushed seven titles onto an extra line. In a row of actions beside the trust badge it added three pixels, which fit here, while on the Linux CI runner, where fonts wrap differently, cards in the grid clipped their text at three widths. Absolute positioning is the one placement that changes no layout at all, so it is the one that survives a font this machine does not have. The test now checks exactly that instead of a lucky pixel count: the star is out of the flow, and the card has exactly four children in it.
That was also when something else showed: production had deployed from a red commit. Vercel builds with verify:deploy, and the browser suite is not in it. What broke was the CI gate, not the deployment, but a card on the live site was clipped. That decision was set aside as its own, and it has still not been made.
Thresholds measured on one machine
The toolbar spent two hundred pixels of width falling apart: from 420 to 620 its label broke into “ЧАСОВА / ЛІНІЯ”, the reset into “Увесь / час”, and both climbed out over the axis. Below 420 it was fine, and the tests stopped at 412. The words now go at one threshold, a month gives up its name for a number where the name stops fitting, and the test crosses every threshold the bar has with a month open and records saved.
CI went red on that too: two new cases fitted here and not there. The stylesheet asks for Inter, nothing ships it, and what answers is whatever the system has. A threshold measured where text stopped fitting on this machine is this machine’s threshold. So thresholds are now measured under Verdana, forced over the whole page: it is wider than any system default, reproduces both runner failures and finds two more. The labels moved from 640 to 720, a month’s name from 520 to 580, the reset from 380 to 480. The last one costs the most, because 420 is a phone people actually hold; but the back arrow stays there and does the same thing, one step at a time.
Nought instead of “none”
A small thing that changed the look of the whole axis: every empty period said “немає”, and there are always more empty periods than full ones — twenty-two down one year, twenty-nine down one month, each the longest and loudest thing in its row. Now it is a figure, including when the figure is nought. That is the same claim in the same register as the counts beside it, and it is what the button’s accessible name had been reading aloud all along.
Entry written September 23, 2026
Commits this entry accounts for
d600355f31d47d5264e1649ab44617534f56a95ba314ab443848960b