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 |
||
|---|---|---|
| .. | ||
| agent | ||
| auth | ||
| bus | ||
| channels | ||
| config | ||
| constants | ||
| cron | ||
| devices | ||
| health | ||
| heartbeat | ||
| logger | ||
| media | ||
| migrate | ||
| providers | ||
| routing | ||
| session | ||
| skills | ||
| state | ||
| tools | ||
| utils | ||
| voice | ||