# Предел простоя остаётся часом, хотя он короче самой работы - **Дата:** 2026-08-14 - **Источник:** openspec/changes/archive/2026-08-14-record-centric-model/design.md, раздел «Сторожей двое, и предела времени — два числа» ## Решение Сторож застревания ограничивает время записи в рубеже двумя числами: **час** на свою работу, **сутки** на ожидание чужой операции. Час меньше времени, которое многочасовая запись занимает на приведении, и это принято сознательно. ## Почему Ревью дизайна показало, что число противоречит расчётному потолку записи: > Расчётный потолок записи — шесть часов, приведение такой записи идёт дольше > часа по построению, а срок захвата шага приведения стоит сегодня восемью > часами. Значит длинная запись, отказавшая один раз и ждущая повтора дольше > часа, будет остановлена сторожем застревания вместо расшифровки. Предложено было вывести предел из срока захвата — двенадцать часов на свою работу. Владелец решил оставить час, и довод записан цитатой: > Оставляем час. Тут нужно принять, что это скорее про зависшую задачу, потому > что пока идёт обработка даже длинной записи мы всегда можем проверить, жив ли > процесс конвертера. Довод держится на том, что остановка теперь **обратима**: она не стирает рубежа, и снятие признака возвращает запись туда, где она стояла (см. [ADR-2026-08-14-halt-is-a-flag-not-a-stage](ADR-2026-08-14-halt-is-a-flag-not-a-stage.md)). Цена ложной остановки поэтому равна одному движению владельца, а не потерянной записи. ## Последствия - `+` зависшая запись обнаруживается за час, а не за восемь. - `+` число живёт в настройках и правится без шага схемы, если класс начнёт всплывать. - `−` длинная запись, отказавшая один раз и прождавшая повтора дольше часа, останавливается как застрявшая — владельцу приходится снимать признак руками. - `−` предел этот работает только по записи, вернувшейся в выборку. У держателя, погибшего жёстко, запись невидима сторожу до истечения **срока захвата** её рубежа, то есть восьми часов у приведения; замер и оговорка стоят строкой в `database.md`.