1. Главное: ERR_CONNECTION_REFUSED в окне приложения.
browserProc.WaitForExit() возвращался МГНОВЕННО, когда Edge уже был
запущен: новый msedge.exe передаёт окно работающему экземпляру и сразу
завершается. Лаунчер считал, что окно закрыли, и убивал сервер, пока
страница ещё грузилась.
Браузер теперь запускается с отдельным профилем (--user-data-dir), то
есть процесс живёт столько же, сколько окно. Плюс подстраховка: выход
браузера быстрее пяти секунд не считается закрытием окна.
Та же ловушка была в Linux-лаунчере — исправлена там же.
Проверено вживую: сервер отвечает 200 И окно приложения живо
(«Hermes Hub — Панель управления»).
2. Установщик по галочке «Запустить сейчас» открывал ДЕСКТОП. Владелец
получал десктопное окно и принимал его за старую версию — внешне оно
и правда другое. Теперь запускается веб-интерфейс, подпись галочки
уточнена. Десктоп остаётся доступен своим ярлыком.
Тесты: 373 passed, ruff чисто. Установщик пересобран.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Canonical Binary:HermesHubSetup.exe (built from HermesHubSetup.cs)
Build Script:build_installer.ps1 (compiles HermesHubSetup.cs using standard .NET Framework csc.exe present on all Windows 10/11 machines without extra toolchains).
Development & Helper Scripts
HermesHubSetup.py: Internal development helper script for testing installer logic in Python. Not distributed as a primary installer artifact.
install.ps1: Deprecated legacy bootstrap script for earlier development environments.
Testing Policy (S7)
Unit Tests: Must NEVER modify user Windows Registry (HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall) or Start Menu shortcuts.
Integration Tests: Executed against isolated sandbox mock directories.
Live VM Tests: Real Windows installer execution is reserved for disposable CI/VM environments.