# Portability: WINDOWS
# Last validated: 2026-05-17
# Next review: 2027-05-17
# Последняя проверка: 17 мая 2026 г.
# Следующий обзор: 17 мая 2027 г.

INSTALLER.EXE / START.EXE EVALUATION
-------------------------------------

СТАТУС: Оценка завершена (17 мая 2026 г.)
РЕКОМЕНДАЦИЯ: Да, полезно, но как функция фазы 2 после стабильного выпуска.


PRO (преимущества)
--------------

1. ДРУЖЕСТВЕННОСТЬ К ПОЛЬЗОВАТЕЛЮ
   - Двойной клик вместо знания терминала
   - Не требуется ручная настройка Python/npm.
   - Интеграция меню «Пуск» (стандарт Windows)
   - Удаление через Windows "Удаление программ"

2. ПОРТАТИВНОСТЬ
   - Встроенный Python: нет зависимости от системы.
   - Колеса в комплекте: во время установки Интернет не требуется.
   - Детерминированная среда: одни и те же версии во всех системах

3. ПРОФЕССИОНАЛЬНОЕ ВПЕЧАТЛЕНИЕ
   - Выпуск GitHub с загрузкой .exe (стандартно для инструментов Windows)
   - Самораспаковывающийся архив с индикатором выполнения.
   - Возможно отображение иконки, брендинга, лицензии

4. ИЗБЕЖАНИЕ ОШИБОК
   - Нет проблем с PATH, нет «Python не найден»
   - Автоматическая изоляция Virtualenv
   - Встроенная предполетная проверка (память, права, порты)


ПРОТИВ (недостатки)
------------------

1. УСИЛИЕ
   - ~40-60 часов разработки + тестирование
   - 20+ режимов запуска в bach.bat должны работать с путями установщика
   - Для каждого обновления требуется новая сборка .exe (или программа автоматического обновления)

2. РАЗМЕР
   - Встроенный Python + Deps: ~200-400 МБ установщика.
   - Без встроенного Python: ~50 МБ, но тогда требуется Python

3. СЛОЖНОСТЬ
   - PyInstaller/Nuitka/cx_Freeze имеют особенности Windows.
   - Ложные срабатывания антивируса для неизвестных файлов .exe.
   - Для доверия требуется сертификат подписи кода (~100-400 евро/год)

4. ОБСЛУЖИВАНИЕ
   - Каждое обновление зависимостей → новая сборка.
   - Блокировка SmartScreen Защитника Windows без подписи
   - Сценарий OneDrive (мультисистемный) плохо подходит для .exe-Install

5. СПЕЦИФИЧЕСКИЕ ПРОБЛЕМЫ БАХА
   - Синхронизация OneDrive: .exe устанавливается локально, BACH находится в OneDrive.
   - Серверам MCP нужен npm (нельзя включить в .exe)
   - Для перехвата кода Claude требуется claude-cli (внешний)
   - Компонент 2/3 (задачи LLM, пользовательская конфигурация) не может быть автоматизирован


РЕКОМЕНДАЦИИ ПО АРХИТЕКТУРЕ
----------------------

ФАЗА 1 (сейчас): «Smart Batch Launcher» — start.exe в качестве оболочки
  - Однофайловый .exe PyInstaller, который вызывает только bach.bat.
  - Проверяет доступность Python, показывает сообщение об ошибке, если его нет.
  - Опционально закрепляется в меню «Пуск»/панели задач.
  - Усилия: ~4 часа
  - Преимущество: возможность немедленного внедрения, минимальные затраты на обслуживание.

ФАЗА 2 (после выпуска): Полный установщик.
  - Inno Setup или NSIS (проверенные платформы установки Windows)
  - Встроенный Python + установка pip из прилагаемых колес
  - Полная инициализация БД
  - Меню «Пуск» + ярлык на рабочем столе.
  - Затраты: ~40 часов (включая тестирование всех режимов)

ФАЗА 3 (дополнительно): автоматическое обновление.
  — GitHub выпускает API для проверки версий.
  - Дельта-обновления (только измененные файлы)
  - Затраты: ~20 часов


ТЕХНИЧЕСКИЕ ВАРИАНТЫ
-------------------

A) PyInstaller (рекомендуется для start.exe)
   - Однофайловый режим (--onefile)
   - Хорошо документировано, широкое сообщество
   - Недостаток: медленный запуск (распаковывает временную папку)

B) Inno Setup (рекомендуется для installer.exe)
   - Стандарт де-факто для установщиков Windows
   - Скрипты на языке Паскаль для сложной логики.
   - Сжатие, удаление, реестр
   - Бесплатно, с открытым исходным кодом

C) Nuitka (Альтернатива)
   - Компилирует Python в C → настоящий .exe
   - Более быстрый запуск, чем PyInstaller
   - Недостаток: более сложная сборка, более длительное время компиляции

D) cx_Freeze (альтернатива)
   - Аналогично PyInstaller, но вместо отдельных файлов используются папки.
   - Более быстрый запуск, чем PyInstaller
   - Недостаток: нет однофайлового режима


СЛЕДУЮЩИЕ ШАГИ
----------------

1. [ ] Решение: Фаза 1 немедленно или подождать после релиза?
2. [ ] Если Этап 1: Создайте спецификацию PyInstaller для start.exe
3. [ ] Если этап 2: подготовка сценария установки Inno со встроенным Python
4. [ ] Получите сертификат подписи кода (необязательно, для SmartScreen)


СМОТРИ ТАКЖЕ
----------
  меню загрузки start/bach.bat (текущий лаунчер)
  docs/help/install.txt инструкции по установке
  setup.py Установщик Python (компонент 1)
  Концептуальный документ ENT-45_INSTALLER_3D_MODELL.md (в формате .dev/)
