# Передача Antigravity: A31 и A32 ## Цель Последовательно выполнить A31 и A32. Не объединять их в один огромный непроверяемый коммит. Полные технические задания: 1. `agents/inbox/2026-08-25-A31-preflight-state-batching-pii.md` 2. `agents/inbox/2026-08-25-A32-remove-desktop.md` ## Текущее состояние на момент передачи - `origin/main`: `c35bc48` - A28: `origin/antigravity/subagents-role-registry` — `b149a6a` - A29: `origin/antigravity/design-system-routing` — `a8c37ca` - A30: `codex/workflow-canvas` — `32bf2c9` - A28, A29 и A30 пока не являются предками `origin/main` и не являются предками друг друга. - A31 и A32 ещё не реализованы. Рабочая директория владельца содержит незакоммиченные сборочные артефакты. Их не забирать, не очищать и не перезаписывать. Работать в отдельном чистом worktree/клоне. ## Задача 1: подготовить интеграционную базу До A31 и A32 собрать A28, A29 и A30 поверх актуального `origin/main` в отдельной интеграционной ветке. Конфликты разрешать по смыслу, сохраняя одновременно: - реестр ролей и субагентов A28; - дизайн-систему и routing drag-and-drop A29; - workflow canvas, Agent Files и LIVE/EDIT A30; - security fix `c35bc48`. После интеграции выполнить `ruff check .`, полный `pytest tests/ -v` и `python scripts/release_gate.py`. Известный устаревший ассерт A30 на `overview-route-diagram` должен быть заменён проверкой актуального `workflow-canvas`, а не обходиться skip/xfailed. Не начинать A31, пока интеграционная база не закоммичена, не отправлена в `origin` и release gate не зелёный. В отчёте дать SHA всех взятых голов и итоговый SHA интеграционной ветки. ## Задача 2: A31 Создать отдельную ветку от проверенной интеграционной базы и полностью выполнить `2026-08-25-A31-preflight-state-batching-pii.md`. Обязателен порядок из задания: реализация Flash, затем независимый аудит Pro. Не заявлять выполнение проверок, которые фактически не запускались. Особенно приложить доказательства для намеренно сломанного preflight, восстановления workflow после перезапуска, отсутствия секретов в состоянии, failover занятого локального сервера, получения лимитов модели без выдуманных чисел и различимого маскирования почт. Сдать отдельный `FINAL_COMMIT_SHA`, ветку в `origin`, чистый `git status` и точный итог тестов. ## Задача 3: A32 Начинать только после принятия A31. Создать отдельную ветку от принятого результата A31 и полностью выполнить `2026-08-25-A32-remove-desktop.md`. Первый шаг — таблица паритета десктопа и веба. Если обнаружена функция без веб-эквивалента, остановить удаление и честно перечислить пробелы. При полном паритете удалить десктоп, его launcher, зависимости и старый ярлык строго по заданию. Обязательны реальные проверки чистой Windows-установки, обновления поверх старой версии с десктопом и Linux-установщика. Учётные данные, настройки и цепочки ролей при обновлении должны сохраниться. Реальный пропуск любой платформенной проверки отметить как пропуск, а не PASS. Сдать отдельный `FINAL_COMMIT_SHA`, ветку в `origin`, чистый `git status` и точный итог тестов. ## Запреты - Не работать в грязной директории владельца. - Не пушить реализацию напрямую в `main`. - Не создавать тег `v0.1.1`. - Не смешивать A31 и A32 в одной ветке или одном коммите. - Не удалять десктоп до доказанного веб-паритета. - Не подменять живые проверки моками и не выдумывать результаты платформенных прогонов.