Три дефекта, найденные при установке владельцем на две машины. 1. Linux: лаунчер писал «Web server failed to respond», хотя сервер поднимался нормально — в логе старт API, планировщик квот и прогрев кэша без ошибок. Причина в самой проверке: sys импортировался ТОЛЬКО внутри except, а использовался в успешной ветке. На здоровом ответе возникал NameError, его ловил тот же except, и проверка всегда возвращала отказ. Доказано исполнением на живом сервере: старая логика -> код 1, новая -> код 0. 2. Windows: при нечитаемом манифесте мастер показывал зашитые InstalledVersion = "0.1.0" и InstalledDate = "19.08.2026" как факт. Владелец видел «старую версию» на свежей установке, хотя проверка показала правильный путь и версию 0.1.1. Заглушки заменены на «не определена» — выдуманный факт хуже отсутствующего. 3. Манифест писался одним File.WriteAllText: прерванная запись оставляла пустой файл, и разбор версии падал на первом символе — ровно это и случилось у владельца (JSONDecodeError, char 0). Запись переведена на временный файл с переносом. Попутно: git_commit в манифесте был зашит как "8cddc9f", то есть манифест сообщал неправду о происхождении сборки. Теперь сборщик проставляет фактический коммит. Тесты: 373 passed, ruff чисто. Установщик пересобран. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
6 KiB
6 KiB