Files
vesti/openspec/changes/archive/2026-09-13-publisher-dry-run-fix/proposal.md
T

24 lines
1.4 KiB
Markdown

## Why
При тесте публикации с медиа сквозь веб выяснилось: `dry_run` в POST /api/v1/publish
(services/publisher/app/main.py:42, модель `PublishRequest.dry_run: bool = False`)
НИГДЕ не используется в теле — публикация уходит в Telegram реально даже при
`"dry_run": true`. Это опасно: тестовые запросы засоряют канал (сегодня ушли
реальные сообщения 11/12, пришлось удалять вручную).
## What Changes
- services/publisher/app/main.py: при `payload.dry_run == True` НЕ вызывать telegram.publish,
вернуть эмуляцию результата (ok, результаты с message_id=0 и флагом dry_run=true),
при этом сделать вид, что опубликовано (для сквозного теста веб → publisher без TG).
## Why Not
- Не менять веб: веб всегда шлёт dry_run=false (реальные approve). dry_run — только для
тестов/curl.
## Acceprance
- `curl ... -d '{"card":{...},"dry_run":true}'` → результат с dry_run:true, НЕ уходит в TG
(можно проверить: views по message_id=0 → 404).
- `curl ... -d '{"card":{...},"dry_run":false}'` → реальная публикация (как раньше).