Repository navigation
fix(anthropic): retain explicit Fable rejection scope - #1041
Conversation
OpenClaw-Publication: f933df13-1546-8eb0-b7b8-49a9ddae5bc6
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. What this changesThis PR keeps explicit Fable-only rate-limit rejections scoped to the Fable family while preserving eligibility for other Claude models. Example: A subscription request for claude-fable-5-2 receives the recognized named-limit error, healthy shared allowance headers, and Retry-After: 90.
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Complete Merge readiness✅ Ready for maintainer review Keep open: this maintainer-authored PR addresses a source-verifiable routing gap that remains on main; inspection found no concrete introduced bug. Priority: P2 Before mergeNone. FindingsNone. Tests
Agent review detailsHow this fits togetherThe Worker observes upstream responses, records grant quota feedback, and uses existing runtime merging and model-aware selection to admit subsequent requests. flowchart LR
A[Client request] --> B[Grant selection]
B --> C[Anthropic request]
C --> D[Bounded error inspection]
D --> E[Quota feedback]
E --> F[Runtime merge and persistence]
F --> B
Technical reviewBest possible solution: Retain the focused classifier and existing quota owner, then establish the recognized response shape and resulting routing behavior through the production transport boundary. Do we have a high-confidence way to reproduce the issue? Main demonstrably applies account-wide cooldown to the constructed named-error case without explicit model-window headers; occurrence of that exact native upstream envelope remains unconfirmed. Is this the best way to solve the issue? The patch uses the existing bounded inspector, model-scoped windows, persistence, and retry loop, with no definite correctness defect found. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 1f12686c1448. Provenance checked
TestingProof path: in-process harness. SecurityNone. EvidenceWhat I checked:
Likely related people:
Preflight sourceSource unknown. Source comparison at the observed PR snapshot only. Completion is self-reported; body, policy, tests, execution, and report bytes are not verified. LabelsLabel changes:
Label justifications:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment Reviewed November 13, 2026, 1:03 PM ET / 18:03 UTC. |
Summary
Evidence and provenance
The reproduced defect is sibling-model exclusion after an explicit Fable refusal; attribution to the historical c5f058aa incident remains unproven.
The refusal wording comes from Magpie commit 82512bb64052e816a5003df67a795636d8c4f31e, internal/gateway/claude_model_limit_rest_test.go lines 10–27: a reported Claude Code refusal originally attributed there to YsiCing. The JSON envelope in this regression is test-constructed, NOT a captured direct Anthropic HTTP response. Anthropic's official Fable plan documentation establishes the shared Fable 5/5.1/5.2 allowance within general weekly usage, not the fixture's wire origin.
Verification
Deployment status / remaining risk
Not deployed; no service restart, credential/pool mutation, or production inference probe. This intentionally narrow recognition does not classify generic 429s or clear ambiguous independent account cooldowns. Fixture provenance and unproven historical incident linkage are explicit limitations.