From c31aa8cb0426c38a7da33ab40d2c1056fd0bd8b9 Mon Sep 17 00:00:00 2001 From: waleed Date: Tue, 20 Jan 2026 00:11:21 -0800 Subject: [PATCH 1/3] fix(kb): align bulk chunk operation with API response --- .../knowledge/[id]/[documentId]/document.tsx | 8 ++------ apps/sim/hooks/queries/knowledge.ts | 9 ++++----- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx index 9fbb90cb4a..138f13362b 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx @@ -541,12 +541,8 @@ export function Document({ if (operation === 'delete') { refreshChunks() } else { - result.results.forEach((opResult) => { - if (opResult.operation === operation) { - opResult.chunkIds.forEach((chunkId: string) => { - updateChunk(chunkId, { enabled: operation === 'enable' }) - }) - } + chunks.forEach((chunk) => { + updateChunk(chunk.id, { enabled: operation === 'enable' }) }) } logger.info(`Successfully ${operation}d ${result.successCount} chunks`) diff --git a/apps/sim/hooks/queries/knowledge.ts b/apps/sim/hooks/queries/knowledge.ts index e788901f06..d63c4cd54f 100644 --- a/apps/sim/hooks/queries/knowledge.ts +++ b/apps/sim/hooks/queries/knowledge.ts @@ -755,12 +755,11 @@ export interface BulkChunkOperationParams { } export interface BulkChunkOperationResult { + operation: string successCount: number - failedCount: number - results: Array<{ - operation: string - chunkIds: string[] - }> + errorCount: number + processed: number + errors: Array<{ chunkId: string; error: string }> } export async function bulkChunkOperation({ From 7479225f00e15b44632855849063fa68490c83af Mon Sep 17 00:00:00 2001 From: waleed Date: Tue, 20 Jan 2026 00:17:47 -0800 Subject: [PATCH 2/3] fix(kb): skip local state update for failed chunks --- .../[workspaceId]/knowledge/[id]/[documentId]/document.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx index 138f13362b..c7480ddefb 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx @@ -541,8 +541,11 @@ export function Document({ if (operation === 'delete') { refreshChunks() } else { + const failedChunkIds = new Set(result.errors.map((e) => e.chunkId)) chunks.forEach((chunk) => { - updateChunk(chunk.id, { enabled: operation === 'enable' }) + if (!failedChunkIds.has(chunk.id)) { + updateChunk(chunk.id, { enabled: operation === 'enable' }) + } }) } logger.info(`Successfully ${operation}d ${result.successCount} chunks`) From fece740c2b005e0f61815ab2c383c78b907d3a10 Mon Sep 17 00:00:00 2001 From: waleed Date: Tue, 20 Jan 2026 00:18:32 -0800 Subject: [PATCH 3/3] fix(kb): correct errors type and refresh on partial failure --- .../[workspaceId]/knowledge/[id]/[documentId]/document.tsx | 7 ++----- apps/sim/hooks/queries/knowledge.ts | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx index c7480ddefb..f32b37fd0c 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx @@ -538,14 +538,11 @@ export function Document({ }, { onSuccess: (result) => { - if (operation === 'delete') { + if (operation === 'delete' || result.errorCount > 0) { refreshChunks() } else { - const failedChunkIds = new Set(result.errors.map((e) => e.chunkId)) chunks.forEach((chunk) => { - if (!failedChunkIds.has(chunk.id)) { - updateChunk(chunk.id, { enabled: operation === 'enable' }) - } + updateChunk(chunk.id, { enabled: operation === 'enable' }) }) } logger.info(`Successfully ${operation}d ${result.successCount} chunks`) diff --git a/apps/sim/hooks/queries/knowledge.ts b/apps/sim/hooks/queries/knowledge.ts index d63c4cd54f..f45a449876 100644 --- a/apps/sim/hooks/queries/knowledge.ts +++ b/apps/sim/hooks/queries/knowledge.ts @@ -759,7 +759,7 @@ export interface BulkChunkOperationResult { successCount: number errorCount: number processed: number - errors: Array<{ chunkId: string; error: string }> + errors: string[] } export async function bulkChunkOperation({