# tasks - [x] sources/extract.py: extract_sources_from_text (TG + сайты, дедуп, лимит 5) - [x] web/app.py: helper _post_sources + передача post_sources в candidates/selected - [x] web/app.py: POST /sources/add-from-post - [ ] web/templates/candidates.html + selected.html: блок «Источники из поста» (НЕ реализовано — шаблонный блок отсутствует) - [x] openspec validate extract-post-sources — чисто - [ ] Рестарт vesti-web, ручная проверка на посте с ссылками - [ ] Обновить TODO.md