From 24c1fe71387eedc3b1334afa787d30892ef8a053 Mon Sep 17 00:00:00 2001 From: Jyong Date: Thu, 13 Aug 2026 05:02:45 -0400 Subject: [PATCH] fix(knowledge-fs): skip retrieval model probes on settings save --- api/knowledge-fs-contract.lock.json | 2 +- .../packages/api/src/knowledge-space-handlers.ts | 11 +++++++++-- .../knowledge-space-profile-handler-behavior.test.ts | 10 +++++++++- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/api/knowledge-fs-contract.lock.json b/api/knowledge-fs-contract.lock.json index c9aab080fe9..3a48ada84a5 100644 --- a/api/knowledge-fs-contract.lock.json +++ b/api/knowledge-fs-contract.lock.json @@ -1,6 +1,6 @@ { "schemaVersion": 5, - "subtreeTree": "507cdba8b451cc907f027ca64f1bab468b858e3f", + "subtreeTree": "d89aa89a543c1c1a5b3d042881597d9af2a1a47b", "openapiSha256": "47936a7d9ffdc27e2b2b8982a90e1936dc3bf59a64c316f452a6912ec1d2fcd6", "capabilityV2AuthManifestSha256": "fc0a47e23cce12544882f0298522b4933002e892b84ce1815df7e81d36a7a0c7", "capabilityV2AuthTestVectorSha256": "ae0de37b1ff05c40f905cf17a7b410d8971acacf64db07d5ee3d6fecfa559ce3", diff --git a/knowledge-fs/packages/api/src/knowledge-space-handlers.ts b/knowledge-fs/packages/api/src/knowledge-space-handlers.ts index ffaaacf407e..04636c50937 100644 --- a/knowledge-fs/packages/api/src/knowledge-space-handlers.ts +++ b/knowledge-fs/packages/api/src/knowledge-space-handlers.ts @@ -2173,14 +2173,14 @@ async function preflightKnowledgeSpaceModels({ const [embeddingSnapshot, reasoningSnapshot, rerankSnapshot] = await Promise.all([ embedding ? preflight.verify({ kind: "embedding", selection: embedding, tenantId }) : undefined, retrievalProfile - ? preflight.verify({ + ? resolveConfiguredModelCapability(preflight, { kind: "reasoning", selection: retrievalProfile.reasoningModel, tenantId, }) : undefined, retrievalProfile?.rerank.enabled && retrievalProfile.rerank.model - ? preflight.verify({ + ? resolveConfiguredModelCapability(preflight, { kind: "rerank", selection: retrievalProfile.rerank.model, tenantId, @@ -2194,6 +2194,13 @@ async function preflightKnowledgeSpaceModels({ }; } +function resolveConfiguredModelCapability( + preflight: ModelCapabilityPreflight, + input: Parameters[0], +): Promise { + return preflight.resolveConfigured ? preflight.resolveConfigured(input) : preflight.verify(input); +} + function embeddingVectorSpaceIdentityFromSnapshot(snapshot: ModelCapabilitySnapshot) { if ( snapshot.kind !== "embedding" || diff --git a/knowledge-fs/packages/api/src/knowledge-space-profile-handler-behavior.test.ts b/knowledge-fs/packages/api/src/knowledge-space-profile-handler-behavior.test.ts index 473676b2e11..7699f6ef47f 100644 --- a/knowledge-fs/packages/api/src/knowledge-space-profile-handler-behavior.test.ts +++ b/knowledge-fs/packages/api/src/knowledge-space-profile-handler-behavior.test.ts @@ -281,12 +281,20 @@ function publishedProfileApp( }, knowledgeSpaceProfiles: profiles, modelCapabilityPreflight: { - verify: async (input) => + resolveConfigured: async (input) => capability(input.kind, { model: input.selection.model, pluginId: input.selection.pluginId, provider: input.selection.provider, }), + verify: async (input) => + input.kind === "embedding" + ? capability(input.kind, { + model: input.selection.model, + pluginId: input.selection.pluginId, + provider: input.selection.provider, + }) + : Promise.reject(new Error("Retrieval settings must not invoke configured models")), }, }); }