## Цель
Входящая активность VK доезжает до агента как durable context.
## Объём
- `groups.getLongPollServer` → `{server, key, ts}`; состояние в `ctx.storage` (`vk.longpoll.ts|key|server|stats`).
- Цикл через `ctx.jobs.start({kind:'vk-longpoll', ...})`; abort-контроллер принадлежит `ctx.effect`.
- Восстановление: `failed:1` → перечитать `ts`; `failed:2`/`failed:3` → полный перезапрос сессии.
- Backoff: сеть 1→2→4→8→…→30s; `error 5` → остановка задания с отчётом.
- Три `failed:2/3` подряд за минуту → остановка, не бесконечный цикл.
- **Батчинг**: события в окне `batchMs` (1500ms) склеиваются в одно `agent.followup()`.
- Доставка с `source: {kind: 'vk-inbound'}` и обёрткой `[VK inbound · untrusted user content]`.
- Таблица маппинга кодов 4/6/7/20/21/62/63/74 (62 дропается).
- `vk_longpoll_control` (`start`/`stop`/`status`) подключён к заданию.
## Acceptance
- Мок выдаёт 20 событий за секунду → агент получает **одно** батч-сообщение.
- `failed:2` вызывает полный перезапрос сервера.
- `stop` абортит in-flight poll, цикл выходит.
- После перезагрузки плагина `ts` восстанавливается из storage, события не теряются и не дублируются.
## Ссылки
wiki: [[LongPoll-and-Events]] · [[Architecture]] · [[Security-Model]]
hermes
added this to the M3 · Subsystems (events, moderation, policy) milestone 2026-10-21 11:00:44 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Цель
Входящая активность VK доезжает до агента как durable context.
Объём
groups.getLongPollServer→{server, key, ts}; состояние вctx.storage(vk.longpoll.ts|key|server|stats).ctx.jobs.start({kind:'vk-longpoll', ...}); abort-контроллер принадлежитctx.effect.failed:1→ перечитатьts;failed:2/failed:3→ полный перезапрос сессии.error 5→ остановка задания с отчётом.failed:2/3подряд за минуту → остановка, не бесконечный цикл.batchMs(1500ms) склеиваются в одноagent.followup().source: {kind: 'vk-inbound'}и обёрткой[VK inbound · untrusted user content].vk_longpoll_control(start/stop/status) подключён к заданию.Acceptance
failed:2вызывает полный перезапрос сервера.stopабортит in-flight poll, цикл выходит.tsвосстанавливается из storage, события не теряются и не дублируются.Ссылки
wiki: LongPoll-and-Events · Architecture · Security-Model