fix: detect rate-limit and billing errors in text parts for fallback
classifyErrorType only classified missing_api_key and model_not_found, so when opencode didn't populate info.error on message.updated events (which happens for FreeUsageLimitError and Insufficient balance), the text-scanning fallback path missed them.
classifyErrorTypenow checksRETRYABLE_ERROR_PATTERNS→ returns"rate_limit"detectErrorInTextPartsdirectly checksRETRYABLE_ERROR_PATTERNSas a last resort