Summary
Recover the WeCom / WxWork AI Bot WebSocket long-connection channel work from #3305 as a separate wecom_ws channel, distinct from both the existing WeCom Bot Webhook channel and the WeChat personal iLink Bot channel.
Problem statement
ZeroClaw now has partial WeCom support:
The remaining gap is native WeCom AI Bot WebSocket mode for inbound chat handling and active-session delivery.
Proposed solution
Port or reimplement the useful parts of #3305 against current master as a focused wecom_ws channel.
The recovered scope should include, if still appropriate:
- optional
wecom_ws channel/config identity, separate from webhook-based wecom
- WebSocket long-connection runtime
- inbound chat handling
- progressive/streaming reply behavior
- allowlists for users/groups
- attachment download/decrypt handling
- proactive send support through the active connected channel session
- docs explaining the distinction between
wecom webhook mode and wecom_ws AI Bot WebSocket mode
Non-goals / out of scope
Alternatives considered
Keep #3090 as the only tracker. That works, but a separate issue is clearer because #3090 now covers both an already-landed webhook path and a remaining WebSocket path.
Acceptance criteria
wecom webhook support remains unchanged.
- A distinct
wecom_ws channel can receive inbound WeCom AI Bot WebSocket messages.
- The channel can send replies through the active WebSocket session.
- Access control is documented and covered by tests.
- Docs clearly distinguish WeCom Bot Webhook, WeCom AI Bot WebSocket, and WeChat personal iLink Bot.
Architecture impact
crates/zeroclaw-channels/, crates/zeroclaw-config/, channel orchestrator wiring, docs, and possibly scheduler/proactive delivery plumbing.
Risk and rollback
Medium. This adds a new optional enterprise channel with WebSocket traffic, credentials/secrets, attachment handling, and active-session delivery behavior. Rollback should be removing/disabling [channels.wecom_ws] or reverting the feature PR.
Breaking change?
No
Data hygiene checks
Summary
Recover the WeCom / WxWork AI Bot WebSocket long-connection channel work from #3305 as a separate
wecom_wschannel, distinct from both the existing WeCom Bot Webhook channel and the WeChat personal iLink Bot channel.Problem statement
ZeroClaw now has partial WeCom support:
wecom, the WeCom Bot Webhook channel. This is useful for outbound/send-only bot webhook delivery.wecom_ws, but that PR was closed unmerged.The remaining gap is native WeCom AI Bot WebSocket mode for inbound chat handling and active-session delivery.
Proposed solution
Port or reimplement the useful parts of #3305 against current
masteras a focusedwecom_wschannel.The recovered scope should include, if still appropriate:
wecom_wschannel/config identity, separate from webhook-basedwecomwecomwebhook mode andwecom_wsAI Bot WebSocket modeNon-goals / out of scope
wecomBot Webhook channel from feat(channel): add WeCom Bot Webhook channel #3439.Alternatives considered
Keep #3090 as the only tracker. That works, but a separate issue is clearer because #3090 now covers both an already-landed webhook path and a remaining WebSocket path.
Acceptance criteria
wecomwebhook support remains unchanged.wecom_wschannel can receive inbound WeCom AI Bot WebSocket messages.Architecture impact
crates/zeroclaw-channels/,crates/zeroclaw-config/, channel orchestrator wiring, docs, and possibly scheduler/proactive delivery plumbing.Risk and rollback
Medium. This adds a new optional enterprise channel with WebSocket traffic, credentials/secrets, attachment handling, and active-session delivery behavior. Rollback should be removing/disabling
[channels.wecom_ws]or reverting the feature PR.Breaking change?
No
Data hygiene checks