25705df1f3
🔑 ЗАМЕР ПЕРЕД РАБОТОЙ ПЕРЕВЕРНУЛ ЗАДАНИЕ. Владелец направил смену на кусок 6, зная по моей же бумаге, что куска нет. Перепись поимённо показала: кусок 6 построен ПОЧТИ ЦЕЛИКОМ — `statePath`, `resumePoint`, `resumePlan`, `rabotaPosleZachtennogo`, `sledOtkata`, `resumeChecks`, `vyborProdolzhaemogo`, `zavestiProdolzhenie` стоят и зовутся из живого кода (`cli.mjs`, `run.mjs`, `supervisor.mjs`), кнопка `run --resume` разведена с обычным запуском. Не построена была ровно ОДНА работа из одиннадцати — задача 9а. Её и построил. 🔴 Бумага смене 37 называла кусок 6 «главным кандидатом, которого нет в живом коде». Так вышло оттого, что смена 36 читала ПЛАН, а не код. Правило 204 окупилось семнадцатый раз. ЧТО ПОСТРОЕНО. Работник, простоявший на паузе сутки ОТ МИНУТЫ ПОСТАНОВКИ НА ПАУЗУ, гасится сам, и владельцу уходит строка. Пауза — команда владельца, отменять её система не вправе, но ЗАБЫТЫЙ работник держит рабочий угол, свою базу и одно место из семи вечно. 🔴 ОТСЧЁТ ОТ МИНУТЫ ПАУЗЫ, А НЕ ОТ НАЧАЛА ПРОГОНА — оговорено владельцем прямым словом и закрыто отдельной проверкой: прогон, идущий вторые сутки, работника, поставленного на паузу час назад, не трогает. Переведи отсчёт на начало прогона — краснеет. 🔴 СБОЙ НЕ ГАСИТ. Файл паузы порван, поля `since` нет или оно не число — работник остаётся жив, а про сбой уходит строка. Молчаливое «наверное, сутки прошли» гасило бы работника владельца по сломанному файлу. 🔴 РЕШЕНИЕ 115 ЦЕЛО: у забытой паузы СВОЙ срок в сутки, а не отсечка 8:00. Поставленный в 23:00 доживает до утра и гаснет в 23:00 следующего дня. `morningCutoff` не тронут. ПО ПРАВИЛАМ, СТОРОЖ ПЕРВЫМ. Правило: предсказано красных 6, вышло 6. Зовущий: предсказано 3, вышло 3. 🪤 СТОЛКНОВЕНИЕ ИМЁН, ВТОРОЕ ПОДРЯД У ЭТОГО ПЛАНА. План звал свой блок «6б»; за время, что план лежал, имя занял чужой блок «пустой расход» (решение владельца 29, построен 06.08). До того имя «6а» из того же плана занял кусок 7. Взял следующую свободную букву — блок «6в», как велит договор о стыках: буквой к соседнему номеру, без перенумерации. Порядок в круге: 6 (встал ли он) → 6б (пустой расход) → 6в (забытая пауза). 🟢 ВЫРЕЗАНИЕ ПОДСУНУЛО ИМЕННО ТОТ ОБМАН, НА КОТОРОМ ПОПАЛИСЬ ОБА В ПРОШЛУЮ СМЕНУ: живой зов убран, слово `zabytayaPauzaHit(` оставлено ТОЛЬКО в примечании. Сторож не обманулся — покраснел, все три. Он читает круг через `bezPrimechaniy`. 🪤 НАЗВАНО ЧЕСТНО, ЧЕГО НЕТ. Полного живого П-51 — круг с паузой суточной давности, с часовой и со временем, подведённым к 08:01, — я не сделал: обвязка живого круга лежит в чужом `supervisor.test.mjs`, а задача 9а чужих файлов проверок трогать не велит. Вместо него — сторож класса 232 на зовущего, тем же приёмом, каким закрыт Э9. Полный П-51 остаётся долгом и назван в отчёте смены. Полный прогон: 3047 проверок в 114 файлах, код 0 (на входе смены 3029). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
44 lines
1.2 KiB
JSON
44 lines
1.2 KiB
JSON
{
|
|
"worker_hours_limit": 24,
|
|
"service_wait_hours": 2,
|
|
"supervisor_tick_seconds": 30,
|
|
"stall_minutes": 30,
|
|
"minut_bez_dela": 240,
|
|
"odinakovyh_otchyotov_podryad": 5,
|
|
"pause_wait_minutes": 20,
|
|
"owner_answer_deadline_hours": 24,
|
|
"forgotten_pause_hours": 24,
|
|
"max_tasks_at_once": 1,
|
|
"max_workers_per_task": 7,
|
|
"workspace_max_age_days": 7,
|
|
"base_branch": "feat/noch-proba-1",
|
|
"worker_model": "opus",
|
|
"rate_limit_type": "seven_day",
|
|
"bez_doli_ne_zapuskat": false,
|
|
"run_share": 0.14285714285714285,
|
|
"start_floor_share": 0.99,
|
|
"probe_model": "haiku",
|
|
"probe_budget_per_shift": 30,
|
|
"probe_budget_window_hours": 24,
|
|
"spawn_budget_per_shift": 20,
|
|
"item_tests_timeout_minutes": 10,
|
|
"disk_free_min_gb": 5,
|
|
"disk_bad_probes": 2,
|
|
"reviewer_urls": [
|
|
"http://localhost:8000/deals",
|
|
"http://localhost:8000/clients"
|
|
],
|
|
"reviewer_limit_minutes": 60,
|
|
"reviewer_shot_run_timeout_ms": 120000,
|
|
"reviewer_shot_width": 1280,
|
|
"reviewer_shot_height": 900,
|
|
"mail": {
|
|
"host": "SMTP-хост",
|
|
"port": 587,
|
|
"user": "логин",
|
|
"pass": "пароль — сюда, файл вне хранилища кода",
|
|
"from": "robot@liderra.ru",
|
|
"to": "почта владельца"
|
|
}
|
|
}
|