v0.1.1 — Codeaudit fixes (E1/E2/E3/E4)
Патч-релиз по результатам аудита Codeaudit (Codeaudit/reports/20260707_120605__audit_esp32-flasher.md).
Что починили
E1 (P2) — QThread leak при закрытии окна во время прошивки. Раньше закрытие крестиком пока идёт esptool.main() приводило к QThread: Destroyed while thread is still running и потенциально битой прошивке на плате. Теперь closeEvent спрашивает подтверждение и ждёт worker до 5с.
E2 (P2) — esptool 5.x молча возвращал бы True даже на ошибке прошивки. esptool.main() в 5.x перешёл с sys.exit() на int return, старый обработчик SystemExit не срабатывал. Починили двумя способами: (1) закрепили esptool>=4.7,<5 в requirements.txt, (2) в _run_esptool теперь проверяется и int return тоже (defense-in-depth).
E3 (P2) — прогресс-бар зависал на 0% в течение всей фазы erase_flash (~30-60с) при включённой галке «полный сброс». Клиент решал «зависло» и прерывал. Теперь при erase бар переходит в indeterminate-режим с надписью «стирание…», при write — обратно в 0-100% с «прошивка…».
E4 (P3) — docstring ports.py косметически говорил про «блэклист SoundBlaster (COM5)», но фактически фильтр работает по keyword в description (sound/audio/blaster/...). Docstring поправлен.
Скачать
Скачай atomspectra-waterfall-esp32.exe (~124 МБ), вставь плату в USB, запусти.
Firmware внутри — то же (AtomSpectra Waterfall commit 221391a, tag baseline-1).
Windows 10/11 x64, без установки, без прав администратора.