chore(release): clear release/v3.8.51 base-red gates — docs count, stryker list, lockfile host, stale suppressions, 7 lint regressions (#11502)

Validated in a combined 4-PR batch worktree off release/v3.8.51 tip.
- Every fix individually confirmed against the pristine tip, no runtime behavior change
- typecheck:core, file-size, changelog-integrity, complexity, cognitive-complexity, check:cycles — all OK
- Full-repo lint: 503 → 228 problems, confirming this PR's diagnosis of the exit-2 stale-suppressions + orphaned-code causes; the remaining 228 are pre-existing dashboard react-hooks/* findings this PR never claimed to touch
- node --test tests/unit/combo-routing-engine.test.ts, providers-constants-split.test.ts, and the providerLimits/videoBridge importers — all pass as part of the batch's 246/246 node:test run

Thanks for the meticulous base-red triage — this directly explains and fixes the largest lint-drift finding from the prior merge-batch session.
This commit is contained in:
MumuTW
2026-08-26 00:51:18 +08:00
committed by GitHub
parent 28601b456e
commit 17e4ddfc77
56 changed files with 169 additions and 145 deletions

View File

@@ -16,9 +16,8 @@ const {
handleComboChat,
} = await import("../../open-sse/services/combo.ts");
const { resolveComboTargets } = await import("../../open-sse/services/combo/comboStructure.ts");
const { getComboFailureCount, __resetComboFailureTrackerForTests } = await import(
"../../open-sse/services/combo/failureTracker.ts"
);
const { getComboFailureCount, __resetComboFailureTrackerForTests } =
await import("../../open-sse/services/combo/failureTracker.ts");
const { applyPromptCacheAffinity } =
await import("../../open-sse/services/combo/promptCacheAffinity.ts");
const { resolveReasoningBufferedMaxTokens } =
@@ -1351,11 +1350,10 @@ test("#11408 guard: no-executable-targets early exit still records the combo fai
retryDelayMs: 1,
},
},
relayOptions: { sessionId: "sess-guard-11408" } as any,
relayOptions: { sessionId: "sess-guard-11408" },
allCombos: null,
});
const payload = (await result.json()) as any;
assert.equal(result.status, 404);
// The quota-share slot release must not replace the #5923 silent-stop
// bookkeeping: the consecutive-failure counter must still advance so the

View File

@@ -27,6 +27,7 @@
// (gateways, #10531) brings it to 232. #8864 moves uncloseai (gateways family) into
// NOAUTH_PROVIDERS, dropping the APIKEY_PROVIDERS count to 231. Logfare (gateways, #10987) brings it back to 232.
// #11176 removes hackclub (gateways family), landing at 231.
// #11434 adds volcengine-agent-plan and volcengine-coding-plan (regional family), landing at 233.
import { test } from "node:test";
import assert from "node:assert/strict";
@@ -55,12 +56,12 @@ test("barrel still exports every catalog + key helpers", () => {
}
});
test("APIKEY_PROVIDERS merges the 6 family files into 231 entries (no loss / no dup)", async () => {
test("APIKEY_PROVIDERS merges the 6 family files into 233 entries (no loss / no dup)", async () => {
const keys = Object.keys((P as Record<string, object>).APIKEY_PROVIDERS);
assert.equal(keys.length, 231);
assert.equal(new Set(keys).size, 231, "duplicate keys after spread-merge");
assert.equal(keys.length, 233);
assert.equal(new Set(keys).size, 233, "duplicate keys after spread-merge");
// the merged object's entry-count equals the sum of the 6 semantic family files; families are a
// strict partition (every provider in exactly one), so the sum must be exactly 231.
// strict partition (every provider in exactly one), so the sum must be exactly 233.
const families: [string, string][] = [
["gateways", "APIKEY_PROVIDERS_GATEWAYS"],
["frontier-labs", "APIKEY_PROVIDERS_FRONTIER"],
@@ -80,7 +81,7 @@ test("APIKEY_PROVIDERS merges the 6 family files into 231 entries (no loss / no
seen.add(k);
}
}
assert.equal(famTotal, 231, "families must partition all 231 providers");
assert.equal(famTotal, 233, "families must partition all 233 providers");
});
test("AI_PROVIDERS Proxy aggregates all sections; lookups resolve", () => {