# Задание Antigravity: полный release gate после A30 ## Цель Провести независимую проверку ветки `codex/workflow-canvas` после реализации A30. Проверять фактическое состояние репозитория и запускаемого приложения, а не описание работы. ## Обязательный порядок 1. Получить актуальные `origin/main` и `origin/codex/workflow-canvas`. 2. Проверить `git status`, базовый и финальный SHA ветки. 3. Запустить приложение из чистого checkout ветки A30. 4. Выполнить полный `pytest`/release gate и сохранить полный вывод. 5. Выполнить `ruff check .`. 6. Проверить веб-контракт: `/`, `/api/snapshot`, `/api/events`, `/api/action`. 7. Проверить A30 вручную в браузере: LIVE, EDIT, создание агента, назначение Provider → Account → Model, Agent File, редактор ребра, цикл и предел итераций. 8. Отдельно проверить честность данных: отсутствие mock/demo чисел из макета, `Н/Д` с причиной, loading не смешан с отсутствием данных. 9. Проверить persistence после перезапуска и реальные provider errors. 10. Проверить, что desktop `router/ui/**` не изменён A30. ## Правила отчёта - Не писать `PASS`, если полный release gate не запускался. - Не считать targeted tests заменой полного regression. - Для каждого failure привести команду, stdout/stderr, файл и минимальный способ воспроизведения. - Если блокер связан с окружением, повторить проверку в чистом окружении или явно указать, что именно не проверено. ## Артефакты Передать: - `START_HEAD`, `FINAL_HEAD`, `origin/main`; - чистый `git status` или полный список загрязнений; - `X passed / Y skipped / Z failed`; - точный результат `scripts/release_gate.py`; - список найденных дефектов с приоритетом P0–P3; - скриншоты LIVE, EDIT, Inspector, Agent File и редактора ребра; - отдельный список пропущенных проверок. ## Ограничения - Ничего не исправлять молча в чужой ветке: найденные дефекты оформить отдельным патчем/коммитом или вернуть владельцу. - Не удалять пользовательские изменения в установщике, бинарниках и заданиях inbox. - Не объявлять release-ready при известных блокерах.