mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-18 02:11:36 +00:00
* fix(slack): remember event-carried channel types so mpDMs key one session (#102676) Human-authored mpDM messages carry channel_type: "mpim" and key the room slack:group:<channelId>. Bot-authored ingress shapes omit channel_type; when the conversations.info fill cannot resolve the type either (e.g. missing mpim:read scope), C-prefix inference falls back to "channel" and keys a second, parallel slack:channel:<channelId> session for the same room — modern mpDM ids are C-prefixed, so prefix inference cannot disambiguate. Remember explicit channel_type values already seen on events for each channel (bounded process-local map alongside the existing channel/user caches) and consult that memory after the event value and the channel-info fill, before prefix inference. The system-event session-key resolver consults the same memory so system events for the room key identically. No new network lookups; classification stays consistent with normalizeSlackChannelType on every ingress path. * fix(slack): scope remembered channel types by event scope Key the remembered channel_type map with the same account/team scoping as channelCache (scopedKey), so multi-workspace enterprise installs cannot cross-contaminate remembered types between scopes that share a channel id. * fix(slack): keep mpDM events on one session Cache explicit Slack channel types at the monitor boundary so typeless bot/edit/delete events reuse mpDM group sessions without poisoning metadata lookup. Co-authored-by: RickLin <ObliviateRickLin@users.noreply.github.com> --------- Co-authored-by: Peter Steinberger <steipete@gmail.com> Co-authored-by: RickLin <ObliviateRickLin@users.noreply.github.com>
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.