Repository navigation
fix(sse): cover opencode-zen with the egress-IP lockout and feed body-text rules - #16797
Merged
diegosouzapw merged 8 commits intoOct 18, 2026
Conversation
maxmad64bis
force-pushed
the
fix/opencode-zen-missing-egress-bucket
branch
from
October 15, 2026 23:32
1e3692c to
4b12774
Compare
…-text rules document the 4-member egress-IP lockout default in the env example, the reference and its 66 locale mirrors
maxmad64bis
force-pushed
the
fix/opencode-zen-missing-egress-bucket
branch
from
October 16, 2026 15:23
4b12774 to
a68dc9b
Compare
This was referenced Oct 16, 2026
Merged
Merged
maxmad64bis
marked this pull request as ready for review
October 16, 2026 17:43
…restore tip defaults Conflicts in providerErrorRules.ts, four egress/rule tests and .i18n-state.json resolved to the release tip: cheaper-inference#16310 already dropped opencode from the egress default set, and the opencode-zen / full-text widenings are re-applied behind default-off feature flags in the follow-up commits so the default path stays byte-identical to the tip.
…gress-IP lockout opencode-zen joins the default egress-IP lock family only when the new default-off flag is on (and OMNIROUTE_EGRESS_IP_LOCK_PROVIDERS is unset, an explicit value still wins). The flag is read per call through a reader that accountFallback.ts injects, so providerErrorRules.ts gains no src/ import and fails closed to the release default. Flag off: every Zen connection keeps cooling down on its own, exactly as on the release tip.
…de body-text rules The opencode catalog rules (organization_quota_exceeded, monthly usage limit reached, endpoint is unavailable, ...) match on body text the stripped structured error never carries, so they cannot fire through checkFallbackError today. Letting them see the full text reclassifies such a 429 as quota exhausted with a connection-scoped lock, a cooldown/lockout change, so it is gated behind a default-off flag read through the injected reader. Flag off: the opencode family keeps the structured body, as on the tip.
…he neuron-allocation rule The cloudflare-ai catalog rule matches the 429 "daily free allocation" body, which the structured error never carries, so it cannot fire through checkFallbackError today. Letting it see the full text reclassifies that 429 from a short rate limit to quota exhausted, so it gets its own default-off flag. Also rewrites the cheaper-inference#16797 changelog fragment to describe the opt-in flags.
…s flag on and off
# Conflicts: # docs/reference/FEATURE_FLAGS.md # tests/unit/feature-flags-settings.test.ts # tests/unit/server-owned-tool-loop-flag.test.ts
diegosouzapw
merged commit Oct 18, 2026
ce7da47
into
cheaper-inference:release/v3.8.52
1 of 3 checks passed
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
opencode-zen now joins the egress-IP lockout by default (opencode, opencode-go and opencode-cli before; the four family members now), so a quota 429 cools the accounts on that address instead of letting zen re-serve a failed egress, and paid setups keep the OMNIROUTE_EGRESS_IP_LOCK_PROVIDERS=none escape. Body-text error rules also reach the opencode family and cloudflare-ai now, so a monthly-quota or daily-allocation 429 reports quota_exhausted with its announced cooldown instead of a generic short rate_limit. Users saw repeated retries against an exhausted quota; now the verdict and its scope match what the catalog rules declare.
Related Issues
Target Branch
release/v3.8.xbranch (the highest openrelease/v*), notmainv4-featurelabel for the v4 channelValidation
npm run lintTests Added Or Updated
Coverage Notes
Reviewer Notes