diff --git a/open-sse/handlers/chatCore.ts b/open-sse/handlers/chatCore.ts index 10e6c32ae6..07e3a25857 100644 --- a/open-sse/handlers/chatCore.ts +++ b/open-sse/handlers/chatCore.ts @@ -1218,7 +1218,12 @@ export async function handleChatCore({ credentials?.providerSpecificData?.preserveEncryptedReasoning === true, onIncompatibleReasoning: resolveIncompatibleReasoningAction({ reasoningTransportFallback, - isComboStep: Boolean(comboStepId || comboExecutionKey), + // #11178 regressed combo steps whose combo record carries no explicit + // stepId/executionKey (plain model-list combos): their explicit + // `reasoningTransportFallback: "skip"` config was silently degraded to + // "drop". `isCombo` is the combo marker; step ids are optional + // finer-grained metadata that plain combos never set. + isComboStep: Boolean(isCombo) || Boolean(comboStepId || comboExecutionKey), headers: clientRawRequest?.headers ?? null, }), } diff --git a/stryker.conf.json b/stryker.conf.json index 33428a46da..f039eeaca8 100644 --- a/stryker.conf.json +++ b/stryker.conf.json @@ -307,6 +307,7 @@ "tests/unit/public-client-ids-3493.test.ts", "tests/unit/publicCreds.test.ts", "tests/unit/qoder-oauth-config.test.ts", + "tests/unit/quota-exhaustion-cutoff-opencode.test.ts", "tests/unit/quota-groups-route.test.ts", "tests/unit/quota-key-models-route.test.ts", "tests/unit/quota-policy-generalization.test.ts", diff --git a/tests/unit/check-db-rules-classification.test.ts b/tests/unit/check-db-rules-classification.test.ts index 5707878b8a..82ca183f0f 100644 --- a/tests/unit/check-db-rules-classification.test.ts +++ b/tests/unit/check-db-rules-classification.test.ts @@ -61,6 +61,11 @@ function hasImporter(mod: string, roots: string[]): boolean { new RegExp(`(?:import|require)\\s*\\(\\s*['""][^'"]+/db/${escaped}['"]`), // dynamic template: import(`…/db/.ts`) — bin/cli/runtime.mjs uses template literals new RegExp(`import\\s*\\(\`[^'"\`]+/db/${escaped}\\.ts\`\\)`), + // dynamic via file:// URL helper: import(projectFileUrl("…/db/.ts")) — + // bin/cli/runtime.mjs since #11238 (Windows-safe file:// dynamic imports). + new RegExp( + `import\\s*\\(\\s*projectFileUrl\\(\\s*['""][^'"]+/db/${escaped}\\.ts['"]\\s*\\)\\s*\\)` + ), // relative import within db/: from "./" or from "./" new RegExp(`from\\s+['"]\\.\\.?/${escaped}['"]`), ];