Skip to content

fix(feed): align MCP-фазу дайджеста с тайм-аутом Gateway - #301

Merged
TserenTserenov merged 1 commit into
new-architecturefrom
fix-feed-digest-timeout
Aug 10, 2026
Merged

fix(feed): align MCP-фазу дайджеста с тайм-аутом Gateway#301
TserenTserenov merged 1 commit into
new-architecturefrom
fix-feed-digest-timeout

Conversation

@TserenTserenov

Copy link
Copy Markdown
Contributor

Что

generate_multi_topic_digest (engines/feed/planner.py) ждал ответа от MCP-поиска материалов (контекст для дайджеста) до 30 секунд, но GATEWAY_MCP_TIMEOUT (Railway env, прод) = 35 секунд. Внешний wait_for всегда обрывал запрос первым, впустую съедая ~30 из 90-секундного бюджета генерации дайджеста, ещё до вызова Claude.

Симптом в проде

Читатель Ленты с 3 темами на 3-й глубине (упирается в потолок max_tokens модели, генерация и так небыстрая) дважды за день получил "⏱ Генерация заняла слишком много времени" — оба раза после MCP context fetch timeout, continuing without context, ровно через 60s после которого истекал общий CONTENT_GENERATION_TIMEOUT=90. Минимум ещё 3 читателя сейчас в той же связке "3 темы + глубина 3"; их спасала только более щедрая ночная фоновая пре-генерация (120s).

Фикс

Снизил MCP-фазу до 10s (с запасом ниже 35s) — контекст и так best-effort с graceful fallback, а до Claude теперь всегда доезжает весь оставшийся бюджет.

Проверка

  • python3 -m py_compile engines/feed/planner.py — синтаксис ок
  • Изменение локальное к одной константе + комментарий, существующих тестов на функцию нет

MCP context fetch ждал 30s, а GATEWAY_MCP_TIMEOUT в Railway = 35s —
внешний wait_for всегда обрывал запрос первым, впустую съедая треть
90-секундного бюджета генерации дайджеста ещё до вызова Claude.
@TserenTserenov
TserenTserenov merged commit 09e8d62 into new-architecture Aug 10, 2026
6 checks passed
@TserenTserenov
TserenTserenov deleted the fix-feed-digest-timeout branch August 10, 2026 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant