# 2026-08-20 — КРИТИЧНО: mapping.csv (ключ расшифровки) убран из выходного ZIP (v0.0.56) ## Проблема (утечка секретных данных) Выходной ZIP содержал `mapping.csv` — таблицу соответствия «оригинал → замена», т.е. ключ расшифровки (реальные ФИО/телефоны/ИНН ↔ токены). Если ZIP передать третьему лицу — тот получал и обфусцированные файлы, и таблицу расшифровки. CSV должен храниться/скачиваться ОТДЕЛЬНО от обфусцированных файлов. ## Фикс (drhider/builder.py `build_zip`) - Убрана запись `mapping.csv` в архив. Теперь в ZIP — ТОЛЬКО обфусцированные файлы. - Параметр `mapping_csv` сохранён в сигнатуре (для совместимости вызовов), но в архив не пишется. - CSV продолжает генерироваться (`build_mapping_csv`) и отдаваться отдельно через `/api/csv/` (кнопка «Скачать CSV»), как написано на странице. ## Тесты (tests/test_builder.py) - Блок «ZIP с mapping.csv» переписан: теперь проверяет, что mapping.csv НЕ в архиве. - Интеграционный блок: ZIP содержит только doc.md, CSV проверяется отдельной строкой. - Все 106 тестов OK. ## Проверка - python3 tests/test_builder.py — 20/20 OK (включая новый сценарий «mapping не в zip»). - Остальные тесты — без изменений поведения, OK. - VERSION 0.0.56.