picoclaw/pkg/utils
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
..
download.go feat(fmt): Fix formatting 2026-02-20 20:03:11 +02:00
http_retry.go feat(skills): add retry for HTTP requests in skill installer (#261) 2026-02-26 20:35:26 +11:00
http_retry_test.go feat(skills): add retry for HTTP requests in skill installer (#261) 2026-02-26 20:35:26 +11:00
media.go feat(fmt): Run formatters 2026-02-18 21:48:23 +02:00
message.go refactor(channels): unify message splitting and add per-channel worker queues 2026-02-22 22:46:29 +08:00
message_test.go refactor(channels): unify message splitting and add per-channel worker queues 2026-02-22 22:46:29 +08:00
skills.go Feature: Implement Skill Discovery - With Clawhub Integration and Caching (#332) 2026-02-20 18:55:04 +08:00
string.go test(tools,utils): add ToolRegistry unit tests and fix Truncate panic on negative maxLen (#517) 2026-02-22 21:40:59 +11:00
string_test.go test(tools,utils): add ToolRegistry unit tests and fix Truncate panic on negative maxLen (#517) 2026-02-22 21:40:59 +11:00
zip.go feat(fmt): Fix formatting 2026-02-20 20:03:11 +02:00