d1976c9ccf
152-ФЗ блокер B1/F-P1: телефоны и имена контактов soft-deleted сделок не вычищались и хранились бессрочно. Добавлена плановая команда-ретеншен. Команда pd:scrub-soft-deleted-deals анонимизирует phone/contact_name/phones сделок с deleted_at старше N дней; N из system_settings pd_scrub_soft_deleted_deals_days, по умолчанию no-op — юр.срок не зашит в код. Значения затирания идентичны PdErasureService. Cross-tenant через pgsql_supplier BYPASSRLS, идемпотентно, summary-запись в pd_processing_log системным актором. Планировщик ежедневно 03:30 МСК с heartbeat. Схема v8.41: partial index deals_deleted_at_index ON deals deleted_at WHERE deleted_at IS NOT NULL для дешёвой выборки; счётчик индексов 120 на 121. F-T2 проверен: /api/admin за middleware saas-admin fail-closed 503 — кодовой правки не требует. TDD: 4 Pest ScrubSoftDeletedDealsCommandTest GREEN. Escape-per-write — печать церемонии не опечатывала план. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>