# v0.0.40 — имя файла в live-блоке + сброс итогов — 2026-08-19 **Дата:** 2026-08-19 **Версия:** 0.0.39 → 0.0.40 --- ## Суть Два UX-фикса во время обработки: 1. **Имя текущего файла в live-блоке.** Раньше `start`-событие (с именем файла) слалось только в **проходе 2** (замена), который идёт ПОСЛЕ LLM. А LLM — в проходе 1 и самый долгий. Поэтому во время LLM висело «Подготовка…» вместо имени файла. 2. **Сброс старых «Итогов» при повторной обфускации.** Раньше блок «📊 Итоги обработки» не скрывался при новом запуске — старые итоги висели во время новой обработки. ## Изменения ### `drhider/obfuscator.py` - `progress_cb("start", i, total, name)` перенесён из прохода 2 в **проход 1** (перед `extract_text` каждого файла). - В проходе 2 остался только `progress_cb("done", ...)`. - Порядок событий: `start`×N (extract_text) → `done`×N (замена). ### `site/templates/index.html` - В начале `uploadFiles()` добавлено скрытие `#statsBlock` и `#liveBlock` (как уже скрывается `db`). ### `site/app.py` - `VERSION = "0.0.40"`. ## Проверка - Порядок событий: `[start(0), start(1), done(0), done(1)]` — корректно. - `node --check`, `py_compile` — OK. - Тесты: builder 20/20, replacer 10/10, scanner 20/20, zip 28/28.