claw-code/rust/crates
YeonGyu-Kim ff416ff3e7 fix(api): surface provider error body before attempting completion parse
When a local/proxy OpenAI-compatible backend returns an error object:
  {"error":{"message":"...","type":"...","code":...}}

claw was trying to deserialize it as a ChatCompletionResponse and
failing with the cryptic 'failed to parse OpenAI response: missing
field id', completely hiding the actual backend error message.

Fix: before full deserialization, check if the parsed JSON has an
'error' key and promote it directly to ApiError::Api so the user
sees the real error (e.g. 'The number of tokens to keep from the
initial prompt is greater than the context length').

Source: devilayu in #claw-code 2026-04-09 — local LM Studio context
limit error was invisible; user saw 'missing field id' instead.
159 CLI + 115 api tests pass. Fmt clean.
2026-04-09 22:33:07 +09:00
..
api fix(api): surface provider error body before attempting completion parse 2026-04-09 22:33:07 +09:00
commands fix(cli): wire /tokens and /cache as aliases for /stats; implement /stats 2026-04-09 21:34:36 +09:00
compat-harness wip: plugins progress 2026-04-01 07:09:06 +00:00
mock-anthropic-service feat(harness+usage): add auto_compact and token_cost parity scenarios 2026-04-03 22:41:42 +09:00
plugins fix(plugins): chmod +x generated hook scripts + tolerate BrokenPipe in stdin write — closes ROADMAP #25 hotfix lane 2026-04-08 15:48:20 +09:00
runtime feat(cli): wire --reasoning-effort flag end-to-end — closes ROADMAP #34 2026-04-09 11:08:00 +09:00
rusty-claude-cli fix(cli): emit JSON for /config in --output-format json --resume mode 2026-04-09 22:03:11 +09:00
telemetry feat: anthropic SDK header matching + request profile 2026-04-01 05:55:25 +00:00
tools fix(tools): serialize web_search env-var tests with env_lock to prevent race 2026-04-08 18:34:06 +09:00