mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-05-19 16:12:30 +00:00
Reference hermes-agent#17228 / #18100 / PR#18105. iLink returns ret=-2 / errcode=-2 for two different reasons: - stale context_token: errmsg is empty/None or "unknown error" - genuine rate limit: errmsg is populated (e.g. "frequency limit") Previously we swallowed all ret=-2 responses, which caused silent message drops when the context_token was stale. Changes: - Add _is_stale_session_ret() to detect empty/"unknown error" errmsg - _send_text/_send_media_file retry once without context_token on stale session signal, then raise on persistent failure so ChannelManager can retry with backoff - Remove error-swallowing behavior - Update tests to expect raises and add TestIsStaleSessionRet coverage