picoclaw/pkg/channels
Hoshina a91de8546c refactor(channels): unify message splitting and add per-channel worker queues
Move message splitting from individual channels (Discord) to the Manager
layer via per-channel worker goroutines. Each channel now declares its
max message length through BaseChannelOption/MessageLengthProvider, and
the Manager automatically splits oversized outbound messages before
dispatch. This prevents one slow channel from blocking all others.

- Add WithMaxMessageLength option and MessageLengthProvider interface
- Set platform-specific limits (Discord 2000, Telegram 4096, Slack 40000, etc.)
- Convert SplitMessage to rune-aware counting for correct Unicode handling
- Replace single dispatcher goroutine with per-channel buffered worker queues
- Remove Discord's internal SplitMessage call (now handled centrally)
2026-02-22 22:46:29 +08:00
..
dingtalk refactor(channels): unify message splitting and add per-channel worker queues 2026-02-22 22:46:29 +08:00
discord refactor(channels): unify message splitting and add per-channel worker queues 2026-02-22 22:46:29 +08:00
feishu refactor(bus,channels): promote peer and messageID from metadata to structured fields 2026-02-22 21:57:12 +08:00
line refactor(channels): unify message splitting and add per-channel worker queues 2026-02-22 22:46:29 +08:00
maixcam refactor(channels): unify Start/Stop lifecycle and fix goroutine/context leaks 2026-02-22 22:25:07 +08:00
onebot refactor(channels): unify Start/Stop lifecycle and fix goroutine/context leaks 2026-02-22 22:25:07 +08:00
qq refactor(bus,channels): promote peer and messageID from metadata to structured fields 2026-02-22 21:57:12 +08:00
slack refactor(channels): unify message splitting and add per-channel worker queues 2026-02-22 22:46:29 +08:00
telegram refactor(channels): unify message splitting and add per-channel worker queues 2026-02-22 22:46:29 +08:00
wecom refactor(channels): unify message splitting and add per-channel worker queues 2026-02-22 22:46:29 +08:00
whatsapp refactor(channels): unify message splitting and add per-channel worker queues 2026-02-22 22:46:29 +08:00
base.go refactor(channels): unify message splitting and add per-channel worker queues 2026-02-22 22:46:29 +08:00
base_test.go style: fix gofmt formatting (CRLF -> LF) 2026-02-14 11:21:47 +09:00
manager.go refactor(channels): unify message splitting and add per-channel worker queues 2026-02-22 22:46:29 +08:00
registry.go refactor(channels): add factory registry and export SetRunning on BaseChannel 2026-02-20 23:18:46 +08:00