Files
utun2/tools/chatgui/installer

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Windows-инсталлятор VibeChat
===========================

Требования к компьютеру сборки
-----------------------------
Обычные зависимости ChatGUI в MSYS2 UCRT64 (Qt, CMake/Ninja, OpenSSL и т.д.)
и Inno Setup 6.3 или новее: https://jrsoftware.org/isdl.php
Inno Setup нужен только для сборки, пользователю приложения он не требуется.

ISCC.exe ищется в PATH и стандартных каталогах Program Files.
Для нестандартной установки задайте в CMD перед сборкой:
    set "ISCC=D:\Tools\Inno Setup 6\ISCC.exe"

Создание инсталлятора
--------------------
Из корня репозитория:
    tools\chatgui\build.bat    только ChatGUI и его инсталлятор
    build.bat                  ядро, тесты, ChatGUI и его инсталлятор
    build_full.bat             полная сборка и инсталлятор

BAT-скрипты автоматически включают --installer. Отсутствие Inno Setup или
ошибка упаковки завершают сборку с ненулевым кодом, даже при выводе через tee.
Корневые BAT собирают ChatGUI и при отсутствии предыдущего CMakeCache.txt.

Из UCRT64 shell можно запускать вручную:
    cd tools/chatgui
    bash build.sh --installer -j4

Или повторно упаковать уже готовый Windows-комплект:
    cd tools/chatgui
    bash package_win.sh

Результат:
    tools\chatgui\build\installer\VibeChat-<версия>-win64-setup.exe

Версия берётся из project(vibechat VERSION ...) в CMakeLists.txt.
--installer задаёт Release; без этого флага поведение shell-сборки прежнее.
Логи: tools\chatgui\build_win.log, а для корневых BAT также build_win.log
или build_full.log в корне. Итоговый путь печатается после успеха компилятора.

Состав и поведение
------------------
Комплект включает EXE, фактически импортируемые DLL, Qt-плагины Windows/JPEG/WebP
с их зависимостями и лицензии. Проверяются x64 PE-формат и полнота зависимостей.
Конфиги, ключи, базы, медиа, логи, lock-файлы, тесты и старые DLL из build
не включаются. Ошибка компилятора не считается успехом из-за старого setup.exe.

Установка: Windows 10/11 с поддержкой x64, Program Files\VibeChat,
права администратора для установки и настройки firewall. Создаются ярлык
в меню Пуск и необязательный ярлык на рабочем столе; после установки приложение
запускается от исходного пользователя. Входящие подключения разрешаются
правилом "VibeChat (installer)" только для установленного EXE.

При обновлении установщик предлагает закрыть приложение, использующее EXE/DLL.
Обновление и удаление сохраняют конфиг, ключи, историю и медиа пользователя.
Деинсталлятор удаляет своё правило firewall и установленные файлы программы.
Журналы установки/удаления и вывод netsh сохраняются средствами Inno Setup;
для явного пути журнала используйте /LOG="C:\path\setup.log".

Проверки
--------
На Linux/Unix: python3 tools/chatgui/tests/test_windows_installer.py
Тест запускает настоящие скрипты с подставленными objdump/pacman/ISCC:
проверяет комплект, ошибки, повторную упаковку и GUI-флаг --installer.
Корневой флаг проверяет python3 tests/test_build_script.py build.sh.
Это не заменяет проверку настоящего Inno-компилятора и установщика на Windows.

На чистой Windows без MSYS2/Qt: установка, запуск обычным пользователем,
сообщения/звуки/медиа, обновление с сохранением идентичности, удаление,
повторная установка. Проверить пути с пробелами и имя пользователя с кириллицей.