openclaw/extensions/slack
zw-xysk a4c1e22731
fix(slack): preserve unrelated action rows after interactions (#103445)
* fix(slack): use endsWith instead of includes for _all_ action_id matching

* fix(slack): codify bulk action IDs and add confirmation regressions

Extract isSlackBulkActionId() with the documented _all suffix grammar,
use it for bulk-row detection, and add whole-path chat.update tests for
bulk-row cleanup plus deploy_all_services false-positive control.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(slack): use OpenClaw bulk block marker instead of _all suffix

Replace global endsWith("_all") bulk detection with an explicit
openclaw:bulk: block_id prefix and closed action IDs, export a shared
producer helper, and add live Slack chat.update proof for bulk-row
removal and deploy_all_services preservation.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(slack): keep bulk contract private and add legacy upgrade path

Drop speculative bulk-action exports from the Slack plugin API, keep
accepted ID collections private and immutable, and recognize legacy bare
select_all/deselect_all rows while still rejecting deploy_all_services
false positives.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(slack): drop unsupported bare bulk compatibility branch

Remove the legacy select_all/deselect_all classifier that overmatched
single-ID and duplicate-ID rows, and add negative whole-path regressions
preserving unrelated custom action rows.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(slack): remove unsupported bulk-row cleanup heuristic

Delete the undocumented bulk-row inference and namespaced replacement
contract. Confirmation updates now replace only the selected actions row
and preserve every other authored Block Kit row.

* refactor(slack): tighten interaction confirmation fix

* chore(changelog): preserve historical TTS entries

* chore(slack): move release note to PR body

---------

Co-authored-by: zw-xysk <zw-xysk@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 13:16:25 -07:00
..
skills/slack
src fix(slack): preserve unrelated action rows after interactions (#103445) 2026-07-11 13:16:25 -07:00
account-inspect-api.ts
api.ts
channel-config-api.ts
channel-entry.ts
channel-plugin-api.ts
config-api.ts refactor(plugin-sdk): collapse internal config-schema facade usage onto one module (#104665) 2026-07-11 13:00:53 -07:00
configured-state.ts
contract-api.ts
directory-contract-api.ts
doctor-contract-api.ts
http-routes-api.ts
inbound-contract-test-api.ts
index.test.ts
index.ts
interactive-replies-api.ts
message-tool-api.ts
npm-shrinkwrap.json chore(release): set version to 2026.7.2 2026-07-11 04:00:49 +01:00
openclaw.plugin.json
outbound-payload-test-api.ts
package.json chore(release): set version to 2026.7.2 2026-07-11 04:00:49 +01:00
README.md
runtime-api.ts
runtime-setter-api.ts
secret-contract-api.ts
security-contract-api.ts
setup-entry.ts
setup-plugin-api.ts
test-api.ts
tsconfig.json

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.