picoclaw/pkg/channels
Hoshina 38a26d702c refactor(channels): add per-channel rate limiting and send retry with error classification
Define sentinel error types (ErrNotRunning, ErrRateLimit, ErrTemporary,
ErrSendFailed) so the Manager can classify Send failures and choose the
right retry strategy: permanent errors bail immediately, rate-limit
errors use a fixed 1s delay, and temporary/unknown errors use exponential
backoff (500ms→1s→2s, capped at 8s, up to 3 retries). A per-channel
token-bucket rate limiter (golang.org/x/time/rate) throttles outbound
sends before they hit the platform API.
2026-02-22 23:51:55 +08:00
..
dingtalk refactor(channels): unify message splitting and add per-channel worker queues 2026-02-22 22:46:29 +08:00
discord refactor(media): add MediaStore for unified media file lifecycle management 2026-02-22 23:27:55 +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(media): add MediaStore for unified media file lifecycle management 2026-02-22 23:27:55 +08:00
maixcam refactor(channels): unify Start/Stop lifecycle and fix goroutine/context leaks 2026-02-22 22:25:07 +08:00
onebot refactor(media): add MediaStore for unified media file lifecycle management 2026-02-22 23:27:55 +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(media): add MediaStore for unified media file lifecycle management 2026-02-22 23:27:55 +08:00
telegram refactor(media): add MediaStore for unified media file lifecycle management 2026-02-22 23:27:55 +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(media): add MediaStore for unified media file lifecycle management 2026-02-22 23:27:55 +08:00
base_test.go style: fix gofmt formatting (CRLF -> LF) 2026-02-14 11:21:47 +09:00
errors.go refactor(channels): add per-channel rate limiting and send retry with error classification 2026-02-22 23:51:55 +08:00
errors_test.go refactor(channels): add per-channel rate limiting and send retry with error classification 2026-02-22 23:51:55 +08:00
manager.go refactor(channels): add per-channel rate limiting and send retry with error classification 2026-02-22 23:51:55 +08:00
manager_test.go refactor(channels): add per-channel rate limiting and send retry with error classification 2026-02-22 23:51:55 +08:00
registry.go refactor(channels): add factory registry and export SetRunning on BaseChannel 2026-02-20 23:18:46 +08:00