Files
drhider/History/code-fixes/2026-08-24-v074-cancel-extract.md
T

2.2 KiB
Raw Blame History

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.

Проверка на проде (редеплой 20:07, v0.0.74)

  • Версия v0.0.74 — на проде.
  • Регресс: обычный цикл «Обработано 2 файлов: 1.9с» — фикс отмены не сломал обработку.