Пропуск версии 1.0: каталог static/ был описан в структуре пакета, но не
сказано, кто его отдаёт. Обе стороны выполнили написанное и не собрались.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Работа A15 выполнена, но не закоммичена: git в его окружении был
недоступен. Восстановлена ревьюером из рабочего каталога.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Переход на веб-интерфейс. Контракт вынесен отдельным документом, потому
что серверная и клиентская стороны делаются параллельно и до слияния
друг друга не видят: в прошлом раунде расхождение в одном имени модуля
молча оставило выбор моделей пустым навсегда.
Зафиксировано: стек (FastAPI + uvicorn, уже объявлены в pyproject;
клиент — обычный JS без сборки), требования безопасности (127.0.0.1 по
умолчанию, токен для внешнего адреса, тест на отсутствие секретов в
ответе), два эндпоинта поверх готового снапшота и семнадцати действий
_handle_action, правило игнорировать ответы с устаревшим seq.
snapshot.example.json снят с живой машины владельца: 63 профиля,
187 КБ. Почты замаскированы, токенов, ключей и JWT нет — проверено.
Клиентская сторона разрабатывается против этого файла и не блокируется
готовностью сервера.
Отдельно зафиксировано ограничение headless: Codex и Grok работают по
device-code, Antigravity и Claude используют redirect на localhost и на
сервере без экрана не заработают.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Принято, проверено исполнением.
Устойчивость набора — главный пункт и он закрыт по-настоящему: общий
корень Tk на сессию вместо шести отдельных ctk.CTk(). Десять полных
прогонов подряд дали 316 passed, 2 skipped и НОЛЬ ошибок. До правки
каждый прогон давал до семи ошибок, кочующих между файлами, из-за чего
настоящую поломку приходилось искать перепроверкой в изоляции.
Раздел контракта о границе Hub и Hermes написан: что Hub получает на
каждом вызове (с явным указанием, что роли среди этого нет), чего не
видит, чем управляет и чем не управляет. Варианты связывания профилей
поданы таблицей с оценкой трудоёмкости: 3-4 дня, 8-12 дней, 4-5 дней.
Ни один не реализован без решения владельца, как и требовалось.
Исправлено при слиянии: в документе оказалось 11 символов BEL (0x07) на
месте буквы "a" — последовательности вида \agy-05 были разобраны как
escape. Пострадали 19 идентификаторов: antigravity -> ntigravity,
agy-05 -> gy-05, ag-w2 -> g-w2. Контракт читают оба исполнителя, битые
имена в нём недопустимы.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>