Merge antigravity/contract-stability (A13)

Принято, проверено исполнением.

Устойчивость набора — главный пункт и он закрыт по-настоящему: общий
корень 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>
This commit is contained in:
Hermes Team 2026-08-23 18:40:27 +07:00
parent e6ad500a43
commit 6ad546db0d

View file

@ -296,17 +296,17 @@ Accessible at `HubSnapshot.metrics["host"]`:
Hub и Hermes используют разные множества профилей и настроек. Чтобы интерфейс корректно отображал происходящее и не вводил пользователя в заблуждение, важно понимать границу между ними.
### 10.1 Что Hub получает от Hermes на каждом вызове
При вызове ntigravity_llm_execution (через middleware) Hub фактически получает от Hermes только следующие данные:
При вызове antigravity_llm_execution (через middleware) Hub фактически получает от Hermes только следующие данные:
- ask_id
- urn_id
- pi_request_id
- api_request_id
- session_id
- platform
- model
- provider
- ase_url
- pi_mode
- pi_call_count
- api_mode
- api_call_count
-
equest (payload: список сообщений, temperature и т.д.)
@ -314,13 +314,13 @@ equest (payload: список сообщений, temperature и т.д.)
### 10.2 Чего Hub не видит
Hub не имеет доступа к внутреннему контексту Hermes. В частности, Hub не видит:
- Профиль Hermes, которым выполняется текущий вызов (например, gy-05, worker-fast, deepseek и др.).
- Профиль Hermes, которым выполняется текущий вызов (например, agy-05, worker-fast, deepseek и др.).
- Настройки конфигурации задач (delegate_task, max_concurrent_children и т.д.).
- Состав и иерархию субагентов Hermes.
### 10.3 Чем Hub управляет
Hub является независимой системой и полностью управляет:
- Собственными профилями (например, g-w1, g-orch-fallback, codex-orch, opengo-*, claude-*, grok-*).
- Собственными профилями (например, ag-w1, ag-orch-fallback, codex-orch, opengo-*, claude-*, grok-*).
- Цепочками отказоустойчивости (failover), привязанными к его собственным профилям.
- Квотами и авторизацией своих аккаунтов.
@ -331,13 +331,13 @@ Hub **не управляет ничем** из перечисленного в
## 11. Варианты связывания профилей Hub и Hermes
Поскольку один и тот же аккаунт пользователя может существовать в двух системах под разными именами (например, gy-05 в Hermes и g-w2 в Hub), существуют следующие варианты их связывания. **Внимание:** ни один из вариантов не должен реализовываться без явного решения владельца продукта.
Поскольку один и тот же аккаунт пользователя может существовать в двух системах под разными именами (например, agy-05 в Hermes и ag-w2 в Hub), существуют следующие варианты их связывания. **Внимание:** ни один из вариантов не должен реализовываться без явного решения владельца продукта.
| Вариант | Что становится возможным | Что ломается / Риски | Объем работы |
|---|---|---|---|
| **1. Сопоставление по идентичности аккаунта (email)** | Автоматическое связывание большинства профилей без ручной настройки. | Профили без email (например, worker-fast, deepseek, API-ключи OpenCode) не могут быть сопоставлены. Надежность зависит от гарантий Hermes по предоставлению идентичности. | ~34 дня. Требует извлечения identity на стороне Hermes и передачи в Hub. |
| **2. Чтение профилей Hermes (Single Source of Truth)** | Единый источник истины: Hub перестает вести свой список профилей и полностью отражает конфигурацию Hermes. | Теряются сущности, специфичные для Hub: цепочки отказоустойчивости (failover chains), распределение ролей Hub. Квоты сложнее привязывать к профилям. | ~812 дней. Требует глубокого рефакторинга конфигурации и движка роутинга Hub. |
| **3. Явная таблица соответствия (Profile Mapping Table)** | Полный контроль и предсказуемость. Владелец может вручную связать любой профиль Hermes (например, gy-05) с профилем Hub (g-w2). | Требует ручной настройки от пользователя в UI Hub. | ~45 дней. Требует добавления конфигурации hermes_profile_map в
| **3. Явная таблица соответствия (Profile Mapping Table)** | Полный контроль и предсказуемость. Владелец может вручную связать любой профиль Hermes (например, agy-05) с профилем Hub (ag-w2). | Требует ручной настройки от пользователя в UI Hub. | ~45 дней. Требует добавления конфигурации hermes_profile_map в
outer_profiles.yaml и поддержки в UI. |
**Рекомендация:**