Не оставлять активное задание при отказе первой записи в БД
Beads: trasser-job-submit-persistence. Baseline APP-2026-09-19.
Зависит от !60 (merged), база e2ab511e. Целевая ветка временно codex/job-completion-persistence для изолированного diff. Не сливать в неё: после слияния !60 (merged) переключить target на main и повторно проверить CI. Автослияние не включать.
Исправление
Первая запись QUEUED теперь выполняется до active.put и постановки в executor. При отказе БД запрос не оставляет в памяти незапланированный Work. Добавлены детерминированные проверки retry, заполненной очереди и освобождения слота после отмены queued. Новые тесты не запускают solver. Обновлены каталог CI и документация.
Проверки
RED: новый тест на исходном коде обнаружил непустой active после отказа сохранения. GREEN: 35/35 выбранных Java-тестов; повторная проверка JobSubmissionTest и JobCancellationTest 4/4 PASS. Документация 1129/1129 PASS; каталог 214 регрессий валиден. Самопроверка diff без блокирующих замечаний, не заменяет независимое review.
Ограничения
Полный CI нового SHA ожидается. Без тестов скорости/нагрузки/стенда. Не добавляет идемпотентность или гарантию однозначного исхода commit БД; полная QA03b и личная приёмка не закрыты. Ничего не сливать по текущему поручению пользователя.