hermes-hub/src/antigravity_provider/router
Hermes Team b625b0f3e5 Merge codex/usability-fixes into review/a8 (A8 + B6/B7)
Сводит две работы: A8 (Antigravity — запуск, развёртывание, самопроверка)
и codex/usability-fixes (B6 граф маршрутизации + B7 дефекты живого прогона,
плюс живой сбор квот).

Проверено исполнением на реальных аккаунтах владельца: квоты Antigravity
теперь приходят от провайдера (source=provider_api) по всем шести
авторизованным профилям с разными числами — ag-w2 показывает 37.4%
остатка недельного пула Claude/GPT. OpenCode Go честно отдаёт None
с причиной.

Разрешение конфликтов:

1. do_test_profile — оба агента чинили P0-3 по-разному. Сохранены обе
   правки: проверка просроченной авторизации (A8) поверх локальной
   проверки runtime без вызова модели (Codex).

2. _finish в мастере — взята содержательная версия Codex (проверка слота,
   создание определения профиля, внесение в маршрутизацию, сброс
   cooldown), но её хвост обёрнут так, чтобы сбой в журналировании или
   on_complete не оставлял окно открытым. Регрессия 7090c8a закрыта
   тестом и продолжает проходить.

Исправлено при слиянии: A8 проверял status.get("expired"), тогда как ключ
называется is_expired. Проверка была мертва изначально — её прикрывал
контроль в адаптере, и это вскрылось только когда Codex убрал вызов
адаптера из «Теста»: протухший аккаунт получал зелёную галочку.

Тесты: 288 passed, 2 skipped, ruff чисто.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 01:12:31 +07:00
..
adapters fix(deployment): implement self-healing bootstrap, Claude & Grok profiles, non-interactive test mode, mirror installer, and comprehensive doctor CLI 2026-08-22 21:22:21 +07:00
scheduler feat(hub): product stabilization, native windows ux v3, provider icons, and architecture roadmap 2026-08-20 11:01:52 +07:00
supervisor feat(state): harden snapshots quotas and routing 2026-08-21 00:03:50 +07:00
ui Merge codex/usability-fixes into review/a8 (A8 + B6/B7) 2026-08-23 01:12:31 +07:00
__init__.py feat(dashboard): expose telemetry breakdown, provider call_share, host metrics, and active leases 2026-08-21 17:44:56 +07:00
account_identity.py fix: restore weekly quotas and reconcile live health 2026-08-23 00:15:18 +07:00
auto_assigner.py Merge codex/usability-fixes into review/a8 (A8 + B6/B7) 2026-08-23 01:12:31 +07:00
claude_oauth.py merge: complete antigravity state layer 2026-08-21 00:10:56 +07:00
cli_commands.py fix(deployment): implement self-healing bootstrap, Claude & Grok profiles, non-interactive test mode, mirror installer, and comprehensive doctor CLI 2026-08-22 21:22:21 +07:00
codex_oauth.py merge: complete antigravity state layer 2026-08-21 00:10:56 +07:00
event_bus.py feat(state): close contract gaps v1.1, canonical event publishers, and view model enrichment 2026-08-21 08:20:56 +07:00
exceptions.py fix: close P0 release blockers 2026-08-20 16:25:11 +07:00
grok_oauth.py merge: complete antigravity state layer 2026-08-21 00:10:56 +07:00
health_tracker.py fix: restore weekly quotas and reconcile live health 2026-08-23 00:15:18 +07:00
hermes_hub_app.py Merge codex/usability-fixes into review/a8 (A8 + B6/B7) 2026-08-23 01:12:31 +07:00
host_metrics.py fix(dashboard): unify LeaseManager, warm up initial CPU measurement, add live network speed, and clarify YAML comment support 2026-08-21 22:18:59 +07:00
launcher_bootstrap.py fix(deployment): implement self-healing bootstrap, Claude & Grok profiles, non-interactive test mode, mirror installer, and comprehensive doctor CLI 2026-08-22 21:22:21 +07:00
model_registry.py feat(state): harden snapshots quotas and routing 2026-08-21 00:03:50 +07:00
profile_manager.py feat(state): harden snapshots quotas and routing 2026-08-21 00:03:50 +07:00
profile_oauth.py merge: complete antigravity state layer 2026-08-21 00:10:56 +07:00
quota_collector.py fix: restore weekly quotas and reconcile live health 2026-08-23 00:15:18 +07:00
router_config.py fix(deployment): implement self-healing bootstrap, Claude & Grok profiles, non-interactive test mode, mirror installer, and comprehensive doctor CLI 2026-08-22 21:22:21 +07:00
router_engine.py fix(dashboard): unify LeaseManager, warm up initial CPU measurement, add live network speed, and clarify YAML comment support 2026-08-21 22:18:59 +07:00
scheduler.py feat(state): close contract gaps v1.1, canonical event publishers, and view model enrichment 2026-08-21 08:20:56 +07:00
session_affinity.py feat(dashboard): expose telemetry breakdown, provider call_share, host metrics, and active leases 2026-08-21 17:44:56 +07:00
settings_service.py fix: update canonical installer with dependency resolution and close release blockers 2026-08-20 18:17:08 +07:00
state_store.py fix(dashboard): unify LeaseManager, warm up initial CPU measurement, add live network speed, and clarify YAML comment support 2026-08-21 22:18:59 +07:00
telemetry_service.py feat(dashboard): expose telemetry breakdown, provider call_share, host metrics, and active leases 2026-08-21 17:44:56 +07:00
unified_health.py fix: restore weekly quotas and reconcile live health 2026-08-23 00:15:18 +07:00