Files
oh-my-opencode/src/features/background-agent
cailgarrisk-collab 61d2f1195b fix(model-fallback): add HTTP statusCode check for GLM rate limit fallback
isRetryableModelError() now checks the HTTP status code (429/503/529)
in addition to existing message pattern matching. This ensures rate
limit errors trigger model fallback regardless of error message format
or language (e.g., Chinese GLM errors).

Changes:
- ErrorInfo interface extended with statusCode?: number
- isRetryableModelError() checks statusCode after STOP patterns, before
  message pattern fallback
- extractErrorStatusCode() added to error-classifier.ts (supports
  statusCode, status, code, response.status fields)
- GLM-specific STOP patterns added: daily call limit, in arrears,
  fair use policy, recharge and try — these prevent quota/billing 429s
  from being treated as transient rate limits
- statusCode propagated through tryFallbackRetry and manager.ts

400 intentionally excluded from statusCode check (permanent client error).
2026-05-03 11:59:13 +02:00
..