mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-23 05:21:17 +00:00
* fix(test): converge Slack harness state across module reloads Five reaction tests in monitor.tool-result.test.ts failed whenever a sibling file's vi.resetModules() ran earlier in the same non-isolated worker: the cached globalThis __slackClient kept routing reactions to the OLD test-helpers module's mocks while tests asserted on the recreated module's fresh mocks — reactions 'never fired' (replies survived via freshly injected runtime). slackTestState is now a globalThis-backed singleton so every module incarnation and the cached client share one state object. Also: reaction assertions wait on the mock (reactions apply via detached debounce/queue work), and stale Bolt handler registrations clear per test/stop so waitForSlackEvent cannot match a previous provider's handler. Proven with six consecutive full extensions/slack runs (was ~50% failure). * style(slack): bracket global test-state access for underscore lint
OpenClaw Slack
Official OpenClaw channel plugin for Slack channels, DMs, commands, and app events.
Install from OpenClaw:
openclaw plugin add @openclaw/slack
Configure the Slack app credentials and allowed workspaces/channels in OpenClaw. The plugin lets agents receive Slack events and reply through the configured Slack app.