History

fix: avoid duplicating streamed assistant completion text (#465)

James committed 8 months ago

Commit 57aa6bf1 parent 40a7f4b2 files · +6 −1Browse files

Unified · Split

2 files
  1. apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.test.ts +1 −0
  2. apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts +5 −1
apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.test.ts+1−0
@@ -834,6 +834,7 @@ describe("ProviderRuntimeIngestion", () => { · 833 unmodified lines
834 payload: {834 payload: {
835 itemType: "assistant_message",835 itemType: "assistant_message",
836 status: "completed",836 status: "completed",
837 detail: "hello live",
837 },838 },
838 });839 });
839 840
apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts+5−1
@@ -951,6 +951,10 @@ const make = Effect.gen(function* () { · 950 unmodified lines
951 if (assistantCompletion) {951 if (assistantCompletion) {
952 const assistantMessageId = assistantCompletion.messageId;952 const assistantMessageId = assistantCompletion.messageId;
953 const turnId = toTurnId(event.turnId);953 const turnId = toTurnId(event.turnId);
954 const existingAssistantMessage = thread.messages.find((entry) => entry.id === assistantMessageId);
955 const shouldApplyFallbackCompletionText =
956 !existingAssistantMessage ||
957 existingAssistantMessage.text.length === 0;
954 if (turnId) {958 if (turnId) {
955 yield* rememberAssistantMessageId(thread.id, turnId, assistantMessageId);959 yield* rememberAssistantMessageId(thread.id, turnId, assistantMessageId);
956 }960 }
@@ -963,7 +967,7 @@ const make = Effect.gen(function* () { · 6 unmodified lines
963 createdAt: now,967 createdAt: now,
964 commandTag: "assistant-complete",968 commandTag: "assistant-complete",
965 finalDeltaCommandTag: "assistant-delta-finalize",969 finalDeltaCommandTag: "assistant-delta-finalize",
966 ...(assistantCompletion.fallbackText !== undefined970 ...(assistantCompletion.fallbackText !== undefined && shouldApplyFallbackCompletionText
967 ? { fallbackText: assistantCompletion.fallbackText }971 ? { fallbackText: assistantCompletion.fallbackText }
968 : {}),972 : {}),
969 });973 });