Skip to content

R1: повторные запросы, восстановление заданий и целостный GeoJSON

andyGPT requested to merge codex/r1-job-reliability into codex/r1-api-contract

Принятое решение по актуальности — 20.09.2026

Сохранить основу с адаптацией. Повторно использовать очередь, отмену/восстановление и целостную запись; обновить контракты и тестовые данные. Idempotency-Key остаётся решением ORG02, не новым условием конкурса.

Основание: APP-2026-09-19, аудит исходной версии 8ce9abc40880b65c41eaf82fc0835cbc089bc157 относительно main 43e20364f00101c7d61642dbcfa349c8f0b14ba4. Рекомендации приняты владельцем проекта; фиксация разрешена командой «Фиксируем».

Связанные задачи общего Beads trasser:

  • trasser-api03 — [API03] Проверить очередь, сохранение и восстановление; исполнитель rylengim.
  • trasser-ops02 — [OPS02] Проверить безопасное обращение с файлами и ресурсами; исполнитель rylengim.
  • trasser-org02 — [ORG02] Подтвердить ресурсы, ответственность и условия сдачи; исполнитель arkadiy.

Полный реестр: trasser-data01, trasser-plan-20260920. Перенос выполнять в рамках существующих критериев задач; сохранять ссылку на исходную версию и прикладывать проверки нового кандидата. После подтверждённого переноса старые MR можно закрывать как заменённые. Для !32 (closed) уже опубликован нормативный пакет через !33 (merged); остатки старой реализации/CI рассматриваются отдельно.

Проверка актуальности была статической, с чтением существующего CI; новых испытаний приложения не было. Принятие рекомендаций не является приёмкой кода. Исторические описания и результаты ниже сохранены; их PASS не подтверждает новый baseline. Фиксация не меняет ветки, состояние MR, назначения или личные решения проверяющих.

Продолжение MR !16 (closed), целевая ветка codex/r1-api-contract. Idempotency-Key сохраняется вместе с заданием; повторы после конкуренции и перезапуска возвращают исходный job, изменённые параметры дают 409, отказ очереди не занимает ключ. Добавлены X-Request-ID и сохранённые причины отказа, включая отдельный TIME_BUDGET_EXCEEDED вместо ложной пользовательской отмены. GeoJSON публикуется атомарно с размером и SHA-256; COMPLETED доступен только после записи файла и БД. CI перезапускает реальный контейнер сервиса с PostgreSQL и проверяет неизменность job/байтов; комплект поставки проверяет связи и хеши протоколов. Локально: 116 Java-тестов, 91 CI-самопроверка, 731 проверка документов. CI 9438 первого коммита прошёл 6/6, для последнего исправления требуется актуальный pipeline. Контракт и ограничения: docs/runtime-contracts/r1-job-reliability.md. API-R1-04/05/06/07, внешний формат и полный конкурсный каталог открыты; product_accepted=false. Beads недоступен, статусы задач не изменены; личная приёмка не подменяется.

Edited by am@muniev.ru

Merge request reports

Loading