fix(auto-combo): surface strict zero-cost exclusion diagnosis in pool log - #14656
Merged
diegosouzapw merged 4 commits intoSep 25, 2026
Merged
diegosouzapw merged 4 commits into
diegosouzapw merged 4 commits into
Conversation
maxmad64bis
force-pushed
the
fix/strict-zero-cost-diagnosis
branch
from
September 23, 2026 14:54
fa8918e to
74a3c85
Compare
maxmad64bis
marked this pull request as ready for review
September 23, 2026 15:09
Owner
|
Nice diagnosis-carrying refactor — keeping |
# Conflicts: # open-sse/services/autoCombo/strictZeroCostFilter.ts # open-sse/services/autoCombo/virtualFactory.ts
4 of 5 tasks
# Conflicts: # open-sse/services/autoCombo/virtualFactory.ts
diegosouzapw
merged commit Sep 25, 2026
47e1173
into
diegosouzapw:release/v3.8.51
5 of 7 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
When the operator turns on strict zero-cost routing, candidates excluded for lack of a documented hard stop disappear from the pool with only a count in the server log. This change surfaces that exclusion diagnosis (
excluded/no-hard-stopshare) through the same{ pool, diagnosis }shape the paid-only filter already returns, so tooling can report why a pool shrank. Routing is unchanged: the same candidates are kept or dropped, and the log line keeps its exact text.Related Issues
No linked issue — diagnostic surfacing for an opt-in routing guard with no prior report.
Validation
npm run lint— ESLint on the touched files is clean; the full run is red on the base (🔴 Release branch not green: release/v3.8.51 #14547)Tests Added Or Updated
tests/unit/autoCombo/strict-zero-cost-diagnosis.test.ts(new, 4 cases: diagnosis values, identity when disabled, identity when nothing excluded, deep-equal content when excluded).Coverage Notes
open-sse/services/autoCombo/strictZeroCostFilter.ts(newWithDiagnosisvariant plus delegating wrapper) andopen-sse/services/autoCombo/virtualFactory.ts(callsite hunk only): covered by the new test plus the existingstrict-zero-cost-filter,strict-zero-cost-connection-safety, andpaid-model-filter-6512suites (37 tests green together). No coverage movement expected outside the new branch.Reviewer Notes
strict.diagnosis?.excluded/strict.diagnosis?.noHardStop), the format string is untouched. Verified pre-existing reds only:typecheck:corereports one error in an untouched file (cliproxyAccountHealth.ts:157, identical on the bare base) andcheck:env-doc-syncfails identically on the bare base.auggie.ts,projectCombo.ts, emptygit diff $mbon both). The same 4 lines fail on tierce fix(proxies): rank pool members sharing a refused egress address last #14657 at the same base, so inherited and non-blocking (§12 voie courte, base-red 🔴 Release branch not green: release/v3.8.51 #14547).Maintainer rework (merge-batch 2026-09-24)
release/v3.8.51into the branch (real merge, your commit kept). The release tip had since added atraceInvocationIdparameter tofilterStrictZeroCostCandidates(per-candidate exclusion tracing viarecordAutoExclusion), which conflicted instrictZeroCostFilter.tsandvirtualFactory.ts. Resolved by threadingtraceInvocationIdthroughfilterStrictZeroCostCandidatesWithDiagnosis, having the legacy wrapper forward it, and passing it fromvirtualFactory.ts, so both the tracing and the diagnosis survive. The longwarnPoolDropline was Prettier-reflowed;virtualFactory.tsstays under its frozen ceiling.tests/unit/autoCombo/strict-zero-cost-diagnosis.test.ts): withopen-sse/services/autoCombo/reverted to the release tip, 4/4 fail; with this PR 4/4 pass.typecheck:coreclean,check:open-sse-typecheck0 errors, eslint clean,check-file-sizeOK.warnPoolDrop("STRICT", ...)call site (it adds the exhausted/state-unknown split through adescribeStrictExclusions()helper), so whichever lands second needs a small conflict resolution there.