fix(sse): use applied egress key for pool-served proxyless accounts - #14750
Merged
diegosouzapw merged 1 commit intoSep 25, 2026
Merged
diegosouzapw merged 1 commit into
diegosouzapw merged 1 commit into
Conversation
maxmad64bis
force-pushed
the
fix/applied-egress-key
branch
2 times, most recently
from
September 24, 2026 13:35
eb72cfb to
8dacb72
Compare
maxmad64bis
marked this pull request as ready for review
September 24, 2026 13:46
This was referenced Sep 24, 2026
maxmad64bis
marked this pull request as draft
September 24, 2026 23:41
maxmad64bis
force-pushed
the
fix/applied-egress-key
branch
from
September 25, 2026 00:32
8dacb72 to
df12102
Compare
maxmad64bis
force-pushed
the
fix/applied-egress-key
branch
from
September 25, 2026 00:50
df12102 to
f42cb07
Compare
maxmad64bis
marked this pull request as ready for review
September 25, 2026 00:52
diegosouzapw
merged commit Sep 25, 2026
0d7e945
into
diegosouzapw:release/v3.8.51
19 of 25 checks passed
3 tasks
diegosouzapw
pushed a commit
that referenced
this pull request
Sep 25, 2026
) Maintainer rework: reconciled with release/v3.8.51 after #14750/#14795/#14810/#14659 — migration 192 now follows 190/191 with no gap, the call_logs INSERT carries has_content/usage_provenance + added_wait_ms/added_wait_cause + the optional resilience_actions column and the #14474 id-collision retry, attempt logging keeps the fresh-UUID row key and reads the added wait late, opencode keeps both the served-account tracker and the park/throttle added-wait counters, the unused getAddedWaitPercentiles was dropped, and file-size-baseline.json was rebuilt from the tip with only this PR's own ceilings (opencode.ts, proxyFetch.ts, core.ts, RequestLoggerDetail.tsx) instead of rewinding unrelated entries. Tests: 133/133 focused (opencode-added-wait, applied-egress-key, egress-throttle, attempt-logging, call-log persistence/id-collision/provenance, resilience-actions); typecheck:core and check:open-sse-typecheck clean; check-file-size and check-migration-numbering OK. opencode-429-park-resume / opencode-429-pool-reselect fail identically on the pure release tip (inherited, not from this PR). Thank you @maxmad64bis!
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
Proxyless accounts served through a shared connection pool retry through the wrong egress path: the rotation keys retries by account fingerprint instead of the egress address the pool actually served, so per-address throttle and set-aside memory never match on retry. The applied egress key (the address the pool served) is now threaded through rotation, throttle and park/resume, so retries hit the same throttle slot and refusal memory as the first attempt. Flag-off behavior is byte-identical.
Related Issues
No linked issue — pool-served proxyless egress keying has no prior ticket.
Validation
npm run lintTests Added Or Updated
tests/unit/opencode-applied-egress-key.test.ts(new, 10 tests): semaphore isolation per key, set-aside drain with fallback, dedicated-proxy byte-identical keys, park replay legs, cooldown handling; 10/10 green on the rebuilt head.Coverage Notes
Reviewer Notes
fix/request-added-wait) sits on top — merge this PR first, then the child.// prettier-ignoreis removed; the helper lives inopencodeEgressThrottle.tsunder its cap.