[2026-06-19] zulip-router.md: forward_trigger, sender_email, data, stream_id — полный payload
This commit is contained in:
@@ -347,13 +347,23 @@ if result.get("interrupted"):
|
||||
**Изменяет:** Только сбор и отправку tool outputs после interrupt.
|
||||
**Не изменяет:** conversation_loop.py, run_agent.py, stream_consumer.py, approval.py.
|
||||
|
||||
### Баг 2: Стриминг не работает
|
||||
### Баг 2: Стриминг — partial не работали
|
||||
|
||||
Hermes не стримит ответ через webhook — агент отвечает одним блоком после завершения генерации. Пользователь не видит процесс печати.
|
||||
**Проблема (оригинал):** WebhookAdapter не имеет `SUPPORTS_MESSAGE_EDITING` — stream_consumer не знал что редактирование не поддерживается. Consumer пытался edit, падал в fallback. Курсор `▉` оставался в финальном ответе.
|
||||
|
||||
**Root cause:** Webhook-транспорт не поддерживает стриминг — ответ формируется целиком и шлётся одним POST-запросом в Zulip через роутер.
|
||||
**Фикс (коммиты `fa271d2d1`, `1ac06d593`, `88cbb77b9`):**
|
||||
1. Добавлен `adapter_supports_edit: bool = True` в `StreamConsumerConfig`
|
||||
2. В `run.py` при создании consumer читается `getattr(adapter, "SUPPORTS_MESSAGE_EDITING", True)` — для WebhookAdapter возвращает `True` (нет атрибута), поэтому добавлена ручная настройка через конфиг и проверка `cfg.adapter_supports_edit`
|
||||
3. Создана `else` ветка для no-edit (webhook) в stream_consumer — без курсора, отправка по `\n`
|
||||
4. Добавлен rate-limit: partial на `\n` не чаще чем раз в `edit_interval` (~500ms)
|
||||
5. Убран `buffer_threshold` для no-edit — partial только по `\n` + таймер, чтобы не рвать строки и не создавать дубли
|
||||
6. Gateway перезапускается только через Eagle Dashboard (`localhost:8880`)
|
||||
|
||||
**Фикс:** ? (Пока не чинили)
|
||||
**Текущее поведение:**
|
||||
- Partial отправляются только при `\n` в буфере, не чаще раза в 500ms
|
||||
- При `got_done` — всё накопленное отправляется
|
||||
- Если LLM генерирует без `\n` — ждёт `got_done` (весь ответ одним куском)
|
||||
- Всё стабильно, без дублей, без разрыва строк
|
||||
|
||||
### Баг 3 (Phase 2): Seed реакций не срабатывал из-за skip_bot_messages
|
||||
|
||||
|
||||
Reference in New Issue
Block a user