openclaw/extensions
Jean-Marc 9a3800d8e6
fix(synology-chat): resolve Chat API user_id for reply delivery (#23709)
* fix(synology-chat): resolve Chat API user_id for reply delivery

Synology Chat outgoing webhooks use a per-integration user_id that
differs from the global Chat API user_id required by method=chatbot.
This caused reply messages to fail silently when the IDs diverged.

Changes:
- Add fetchChatUsers() and resolveChatUserId() to resolve the correct
  Chat API user_id via the user_list endpoint (cached 5min)
- Use resolved user_id for all sendMessage() calls in webhook handler
  and channel dispatcher
- Add Provider field to MsgContext so the agent runner correctly
  identifies the message channel (was "unknown", now "synology-chat")
- Log warnings when user_list API fails or when falling back to
  unresolved webhook user_id
- Add 5 tests for user_id resolution (nickname, username, case,
  not-found, URL rewrite)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(synology-chat): use Readable stream in integration test for Windows compat

Replace EventEmitter + process.nextTick with Readable stream for
request body simulation. The process.nextTick approach caused the test
to hang on Windows CI (120s timeout) because events were not reliably
delivered to readBody() listeners.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: harden synology reply user resolution and cache scope (#23709) (thanks @druide67)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-03-02 19:50:58 +00:00
..
acpx test(perf): remove redundant acpx healthy-command case 2026-03-02 17:41:51 +00:00
bluebubbles refactor: split webhook ingress and policy guards 2026-03-02 18:02:21 +00:00
copilot-proxy build: bump versions to 2026.3.2 2026-03-02 04:55:53 +00:00
device-pair refactor: de-duplicate channel runtime and payload helpers 2026-02-23 21:25:28 +00:00
diagnostics-otel build: bump versions to 2026.3.2 2026-03-02 04:55:53 +00:00
diffs test(perf): trim fixed waits in relay and startup tests 2026-03-02 17:30:33 +00:00
discord build: bump versions to 2026.3.2 2026-03-02 04:55:53 +00:00
feishu fix(feishu): preserve explicit target routing hints (#31594) (thanks @liuxiaopai-ai) 2026-03-02 15:47:21 +00:00
google-gemini-cli-auth refactor(extensions): dedupe channel config, onboarding, and monitors 2026-03-02 08:54:20 +00:00
googlechat refactor: split webhook ingress and policy guards 2026-03-02 18:02:21 +00:00
imessage fix(ci): align strict nullable typing across channels and ui 2026-03-02 09:56:14 +00:00
irc refactor(extensions): dedupe channel config, onboarding, and monitors 2026-03-02 08:54:20 +00:00
line test(perf): trim fixed waits in relay and startup tests 2026-03-02 17:30:33 +00:00
llm-task build: bump versions to 2026.3.2 2026-03-02 04:55:53 +00:00
lobster refactor(gateway): hard-break plugin wildcard http handlers 2026-03-02 16:24:06 +00:00
matrix fix(matrix): keep plugin register sync while bootstrapping crypto runtime (#31989) 2026-03-02 19:33:22 +00:00
mattermost build: bump versions to 2026.3.2 2026-03-02 04:55:53 +00:00
memory-core build: bump versions to 2026.3.2 2026-03-02 04:55:53 +00:00
memory-lancedb fix: add regression for memory-lancedb dimensions pass-through (#32036) (thanks @scotthuang) 2026-03-02 19:02:11 +00:00
minimax-portal-auth refactor(extensions): dedupe channel config, onboarding, and monitors 2026-03-02 08:54:20 +00:00
msteams build: bump versions to 2026.3.2 2026-03-02 04:55:53 +00:00
nextcloud-talk test(perf): trim fixed waits in relay and startup tests 2026-03-02 17:30:33 +00:00
nostr refactor(gateway): hard-break plugin wildcard http handlers 2026-03-02 16:24:06 +00:00
open-prose build: bump versions to 2026.3.2 2026-03-02 04:55:53 +00:00
phone-control refactor(gateway): harden plugin http route contracts 2026-03-02 16:48:00 +00:00
qwen-portal-auth refactor(extensions): dedupe channel config, onboarding, and monitors 2026-03-02 08:54:20 +00:00
shared fix(acpx): share windows wrapper resolver and add strict hardening mode 2026-03-01 23:57:06 +00:00
signal fix(ci): align strict nullable typing across channels and ui 2026-03-02 09:56:14 +00:00
slack fix(ci): align strict nullable typing across channels and ui 2026-03-02 09:56:14 +00:00
synology-chat fix(synology-chat): resolve Chat API user_id for reply delivery (#23709) 2026-03-02 19:50:58 +00:00
talk-voice Gateway/Plugins: device pairing + phone control plugins (#11755) 2026-02-08 18:07:13 +01:00
telegram fix: add regression tests for telegram token guard (#31973) (thanks @ningding97) 2026-03-02 18:33:49 +00:00
test-utils refactor(extensions): dedupe channel config, onboarding, and monitors 2026-03-02 08:54:20 +00:00
thread-ownership test(extensions): cast fetch mocks to satisfy tsgo 2026-02-16 21:25:35 -05:00
tlon build: bump versions to 2026.3.2 2026-03-02 04:55:53 +00:00
twitch build: bump versions to 2026.3.2 2026-03-02 04:55:53 +00:00
voice-call Tests: isolate webhook path suite and reset cron auth state 2026-03-02 18:57:46 +00:00
whatsapp refactor(extensions): dedupe channel config, onboarding, and monitors 2026-03-02 08:54:20 +00:00
zalo refactor(gateway): harden plugin http route contracts 2026-03-02 16:48:00 +00:00
zalouser fix(tsgo): unblock baseline type errors (#31873) 2026-03-02 10:09:49 -06:00