Поиск и M4: обходы препятствий, запрет экономического отказа и геометрическая приёмка
Длинные препятствия с соседними объектами могли исчерпать поиск при существующем допустимом обходе. К трём прежним стратегиям добавлены три обхода по ориентированному прямоугольнику препятствия. Готовые сети проходят геометрическую и стоимостную проверку.
Исправлен выбор вариантов по N14: известное допустимое подключение сохраняется; более дешёвый штраф не вытесняет вариант со строго большим набором подключённых целей. Это проверяется внутри пары стратегий и среди итоговых вариантов. Полнота поиска и глобальная оптимальность не заявляются.
Приёмка расширена до 159 HTTP-сцен, 185 вариантов и 65 контролей валидатора: 59 намеренных ошибок отклоняются с ожидаемой диагностикой, шесть допустимых изменений принимаются. Добавлены проверки точных типизированных ID, длинного водного препятствия, границ углов 89.99/90/90.01° и 44.99/45/45.01°, камер, непрерывной длины и отказов.
Все коммиты !50 (merged) включены; !50 (merged) и !51 (merged) merged. Main: d4374c93. Дерево main совпадает с проверенным исходным bbba1ad7; включение head !50 (merged) проверено через git merge-base --is-ancestor.
Проверки main — pipeline #9933: 9/9 заданий успешны. По 216 Java-тестов Maven/Gradle, 239 тестов CI, 1 055 проверок документации, HTTP 159/159 и контроли 65/65. Скачанная поставка повторно проверена независимыми оракулами в Linux без сети, включая побитовую регенерацию контролей и 1 094 записи манифеста.
Офлайн-квалификация #65092: обе сборки без сети по 216 тестов; изолированный runtime прошёл 159 HTTP-сцен. После перезапуска сохранены все 154 завершённых задания и их результаты; остальные пять сцен проверяют отклонение некорректного входа. Скачанные 2 017 файлов доказательств дополнительно проверены отдельным Linux-контейнером без сети, включая идентичность результатов до/после перезапуска и все 65 контролей.
Городской локальный прогон кода 1cccfeb1, включённого в main: 144 объекта, 17 целей, maxSearchNodes=8000, 649.860 с. Остались два варианта с 11/17 и 8/17 подключений; доминируемый третий исключён. Независимый пересчёт обоих вариантов проверил геометрию, топологию, расходы, диаметры, камеры, стоимость и штрафы. Это ограниченный локальный прогон, не CI-приёмка финального JAR и не доказательство невозможности подключения оставшихся целей.
Материалы проверки:
- 11 сцен / 22 варианта / 5 контролей для инженерного просмотра. Источник — точный main и pipeline 9933; все 27 решений PENDING.
- Городские карты, сырые ответы и самостоятельный проверяющий код. Протокол PARTIAL_CHECKS_PASSED содержит область проверки и хеши; HTTP-файлы не менялись.
90 из 97 плановых дизайнов имеют конкретные частичные доказательства; это не 90 принятых дизайнов. M4=INCOMPLETE, product_accepted=false, full_requirements_verified=[]. Остаются уточнения NQ-02/03/07/08, инженерный просмотр N06/N28, независимый набор другого проверяющего и улучшение полноты городского поиска.
Полная проверка фиксированного main (21.09.2026)
На точном JAR pipeline 9933 выполнено ещё 102 входа: 90 проверок изменённых/новых данных, 10 адресных проверок каталога и два прогона полного городского датасета. Все 102 прошли; проверены 122 варианта и 17 диагностических отклонений. Схемы проверены на 478 входных/выходных файлах, точные дубли и потеря известного набора подключений — на 239 экспортах.
У исходного и переименованного/перемешанного городского набора совпали физические трассы, диаметры/расходы, стоимость, ранги и сопоставленные причины отказов. Подключения: 11/17 и 8/17. Проверена одна конкретная перестановка; универсальная оптимальность не заявляется.
Протокол, 32 требования, 97 дизайнов и автономная перепроверка. Архив 700 файлов проверен распаковкой и обратным скачиванием; SHA-256 eebf580e36e8aa59c02d720dac79682709a80f671f052214c05c415f000cf412.
Вердикт NOT_ACCEPTED: выполненные технические проверки прошли, но остаются трактовки NQ-02/03/07/08, личный просмотр N06/N28 и независимая приёмка полного каталога другим проверяющим. Новые тесты авторства Codex не выдаются за набор другого автора. product_accepted=false. Код main во время приёмки не менялся.