Окно времени: от (сейчас − N минут) до сейчас по спарсенным датам элементов ленты (максимум из published/updated где доступно). В БД: runtime_settings.collection_window_minutes. Пока строка в БД не создана первым сохранением — подставляется NEWSAGENT_COLLECTION_WINDOW_HOURS из .env (переводится в минуты).
runtime_settings.collection_window_minutes
NEWSAGENT_COLLECTION_WINDOW_HOURS
При обновлении Story в LLM передаётся previous_summary (текущее описание) и последние N событий. Меньше — быстрее и дешевле; больше — полнее контекст. Дефолт: 5.
Если за последний час к сюжету добавилось ≥ N событий — он получает метку «Молния» и поднимается в топ /digest. Дефолт: 3.
Интервал отдельного merge-воркера. Дефолт: 20.
Целевой размер группы для группового merge. Рекомендуемо: 5, safety cap: 8.
Лимит только для ручной команды channel-generate (backfill). В обычном pipeline посты создаются внутри generate-stories для затронутых story. Дефолт: 200.
channel-generate
generate-stories
Ограничивает время шага prepare-post-B-media на один B-пост. По превышению бюджета ставится timeout_budget_exceeded, но общий прогон продолжается. Дефолт: 90.
prepare-post-B-media
timeout_budget_exceeded
Текущий режим: Запуски разрешены. При паузе новые старты полного pipeline (сбор RSS, события, story, публикация, channel) и merge-worker пропускаются.
Без аутентификации (§9 MVP). Если прогон уже идёт, отобразится «Уже выполняется», второй процесс не стартует.