fix: restore per-channel Discord dispatch and Slack mrkdwn normalization (#31927) (thanks @Sid-Qin)

This commit is contained in:
Peter Steinberger
2026-03-02 20:34:30 +00:00
parent ebb969d0ba
commit 038ae945fb

View File

@@ -51,6 +51,7 @@ Docs: https://docs.openclaw.ai
- Synology Chat/webhook ingress hardening: enforce bounded body reads (size + timeout) via shared request-body guards to prevent unauthenticated slow-body hangs before token validation. (#25831) Thanks @bmendonca3.
- Synology Chat/reply delivery: resolve webhook usernames to Chat API `user_id` values for outbound chatbot replies, avoiding mismatches between webhook user IDs and `method=chatbot` recipient IDs in multi-account setups. (#23709) Thanks @druide67.
- Synology Chat/gateway lifecycle: keep `startAccount` pending until abort for inactive and active account paths to prevent webhook route restart loops under gateway supervision. (#23074) Thanks @druide67.
- Discord/message dispatch + Slack formatting: restore parallel outbound agent dispatch across Discord channels with per-channel queues while preserving in-channel order, and normalize Slack streaming/update text through mrkdwn conversion for consistent previews. (#31927) Thanks @Sid-Qin.
- Auto-reply/followup queue: avoid stale callback reuse across idle-window restarts by caching the followup runner only when a drain actually starts, preserving enqueue ordering after empty-finalize paths. (#31902) Thanks @Lanfei.
- Cron/HEARTBEAT_OK summary leak: suppress fallback main-session enqueue for heartbeat/internal ack summaries in isolated announce mode so `HEARTBEAT_OK` noise never appears in user chat while real summaries still forward. (#32093) Thanks @scoootscooob.
- Sessions/lock recovery: reclaim orphan legacy same-PID lock files missing `starttime` when no in-process lock ownership exists, avoiding false lock timeouts after PID reuse while preserving active lock safety checks. (#32081) Thanks @bmendonca3.