Сохранять завершение задания до публикации успешного статуса
Beads: trasser-job-persist-completion Baseline: APP-2026-09-19. Base: d80153c2.
Исправление
JobService публиковал COMPLETED до успешной записи в БД. При отказе записи обработчик пропускал FAILED и очистку экспорта, в БД оставался RUNNING. Теперь отдельный финальный снимок сохраняется до обновления состояния в памяти, под той же блокировкой Work.
Добавлен детерминированный тест отказа записи COMPLETED: проверяет FAILED, отсутствие успешной валидации/вариантов, запрет экспорта и удаление файлов. Тест включён в обязательный каталог CI; документация обновлена.
Проверки
- RED на исходной реализации: expected FAILED, actual RUNNING.
- После исправления 38 Java-тестов PASS; короткий повтор 37/37 PASS.
- Документы: 1129 проверок и 16 тестов PASS.
- Каталог: 97 дизайнов, 212 регрессий, CATALOGUE_VALID.
- Самопроверка diff: блокирующих замечаний не найдено; не заменяет независимый review.
Ограничения
Полный CI нового коммита ожидается. Стенд, нагрузка и скорость не проверялись. Полная QA03b, аварийное восстановление и неоднозначный исход commit БД не подтверждены. Правила поиска и таймауты не изменены. Личная/продуктовая приёмка не заявляется; автоматическое слияние не включено.