picoclaw/pkg/channels
Hoshina d72c9c1ee6 refactor(channels): standardize Send error classification with sentinel types
All 12 channel Send methods now return proper sentinel errors (ErrNotRunning,
ErrTemporary, ErrRateLimit, ErrSendFailed) instead of plain fmt.Errorf strings,
enabling Manager's sendWithRetry classification logic to actually work.

- Add ClassifySendError/ClassifyNetError helpers in errutil.go for HTTP-based channels
- LINE/WeCom Bot/WeCom App: use ClassifySendError for HTTP status-based classification
- SDK channels (Telegram/Discord/Slack/QQ/DingTalk/Feishu): wrap errors as ErrTemporary
- WebSocket channels (OneBot/WhatsApp/MaixCam): wrap write errors as ErrTemporary
- WhatsApp: add missing IsRunning() check in Send
- WhatsApp/OneBot/MaixCam: add ctx.Done() check before entering write path
- Telegram Stop: clean up placeholders sync.Map to prevent state leaks
2026-02-23 01:45:48 +08:00
..
dingtalk refactor(channels): standardize Send error classification with sentinel types 2026-02-23 01:45:48 +08:00
discord refactor(channels): standardize Send error classification with sentinel types 2026-02-23 01:45:48 +08:00
feishu refactor(channels): standardize Send error classification with sentinel types 2026-02-23 01:45:48 +08:00
line refactor(channels): standardize Send error classification with sentinel types 2026-02-23 01:45:48 +08:00
maixcam refactor(channels): standardize Send error classification with sentinel types 2026-02-23 01:45:48 +08:00
onebot refactor(channels): standardize Send error classification with sentinel types 2026-02-23 01:45:48 +08:00
qq refactor(channels): standardize Send error classification with sentinel types 2026-02-23 01:45:48 +08:00
slack refactor(channels): standardize Send error classification with sentinel types 2026-02-23 01:45:48 +08:00
telegram refactor(channels): standardize Send error classification with sentinel types 2026-02-23 01:45:48 +08:00
wecom refactor(channels): standardize Send error classification with sentinel types 2026-02-23 01:45:48 +08:00
whatsapp refactor(channels): standardize Send error classification with sentinel types 2026-02-23 01:45:48 +08:00
base.go refactor(bus): fix deadlock and concurrency issues in MessageBus 2026-02-23 00:44:45 +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
errutil.go refactor(channels): standardize Send error classification with sentinel types 2026-02-23 01:45:48 +08:00
errutil_test.go refactor(channels): standardize Send error classification with sentinel types 2026-02-23 01:45:48 +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