Files
portal/docs
Дмитрий 0781b1be8c fix(ночь): из четырёх разъездов настоящий один — закрыт; починка пятого ломала чужого сторожа
Находка М-405, правила 242-243.

Смена 26 назвала четыре разъезда (правило 239: обёртка есть, а работа идёт мимо).
Проверил каждый замером — НАСТОЯЩИЙ ОДИН, три ложные тревоги. Ровно та же доля, что
и в разборе 33 долгов: список, собранный беглым взглядом под верным правилом, оказался
наполовину чужим.

 - `readEvents` —  обвинённые делают ДРУГУЮ работу: судья ленту вовсе не читает (только
   проверяет, есть ли файл), а `zhiv-li-progon.mjs` разбирает её своим путём НАРОЧНО —
   `readLines` порванную строку глотает молча, а ему она обязана значить «неизвестно».
   Свёл бы «как велено» — сломал бы нарочную защиту;
 - `vorotaVetkiNochi` —  настоящий, закрыт этим коммитом;
 - `schyotZovushchih` —  общее уже вынесено в `tolkoKod`+`zovyImeni`, обе дороги через него;
 - читалки `schyot-zamerov.mjs` —  живой дороге нужны порванные строки, читалкам нет.

ЧТО ПОЧИНЕНО. `sverkaNastroek` делала «спросить хранилище и разобрать ответ» своими руками —
тем же телом, что лежит внутри ворот `vorotaVetkiNochi`. Дороги уже начали расходиться
МОЛЧА: у ворот умолчание «спрашивать каждый раз», у сверки — «помнить ответ на заход».
Сегодня это не видно ничем, потому что сверка всегда передаёт свой `sprosit` явно, — но
поправь кто-нибудь ворота, и починка до живой дороги не доехала бы.

Доказано вырезанием: разъезд возвращён — краснеет ровно одна, посчитал ДО прогона, сошлось.
Страховка починки отдельной проверкой: ворота и прежняя прямая пара отвечают одинаково
на обоих исходах, включая бросок хранилища, — поведение не изменилось ни на знак.

🔴 ГЛАВНОЕ, ЧТО КУПИЛА СМЕНА, И КУПЛЕНО ЭТО СВОЕЙ ОШИБКОЙ. Замер нашёл рядом пятый разъезд
на вид настоящий: имя ленты `events.jsonl` написано РУКАМИ в трёх местах, хотя обёртка
`eventsPath` заведена ровно затем, чтобы оно жило в одном. Свёл — и полный прогон дал две
красных, ОБЕ У ЧУЖОГО СТОРОЖА, ни одной у моего.

`nadziratel-obyavlyaetsya-a-pribor-chitaet.test.mjs` (сеть 3) требует ПРОТИВОПОЛОЖНОГО:
путь к журналу не берёт себе никто, кроме дома ленты, — потому что взявший однажды начнёт
в журнал ПИСАТЬ мимо единственной пишущей руки `logEvent`, и сети, считающие её зовы,
ослепнут молча. А от них зависит, не запустят ли второй прогон на те же файлы. Разъезд же
имён он закрывает не сведением, а СВЕРКОЙ: читает оба написания и краснеет, если разошлись.

⇒ Беда, которую я шёл закрывать, была уже закрыта — другим способом, которого я не увидел.
Откачено целиком, чужого сторожа не тронул ни знаком, своего убрал и оставил на его месте
записку следующей смене, чтобы она не потеряла тот же час.

242. КРАСНОЕ НА ЧУЖОМ СТОРОЖЕ ПОСЛЕ ТВОЕЙ ПРАВКИ — НЕ ПОМЕХА, А ОТВЕТ: место, которое ты
счёл беззащитным, охраняется, и не так, как ты собирался его чинить.
243. У СПИСКА, СОБРАННОГО ПОД СВЕЖИМ ПРАВИЛОМ, ПРОВЕРЬ КАЖДУЮ СТРОКУ ОТДЕЛЬНО: правило
проверяют мыслью, список — замером, и это две разные работы.

ПОПУТНО: два реза сведены в один дом. `bezPrimechaniy` перенесён к грубому `tolkoKod`
с развилкой «какой брать». Врозь они и стоили смене 26 сторожа, который физически не мог
покраснеть: искала команду, живущую строкой, а взяла рез, который строки режет (правило 234).

🪤 Мелочь, стоившая ложной тревоги: копия утренней бумаги помечена временем МИРОВЫМ
(`toISOString`), а часы на машине московские. Разница три часа — и след моего же прогона
выглядел работой чужой смены, пришедшей после конца предыдущей.

Проверок 2927 в 108 файлах (было 2924 в 107), ноль красных, код 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 05:08:17 +03:00
..