Session 2026-09-13: unify directions (canon+LLM-fallback, 966/1019), publisher dry_run fix, git repo, archive 8 changes, candidates-mail-ui WIP, docs

This commit is contained in:
kpa39l
2026-09-13 17:48:06 +00:00
parent c3f59f7b7a
commit 71fd48aa06
40 changed files with 305 additions and 7 deletions
@@ -0,0 +1,24 @@
## 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}'` → реальная публикация (как раньше).