mirror of
https://github.com/instructkr/claw-code.git
synced 2026-04-07 08:34:49 +08:00
Generic fatal wrapper handling already preserved safe classes and trace ids for single provider failures, but repeated retry exhaustion still surfaced as provider_internal. Classify generic wrapped RetriesExhausted failures as provider_retry_exhausted so Jobdori-style repeat failures stay distinguishable from one-off provider crashes, and keep the display logic clippy-clean. Constraint: Keep the change minimal and preserve existing user-visible error wording outside retry-exhaustion classification Rejected: Broadly rework all provider error taxonomy | unnecessary for the targeted opaque-wrapper regression Confidence: high Scope-risk: narrow Reversibility: clean Directive: Keep retry exhaustion distinct from single-shot provider_internal wrappers when the nested error is the same generic fatal wrapper Tested: cargo test -p api detects_generic_fatal_wrapper_and_classifies_it_as_provider_internal Tested: cargo test -p api retries_exhausted_preserves_nested_request_id_and_failure_class Tested: cargo test -p rusty-claude-cli opaque_provider_wrapper_surfaces_failure_class_session_and_trace Tested: cargo test -p rusty-claude-cli retry_exhaustion_uses_retry_failure_class_for_generic_provider_wrapper Tested: cargo test --workspace Tested: cargo fmt --check Tested: cargo clippy --workspace --all-targets -- -D warnings Not-tested: Live OpenClaw/Anthropic service failure telemetry outside the local test harness