fix(runtime): preserve billing classification in durable diagnostics - #4765
Open
jiang1997 wants to merge 1 commit into
Open
fix(runtime): preserve billing classification in durable diagnostics#4765jiang1997 wants to merge 1 commit into
jiang1997 wants to merge 1 commit into
Conversation
Generated-by: Codex
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Keep durable provider diagnostics consistent with the runtime's canonical
provider-error classification.
classifyProviderFacts()already recognizes billing failures from structuredprovider codes such as
insufficient_quotaandinsufficient_balance, as wellas explicit plan-limit wording behind HTTP 401/403 responses. However,
durableProviderErrorClass()subsequently remapped those failures from theirHTTP status alone:
AuthRateLimitAs a result, the runtime could report
ProviderBillingwhile Usage and Tracepersisted a different error class for the same provider failure.
This change treats the upstream
ProviderBillingclassification asauthoritative, matching the existing handling of
ContextLengthandProviderCapacity. Regression assertions cover structured billing codesbehind HTTP 401/403/429 and plan-limit wording behind HTTP 401/403.
Verification
Passed:
npm --workspace @maka/runtime run buildnode --test packages/runtime/dist/__tests__/provider-error-classification.test.js packages/runtime/dist/__tests__/model-adapter.test.jsnpm --workspace @maka/runtime run typechecknpx biome format packages/runtime/src/provider-error-classification.ts packages/runtime/src/__tests__/provider-error-classification.test.tsnpx biome lint packages/runtime/src/provider-error-classification.ts packages/runtime/src/__tests__/provider-error-classification.test.tsgit diff --checkThe full Runtime suite was also attempted locally. Five unrelated
filesystem-worker-smoketests could not start the worker because the macOSsandbox blocked the Nix Node binary from loading
libz.dylib; the remaining3,218 tests passed.
AI use
Select exactly one:
Tool(s) and scope:
Codex reviewed the provider classification paths, identified the inconsistent
durable remapping, implemented the focused fix, added regression assertions,
and ran the reported verification commands.
Checklist
Does this PR entail a change in behavior?