From 9db44837229a434a52c5b93051dddcd916a5358e Mon Sep 17 00:00:00 2001 From: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com> Date: Thu, 10 Sep 2026 11:29:23 -0300 Subject: [PATCH] fix(ci): clear the open-sse typecheck base-red on release/v3.8.51 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #12731 added the "Mode pack ranking gates (cold/warm/health)" block to open-sse/services/autoCombo/__tests__/autoCombo.test.ts with seven ProviderCandidate literals that omit three required fields (provider, model, errorRate). check:open-sse-typecheck reports them as 'TS2739 (baseline 0, live 7)', which fails Fast Quality Gates on the tip and therefore on every open PR. The fields are filled with neutral values that preserve each case's intent: provider/model are identical across every candidate (so classifyTier cannot skew a comparison), and errorRate is 0 — which is only read when failureRate is absent, i.e. the two 'cold pool' candidates the test itself describes as 'reliability 1'. Validation: npm run check:open-sse-typecheck goes from 'FAIL - 1 new/regressed error' to 'OK - 0 pre-existing error(s)'. The suite itself does not execute in CI: vitest.config.ts excludes this file (#8618), so typecheck is its only gate. Refs #12732 --- ...000-basered-autocombo-providercandidate.md | 1 + .../autoCombo/__tests__/autoCombo.test.ts | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 changelog.d/maintenance/0000-basered-autocombo-providercandidate.md diff --git a/changelog.d/maintenance/0000-basered-autocombo-providercandidate.md b/changelog.d/maintenance/0000-basered-autocombo-providercandidate.md new file mode 100644 index 0000000000..11a9ad3b6d --- /dev/null +++ b/changelog.d/maintenance/0000-basered-autocombo-providercandidate.md @@ -0,0 +1 @@ +- Clear the `release/v3.8.51` typecheck base-red from #12731: the new `Mode pack ranking gates` candidates in `open-sse/services/autoCombo/__tests__/autoCombo.test.ts` omitted the required `provider`, `model` and `errorRate` fields of `ProviderCandidate`, failing `check:open-sse-typecheck` (and with it `Fast Quality Gates`) on every open PR. diff --git a/open-sse/services/autoCombo/__tests__/autoCombo.test.ts b/open-sse/services/autoCombo/__tests__/autoCombo.test.ts index e1821c002f..40eab61e00 100644 --- a/open-sse/services/autoCombo/__tests__/autoCombo.test.ts +++ b/open-sse/services/autoCombo/__tests__/autoCombo.test.ts @@ -261,8 +261,11 @@ describe("Mode pack ranking gates (cold/warm/health)", () => { } it("cold pool ranking unchanged (reliability 1, quality 0.5 neutrals)", () => { const a: ProviderCandidate = { + provider: "test-provider", + model: "test-model", circuitBreakerState: "CLOSED", failureRate: undefined, + errorRate: 0, quality: undefined, quotaRemaining: 50, quotaTotal: 100, @@ -272,8 +275,11 @@ describe("Mode pack ranking gates (cold/warm/health)", () => { latencyStdDev: 10, }; const b: ProviderCandidate = { + provider: "test-provider", + model: "test-model", circuitBreakerState: "CLOSED", failureRate: undefined, + errorRate: 0, quality: undefined, quotaRemaining: 50, quotaTotal: 100, @@ -287,8 +293,11 @@ describe("Mode pack ranking gates (cold/warm/health)", () => { }); it("warm reliability 0.01 vs 0.4 flips winner at health tie", () => { const highFail: ProviderCandidate = { + provider: "test-provider", + model: "test-model", circuitBreakerState: "CLOSED", failureRate: 0.4, + errorRate: 0, quality: 0.5, quotaRemaining: 50, quotaTotal: 100, @@ -298,8 +307,11 @@ describe("Mode pack ranking gates (cold/warm/health)", () => { latencyStdDev: 10, }; const lowFail: ProviderCandidate = { + provider: "test-provider", + model: "test-model", circuitBreakerState: "CLOSED", failureRate: 0.01, + errorRate: 0, quality: 0.5, quotaRemaining: 50, quotaTotal: 100, @@ -313,8 +325,11 @@ describe("Mode pack ranking gates (cold/warm/health)", () => { }); it("boundedRate NaN yields reliability 1", () => { const c: ProviderCandidate = { + provider: "test-provider", + model: "test-model", circuitBreakerState: "CLOSED", failureRate: NaN, + errorRate: 0, quotaRemaining: 50, quotaTotal: 100, costPer1MTokens: 1, @@ -327,8 +342,11 @@ describe("Mode pack ranking gates (cold/warm/health)", () => { }); it("health CLOSED vs HALF_OPEN still outweighs reliability gap", () => { const healthyHighFail: ProviderCandidate = { + provider: "test-provider", + model: "test-model", circuitBreakerState: "CLOSED", failureRate: 0.4, + errorRate: 0, quality: 0.5, quotaRemaining: 50, quotaTotal: 100, @@ -338,8 +356,11 @@ describe("Mode pack ranking gates (cold/warm/health)", () => { latencyStdDev: 10, }; const halfOpenLowFail: ProviderCandidate = { + provider: "test-provider", + model: "test-model", circuitBreakerState: "HALF_OPEN", failureRate: 0.01, + errorRate: 0, quality: 0.5, quotaRemaining: 50, quotaTotal: 100,