hermes-hub/agents/done/2026-08-20-hermes-hub-standalone-migration.md
2026-08-20 10:53:49 +07:00

7.7 KiB
Raw Blame History

Отчет о выделении Hermes Hub в самостоятельный проект

1. Архитектура самостоятельного репозитория

Проект Hermes Hub успешно отделен в независимый репозиторий:

  • Каталог репозитория: E:\Agent projects\hermes-hub
  • Версия релиза: 0.1.0 (Semantic Versioning)
  • Статус Git: Репозиторий инициализирован, сделан начальный коммит feat: initialize standalone Hermes Hub (54 файла, working tree clean).

2. Структура проекта hermes-hub

hermes-hub/
+-- config/
|   +-- compatibility.json              # Манифест совместимости версий Hermes (0.20.0 - 0.20.4)
|   \-- router_profiles.example.yaml   # Шаблон конфигурации 16 профилей без секретов
+-- dist/
|   +-- HermesHubSetup.exe              # Полноценный Windows Installer (GUI + Silent Mode)
|   \-- checksums.txt                   # SHA256 контрольные суммы дистрибутива
+-- docs/
|   +-- ARCHITECTURE.md                 # Архитектура Multi-Provider Router и UI
|   +-- INSTALLATION.md                 # Руководство по установке и unattended режимам
|   \-- SECURITY_MODEL.md               # Модель безопасности и изоляции учетных данных
+-- installer/
|   +-- HermesHubSetup.cs               # Исходный код C# инсталлятора
|   \-- build_installer.ps1             # Скрипт сборки HermesHubSetup.exe
+-- launcher/
|   +-- HermesHub.cs                    # Исходный код C# лаунчера (Edge App Mode)
|   +-- HermesHub.exe                   # Скомпилированный лаунчер
|   \-- build_launcher.ps1              # Скрипт сборки HermesHub.exe
+-- scripts/
|   +-- install.ps1                     # PowerShell установщик
|   +-- update.ps1                      # PowerShell скрипт обновления
|   +-- uninstall.ps1                   # PowerShell деинсталлятор (с защитой user data)
|   +-- launch_hermes_hub.bat           # Пакетный запуск
|   +-- verify_multi_provider_router.py # Верификация Multi-Provider Router
|   +-- verify_antigravity_provider.py  # Верификация Antigravity backend
|   \-- live_provision_and_validate.py  # Скрипт E2E-валидации профилей
+-- src/antigravity_provider/           # Исходный код плагина и роутера
|   +-- router/                         # Роутер, адаптеры (Codex, Antigravity, OpenCode Go), GUI
+-- tests/
|   +-- test_installer.py               # Тесты инсталлятора и pre-flight проверок
|   \-- test_multi_provider_router.py   # Тесты роутера, квот, affinity и failover
+-- pyproject.toml                      # Метаданные пакета Python (0.1.0)
+-- README.md                           # Документация проекта
+-- CHANGELOG.md                        # История изменений
+-- LICENSE                             # MIT License
\-- .gitignore                          # Исключение секретов, токенов, runtime данных

3. Windows Setup Installer (HermesHubSetup.exe)

Разработан и скомпилирован нативный установщик Windows:

  1. Pre-flight Checks:
    • Динамически находит Hermes Home (%LOCALAPPDATA%\hermes).
    • Проверяет наличие hermes.exe и Python runtime (hermes-agent\venv\Scripts\python.exe).
    • Сверяет версию Hermes (0.20.4) по compatibility.json.
    • Если Hermes отсутствует: блокирует установку с понятным сообщением и ссылкой на документацию, не создавая пустых/фейковых каталогов.
  2. Тихий режим (Unattended Mode):
    • Флаг /silent (или /s):
      • Код 0: Успешная установка.
      • Код 10: Hermes Agent не найден на машине.
      • Код 11: Несовместимая версия Hermes.
      • Код 12: Ошибка валидации развернутых файлов.
  3. Разделение Source и Runtime:
    • Приложение: %LOCALAPPDATA%\Programs\HermesHub\
    • Интеграция плагина: %LOCALAPPDATA%\hermes\plugins\antigravity-provider\
    • Пользовательские данные: %LOCALAPPDATA%\hermes\
  4. Обновление и удаление:
    • Обновление через /repair или update.ps1 сохраняет все токены auth.json, ключи и router_profiles.yaml.
    • Деинсталлятор uninstall.ps1 / HermesHubSetup.exe /uninstall сохраняет пользовательские профили по умолчанию и очищает их только при флаге /purgeuserdata.

4. Результаты тестирования и Security Scan

  1. Security Scan: Просканировано 53 файла репозитория — 0 утечек учетных данных, токенов или паролей.
  2. Набор тестов Pytest (uv run pytest -v):
    • test_setup_exe_exists: PASS
    • test_compatibility_json: PASS
    • test_silent_installer_execution_with_hermes: PASS (код возврата 0)
    • test_silent_installer_fails_without_hermes: PASS (код возврата 10)
    • Все 13 тестов Router Engine, Health, Session Affinity, Failover: PASS
    • Итог: 17 passed in 4.02s.
  3. Верификация Multi-Provider Router: 10/10 CHECKS PASSED.
  4. Доказательство Runtime Import Path:
    • Модули импортируются из развернутого каталога %LOCALAPPDATA%\hermes\plugins\antigravity-provider\src\ и автономного репозитория E:\Agent projects\hermes-hub\src\.

5. Ссылки на файлы и документацию