v0.0.74: отмена в extract-фазе — прерывание не ждёт все .doc-конвертации
Deploy drhider / validate (push) Canceled after 0s

This commit is contained in:
“Naeel”
2026-08-24 20:07:23 +03:00
parent dd1e285c8c
commit ba4546ecc9
4 changed files with 36 additions and 3 deletions
@@ -0,0 +1,26 @@
# v0.0.74 — отмена в extract-фазе (2026-08-24)
_code-fixes. Доработка по код-ревью Соннета (пункт «отмена не работает в extract-фазе»)._
## Что сделано (`drhider/obfuscator.py`)
- В проходе 1 (извлечение) добавлена проверка `cancel_event.is_set()` между файлами:
при отмене цикл извлечения прерывается (`break`), LLM-сканирование пропускается,
результат помечается `cancelled` (processed=0, пустой ZIP + mapping.csv только заголовок).
- Раньше отмена ждала завершения ВСЕХ извлечений, включая медленные `.doc` (liberta, до 120с/файл).
## Проверка
- `py_compile` — OK, `import` drhider — OK.
- Unit-тест: `cancel_event` установлен до старта → `meta={'cancelled': True, 'processed': 0, 'total': 2}`,
пустой ZIP (22 Б), CSV только заголовок.
## Критично к Соннету (по итогам проверки)
- **«LLM-таймаут тихо обнуляет чанк»** — ОТКЛОНЕНО: `_call_llm` уже логирует
(`log.warning("LLM NER failed: %s", e)`) в `except Exception`. Таймаут не «тихий».
- **«cleanup после /download»** — ОТКЛОНЕНО ранее (ZIP и CSV скачиваются раздельно, см. v0.0.73).
## Осталось (не трогаем, задокументировано)
- idx-мисматч `expand_zips` (фильтр расширений) — краевой случай, спорное поведение.
- LLM prompt injection — класс риска, не фикс кода.
- debug-эндпоинт `session_files` — мелочь, может сломать тесты.
Версия 0.0.73 → 0.0.74.