openclaw/extensions
Jean-Marc b52561bfa3
fix(synology-chat): prevent restart loop in startAccount (#23074)
* fix(synology-chat): prevent restart loop in startAccount

startAccount must return a Promise that stays pending while the channel
is running. The gateway wraps the return value in Promise.resolve(), and
when it resolves, the gateway thinks the channel crashed and auto-restarts
with exponential backoff (5s → 10s → 20s..., up to 10 attempts).

Replace the synchronous { stop } return with a Promise<void> that resolves
only when ctx.abortSignal fires, keeping the channel alive until shutdown.

Tested on Synology DS923+ with DSM 7.2 — single startup, no restart loop.

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

* fix(synology-chat): add type guards for startAccount return value

startAccount returns `void | { stop: () => void }` — TypeScript requires
a type guard before accessing .stop on the union type. Added proper checks
in both integration and unit tests.

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: stabilize synology gateway account lifecycle (#23074) (thanks @druide67)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-03-02 20:06:16 +00:00
..
acpx refactor: dedupe extension and ui helpers 2026-03-02 19:57:33 +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 refactor: harden outbound, matrix bootstrap, and plugin entry resolution 2026-03-02 19:55:09 +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): prevent restart loop in startAccount (#23074) 2026-03-02 20:06:16 +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