feat(channels): add DingTalk channel via Stream Mode

Implement DingTalk messaging channel using the official Stream Mode
WebSocket protocol with per-message session webhook replies.

- Add DingTalkChannel with send/listen/health_check support
- Add DingTalkConfig (client_id, client_secret, allowed_users)
- Integrate with onboard wizard, integrations registry, and channel
  list/doctor commands
- Include unit tests for user allowlist rules and config serialization
This commit is contained in:
elonf 2026-02-17 00:02:05 +08:00
parent c11c569ddd
commit 9463bf08a4
5 changed files with 449 additions and 5 deletions

View file

@ -125,6 +125,18 @@ pub fn all_integrations() -> Vec<IntegrationEntry> {
category: IntegrationCategory::Chat,
status_fn: |_| IntegrationStatus::ComingSoon,
},
IntegrationEntry {
name: "DingTalk",
description: "DingTalk Stream Mode (钉钉)",
category: IntegrationCategory::Chat,
status_fn: |c| {
if c.channels_config.dingtalk.is_some() {
IntegrationStatus::Active
} else {
IntegrationStatus::Available
}
},
},
// ── AI Models ───────────────────────────────────────────
IntegrationEntry {
name: "OpenRouter",