# publisher-dry-run-fix - [x] Создан OpenSpec change (proposal/design) - [x] main.py: if payload.dry_run → эмуляция результата (message_id=0, dry_run=true), без вызова TG - [x] PublishRequest: добавлено поле `dry_run` (было только в Response — AttributeError) - [x] Пересборка контейнера: docker compose up -d --build (дважды — после правки модели) - [x] Тест: dry_run=true → ok, message_id=0, dry_run=true, канал НЕ тронут - [x] Тест: dry_run=false → как раньше (502 на несуществующий канал, реальный publish работает) - [x] `openspec validate publisher-dry-run-fix` — чисто