Усі записи

Пошук, який віддає знайдене, а не показує, де воно лежить

Наступні години після запуску пошуку: збіги відкриваються списком, закрите поле повертає позичений вигляд, запит чекає трьох символів, записи можна зберегти зірочкою, а пороги панелі переміряно під шрифт, ширший за наш.

Пошук з’явився на осі о пів на одинадцяту ранку. За пів години «6 в 1» натрапляє в ньому на дві діри, і жодну з них не міг знайти гейт: обидві лежали між тим, що рахує поле, і тим, що малює вісь.

Лічильник відповідав за колекцію, а вісь малювала місяць

Наближена до одного місяця вісь, пошук чогось поза ним: усі п’ять позначок погасли, підпис сказав «4 з 482», і жодного шляху до цих чотирьох. Перемкнутися на список теж не допомагало — список фільтрується тим самим періодом і був порожній. Єдиним виходом був Enter, про який на екрані не казало ніщо.

Перше виправлення — кнопка «відкрити вісь, доки всі збіги не стануть на ній» — виявилося замалим, і причина цікавіша за саму ваду. На повному діапазоні позначка — це ціле десятиліття, тож чотири записи про перцептрон запалювали два згустки на п’ятдесят шість записів разом. Читачеві фактично казали: «вони десь серед цих шістдесяти, клацайте далі». Підсвічування відповідає на пошук лише там, де позначка — це запис, а це правда при наближенні й неправда на самому верху.

Тому кнопка тепер віддає самі збіги: відкриває вісь настільки, щоб вони вмістилися, і читає їх списком — рядок на запис, із назвою й датою. Чотири рядки замість двох плям. Enter робить те саме, тож клавіша й кнопка більше не розходяться. А підпис каже, про яке з двох чисел ідеться: «4 з 482 · у цьому періоді немає» — друга половина кольором попередження і лише тоді, коли числа різняться.

Закрите поле повертає позичене

Пошук, щоб зробити свою роботу, відкривав повний діапазон і перемикав на список — і лишав обидві зміни після того, як поле закривали. Читач, який був усередині березня 2023 року, опинявся перед усіма 482 записами, у режимі, якого не обирав.

Тепер пошук запам’ятовує вигляд, який сам поставив, і повертає попередній лише тоді, коли вісь досі стоїть саме там. Якщо читач тим часом наблизив чи перемкнув режим, це вже його вибір, і закриття панелі не має права скасовувати чиїсь власні кроки. Тест знайшов половину, яку було пропущено: поле, відкрите спільним посиланням із ?q=, не пам’ятало, звідки прийшло, бо піднімається через читання адреси, а не через кнопку.

Запит із трьох символів і пам’ять про вдалі

Дві літери відповідають третиною колекції, і «174 з 482, усе світиться» — не те, з чим можна щось зробити. Пошук тепер починається з трьох символів, серед яких щонайбільше один пробіл і не першим, а поки їх менше, поле каже, чого чекає: поле, яке нічого не відповідає й нічого не пояснює, читається як зламане.

І поле пропонує те, що цей читач шукав раніше, — лише на порожньому полі, бо під час набору відповідь корисніша за минулотижневе питання. Зберігається лише запит, який був достатньо довгим і справді щось знайшов. Це перше, що проєкт узагалі кладе в сховище браузера, тому правила записано прямо: воно не виходить за межі браузера, бо статичному сайту нема куди його слати; кожне звернення загорнуто, бо в приватному вікні сховище кидає виняток, а не повертає порожнечу; усе, що лежить під ключем, вважається даними, які міг записати хтось інший; і забути все — одне натискання поруч із самими запитами.

Зірочка, яка не ріже текст

Далі читач отримав зірочку на кожному записі й кнопку в панелі, що показує збережене. Працює вона так само, як список збігів, бо це те саме питання, поставлене інакше: вісь гасить решту, список її прибирає, а натискання ще раз повертає вигляд. Підмножина на осі тепер одна механіка, а не дві.

Зірочка тричі міняла місце. У заголовку картки вона виштовхувала сім назв на зайвий рядок. У рядку дій біля значка довіри додавала три пікселі — локально вміщалося, а на Linux-раннері CI, де шрифти переносяться інакше, картки в сітці обрізали текст на трьох ширинах. Абсолютне позиціювання — єдине місце, яке не змінює розкладки взагалі, а отже переживає шрифт, якого на цій машині немає. Тест тепер перевіряє саме це, а не щасливий збіг пікселів: що зірочка поза потоком і що в картки рівно чотири дочірні елементи в потоці.

Саме тоді стало видно ще одне: продакшн розгорнувся з червоного коміту. Vercel збирає verify:deploy, а браузерних тестів у ньому немає. Зламаним був гейт CI, не розгортання, але картка на живому сайті обрізалася. Це рішення лишилося окремим і досі не ухвалене.

Пороги, виміряні на одній машині

Панель розвалювалася на двохстах пікселях ширини: від 420 до 620 підпис ламався на «ЧАСОВА / ЛІНІЯ», скидання — на «Увесь / час», і обидва вилазили на вісь. Нижче 420 все було гаразд, а тести зупинялися на 412. Слова тепер ідуть одним порогом, місяць віддає назву числу там, де назва перестає вміщатися, а тест проходить через кожен поріг панелі з відкритим місяцем і збереженими записами.

CI почервонів і на цьому: два нові випадки вміщалися тут і не вміщалися там. Таблиця стилів просить Inter, його ніхто не постачає, і відповідає те, що є в системі. Поріг, виміряний там, де текст перестав вміщатися на цій машині, — це поріг цієї машини. Тому пороги тепер міряють із Verdana, примусово на всю сторінку: вона ширша за будь-який системний шрифт, відтворює обидві поломки раннера й знаходить ще дві. Підписи пішли з 640 на 720, назва місяця — з 520 на 580, скидання — з 380 на 480. Останнє коштує найбільше, бо 420 — це телефон, який люди тримають у руках; але стрілка назад там лишилася й робить те саме, лише по кроку.

Нуль замість «немає»

Дрібниця, яка змінила вигляд усієї осі: кожен порожній період казав «немає», а порожніх завжди більше, ніж повних, — двадцять два донизу по року, двадцять дев’ять по місяцю, кожне найдовше й найгучніше у своєму рядку. Тепер там число, і коли воно нуль. Це те саме твердження в тому самому регістрі, що й сусідні лічильники, і саме це доступне ім’я кнопки читало вголос від початку.

Запис зроблено 23 вересня 2026 р.

Коміти, про які цей запис

  • d600355
  • f31d47d
  • 5264e16
  • 49ab446
  • 17534f5
  • 6a95ba3
  • 14ab443
  • 848960b