161b2dd71e
🔑 НАЙДЕНО СУХИМ ЗАМЕРОМ ДО ТРАТЫ ДЕНЕГ. Владелец решением 150 велел поднять погашенного `w-2` живьём и замерить мост. Перед платным подъёмом прогнал правила всухую на его карточке — и подъём отказал. Дыра оказалась не опечаткой, а ЗАМЫСЛОМ: `resumePlan` отвечал «продолжать не с чего: ни одного пункта не засчитано» ВСЯКОМУ, у кого нет засчитанного пункта. А спросивший работник почти всегда именно таков — он задал вопрос и встал раньше, чем успел что-либо закрыть. 🔑 ПРАВИЛО ПРОТИВОРЕЧИЛО САМО СЕБЕ. Погашенный С ОТМЕТКОЙ ПАУЗЫ поднимался с записанного места без всякого засчитанного пункта. Погашенный СО СПРОСОМ — нет, хотя место записано ровно так же и тем же работником. Решение владельца 152: выровнять два одинаковых случая, новой дороги в правиле не заводить. 🪤 ВТОРАЯ ЛОЖЬ, ВСКРЫТАЯ ПОПУТНО. При пустом коммите засчитанного мерка строила запрос `null..HEAD`, хранилище на нём законно падало, и владелец читал «хранилище не ответило» — хотя хранилище отвечало прекрасно. Ложная причина хуже обычной ошибки: замок держит, а чинить беду никто не идёт. Теперь без засчитанного коммита работа считается ОТ БАЗОВОЙ ВЕТКИ, с которой работник начинал. 🔴 ОТКАТА ПРИ ПОДЪЁМЕ ПО ЗАПИСИ НЕТ И БЫТЬ НЕ МОЖЕТ: откат идёт до коммита засчитанного пункта, а его нет вовсе — границы отката нет. Откат «в никуда» снёс бы всё наработанное. Наработанное по-прежнему перечисляется владельцу отложенным. 🔴 ПОЧИНЕНО НЕ ТОЛЬКО ПРАВИЛО, НО И ЖИВАЯ КНОПКА. Кнопка «продолжить» подаёт приговору записанное работником место и подаёт мерке базовую ветку. Правило без зовущего — ровно класс «написано и проверено ≠ работает». ПО ПРАВИЛАМ, СТОРОЖ ПЕРВЫМ. Предсказано красных 4, вышло 5 — промах назван вслух: при счёте слил два зова кнопки в один пункт, а написал их отдельными проверками. ВЫРЕЗАНИЯ, ТРИ: · «не от чего мерить» подменено пустым списком (та самая ложь «ничего не делали») — 1/1; · подъём разрешён и без записи — 2 красных при предсказанной 1: чужой прежний сторож П-28 охраняет то же место, двойная охрана; · живой зов убран из кнопки, слово оставлено В ПРИМЕЧАНИИ — 2/2, обман не прошёл. 🟢 ЗАМЕР ПОСЛЕ ПОЧИНКИ, тем же сухим прогоном на живой карточке `w-2`: выбор берёт, запись годна, приговор — «поднимаем с пункта 2, откат не назначается». 🪤 Полный прогон дал одну красную по ВРЕМЕНИ под нагрузкой (5586 мс при пределе 5000, `paths.test.mjs`) — ровно класс, о котором предупреждала бумага смене 38. Одиночный перемер зелёный, перемер полного прогона зелёный. Перемерял, а не чинил. Полный прогон: 3056 проверок в 114 файлах, код 0 (на входе смены 3047). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>