it0/packages
hailin db0e1f1439 fix(dingtalk): robustness pass — 5 bugs fixed, stability 10/10
Critical fixes:
- ws.on('message') fully wrapped in try/catch — uncaught exception in
  wsSend() no longer propagates to EventEmitter boundary and crashes process
- wsSend() helper: checks readyState === OPEN before send(), never throws
- Stale-WS guard: close/message events from old WS ignored after reconnect
  (ws !== this.ws check); terminateCurrentWs() closes old WS before new one
- Queue tail: .catch(() => {}) appended to guarantee promise always resolves,
  preventing permanently dead queue tail from silently dropping future tasks
- DISCONNECT frame handler: force-close + reconnect immediately

High fixes:
- sessionWebhookExpiredTime unit auto-detection: values < 1e11 treated as
  seconds (×1000), values >= 1e11 treated as ms — prevents always-blocked reply
- httpsPost response capped at 256 KB to prevent memory spike on bad response

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 08:22:08 -07:00
..
gateway feat(notification): 完整站内消息推送体系 (Phase 1-4) 2026-03-07 22:33:40 -08:00
openclaw-bridge fix(openclaw-bridge): use regex replace for base64url (ES2020 compat) 2026-03-08 07:40:56 -07:00
services fix(dingtalk): robustness pass — 5 bugs fixed, stability 10/10 2026-03-08 08:22:08 -07:00
shared feat(dingtalk): unified DingTalk bot router with binding flow 2026-03-08 08:12:27 -07:00