openclaw/src/plugin-state
Peter Steinberger ca2681313b
fix(channels): fail channel start when the durable ingress queue is denied (#114998)
An untrusted channel plugin cannot open its durable ingress queue, but the shared
ingress monitor resolved the queue lazily, so start() armed the poll timer anyway and
every tick re-invoked the throwing factory. On a production gateway that produced one
INFO-level "slack ingress drain failed" line per second for 26+ hours while Slack
reported connected and healthy and every inbound event was silently dropped.

Open the queue before arming the poll timer so an unusable monitor fails channel start
through the caller instead of spinning. Also report the actual denied capability:
openChannelIngressQueue and openSyncKeyedStore both announced themselves as
openKeyedStore, and the message named neither the plugin nor its origin.
2026-07-28 03:17:09 -04:00
..
plugin-blob-store.sqlite.ts refactor(diffs): move ephemeral artifacts to SQLite (#109328) 2026-07-16 16:47:19 -07:00
plugin-blob-store.test.ts refactor(diffs): move ephemeral artifacts to SQLite (#109328) 2026-07-16 16:47:19 -07:00
plugin-blob-store.ts refactor(diffs): move ephemeral artifacts to SQLite (#109328) 2026-07-16 16:47:19 -07:00
plugin-blob-store.types.ts refactor(diffs): move ephemeral artifacts to SQLite (#109328) 2026-07-16 16:47:19 -07:00
plugin-state-lease.test.ts refactor(memory): move QMD coordination to SQLite (#109636) 2026-07-16 22:01:34 -07:00
plugin-state-lease.ts refactor: move MCP OAuth state to SQLite (#109844) 2026-07-17 12:15:16 +01:00
plugin-state-lease.types.ts refactor(memory): move QMD coordination to SQLite (#109636) 2026-07-16 22:01:34 -07:00
plugin-state-store.e2e.test.ts
plugin-state-store.runtime.test.ts fix(channels): fail channel start when the durable ingress queue is denied (#114998) 2026-07-28 03:17:09 -04:00
plugin-state-store.sqlite.ts refactor: move non-session runtime journals to SQLite (#109427) 2026-07-18 11:42:14 +01:00
plugin-state-store.test-helpers.ts
plugin-state-store.test.ts feat(plugins): beam local coding sessions into a read-only catalog (#112323) 2026-07-27 15:37:36 -04:00
plugin-state-store.ts refactor: move non-session runtime journals to SQLite (#109427) 2026-07-18 11:42:14 +01:00
plugin-state-store.types.ts
plugin-store-validation.ts refactor(diffs): move ephemeral artifacts to SQLite (#109328) 2026-07-16 16:47:19 -07:00
runtime-health-store.ts