hermes-hub/agents/done/2026-08-20-release-recovery-and-auto-update.md

5 KiB
Raw Permalink Blame History

Отчёт о выполнении: Hermes Hub — Release Recovery + GitHub Auto Update

Дата: 2026-08-20
Проект: Hermes Hub
Репозиторий: https://github.com/ochenstarik-ui/hermes-hub (Private)
Релизная версия: 0.1.1
Статус Release Gate: PASS (6/6 проверок пройдено)


1. Выполненные задачи и статус блокеров (P0)

  1. P0-1 (customtkinter / Pillow): installer/HermesHubSetup.py проверяет venv Hermes Agent, устанавливает недостающие GUI-зависимости и верифицирует импорты до завершения установки.
  2. P0-2 (ProfileAuthManager.get_profile_dir): Унифицирована сигнатура метода get_profile_dir, поддерживающая как 1, так и 2 аргумента, с делегированием в paths.py.
  3. P0-3 (Wizard json import): В add_account_wizard.py добавлен импорт json, процесс сохранения API-ключей полностью покрыт тестами.
  4. P0-4 (AutoAssigner.auto_assign_all): Реализован метод auto_assign_all(), автоматически распределяющий авторизованные профили по ключевым ролям команды.
  5. P0-5 (Antigravity failover): Исправлен _error_completion в agy_subprocess.py и AntigravityAdapter. При ошибке квоты (429 / resource exhausted) генерируется типизированный QuotaExceededError, RouterEngine фиксирует сбой квоты и перенаправляет запрос на резервный профиль (failover).
  6. P0-6 (OAuth status unification): Статусы унифицированы (pending, completed, failed, cancelled, timeout), визард мгновенно прерывает ожидание при ошибке.
  7. P0-7 (assign_role button handler): Добавлен диалог назначения ролей в hermes_hub_app.py и метод AutoAssigner.assign_profile_to_role().
  8. P0-8 (Wizard role application): Выбранная на шаге 4 визарда роль сохраняется в конфигурацию роутера.
  9. P0-9 (Real API key validation): Заглушка «успешно проверено» удалена; реализована реальная проверка ключей для OpenAI Codex и OpenCode Go с обнаружением моделей.

2. Архитектура, Безопасность и Автообновления (P1, P2, P3)

  • Версия 0.1.1: Единый источник src/antigravity_provider/version.py, синхронизированный с pyproject.toml, compatibility.json, About view и CI/CD.
  • Изоляция тестов: tests/conftest.py изолирует HERMES_HOME во временной директории, исключая перезапись файлов пользователя.
  • Офлайн маркеры pytest: По умолчанию pytest запускается строго офлайн (-m 'not live and not network and not installer').
  • Централизованные пути: src/antigravity_provider/paths.py удалил все абсолютные пути разработчика (E:\Agent projects, C:\Users\trush).
  • Атомарная блокировка: HealthTracker использует временные файлы и атомарную замену os.replace для router_state.json.
  • Санитизация логов: sanitizer.py автоматически маскирует Bearer токены, API ключи sk-... и OAuth данные перед записью в журнал.
  • Single Instance & Диагностика: Мьютекс Global\HermesHubSingleInstanceMutex предотвращает повторные запуски и активирует открытое окно; startup.log фиксирует процесс запуска до открытия GUI.
  • Встроенный Auto-Updater: Модуль UpdateManager реализует скачивание обновлений в staging, криптографическую проверку SHA-256, проверку синтаксиса и автоматический откат (rollback) при обнаружении ошибок.
  • CI/CD Pipeline: Настроены GitHub Actions (.github/workflows/ci.yml, .github/workflows/release.yml) и автоматизированный скрипт scripts/release_gate.py.

3. Результаты тестов

  • tests/test_p0_release_gate.py: 9/9 PASSED
  • tests/test_updater.py: 5/5 PASSED
  • Полный набор тестов (pytest): 47/47 PASSED
  • scripts/release_gate.py: [RELEASE GATE: PASSED] 6/6 CHECKS PASSED