authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-09-05 00:22:14-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-05 00:22:14-07:00
log3fedf52467dd8d2734a7aca4c6c7da421c12474f
tree911db964b811e59258e2a3ebda7ae1348c2cc14d
parent11cb88efc54c5690e25348ce5c889722a3615089
signature Signed by PGP key B5690EEEBB952194

test(server): cover raw OpenCode deltas through the adapter (#9977)


2 files changed, 6 insertions(+), 10 deletions(-)

apps/server/src/provider/Layers/OpenCodeAdapter.test.ts+5-9
...@@ -43,7 +43,6 @@ import {...@@ -43,7 +43,6 @@ import {
43 type OpenCodeRuntimeShape,43 type OpenCodeRuntimeShape,
44} from "../opencodeRuntime.ts";44} from "../opencodeRuntime.ts";
45import {45import {
46 appendOpenCodeAssistantTextDelta,
47 isOpenCodeNotFound,46 isOpenCodeNotFound,
48 isSameOpenCodeDirectory,47 isSameOpenCodeDirectory,
49 makeOpenCodeAdapter,48 makeOpenCodeAdapter,
...@@ -6430,20 +6429,17 @@ it.layer(OpenCodeAdapterTestLayer)("OpenCodeAdapterLive", (it) => {...@@ -6430,20 +6429,17 @@ it.layer(OpenCodeAdapterTestLayer)("OpenCodeAdapterLive", (it) => {
6430 }).pipe(Effect.scoped),6429 }).pipe(Effect.scoped),
6431 );6430 );
64326431
6433 it.effect("appends raw assistant text deltas and reconciles part update snapshots", () =>6432 it.effect("reconciles assistant text snapshots", () =>
6434 Effect.sync(() => {6433 Effect.sync(() => {
6435 const firstUpdate = mergeOpenCodeAssistantText(undefined, "Hello");6434 const firstUpdate = mergeOpenCodeAssistantText(undefined, "Hello");
6436 const overlapDelta = appendOpenCodeAssistantTextDelta(firstUpdate.latestText, "lo world");
6437 const secondUpdate = mergeOpenCodeAssistantText(overlapDelta.nextText, "Hellolo world");
6438 const appendedUpdate = mergeOpenCodeAssistantText("Hello", "Hello world");6435 const appendedUpdate = mergeOpenCodeAssistantText("Hello", "Hello world");
6439 const changedUpdate = mergeOpenCodeAssistantText("Hello world", "Hello there");6436 const changedUpdate = mergeOpenCodeAssistantText("Hello world", "Hello there");
6440 const staleUpdate = mergeOpenCodeAssistantText("Hello world", "Hello");6437 const staleUpdate = mergeOpenCodeAssistantText("Hello world", "Hello");
64416438
6442 NodeAssert.deepEqual(6439 NodeAssert.deepEqual(firstUpdate, {
6443 [firstUpdate.deltaToEmit, overlapDelta.deltaToEmit, secondUpdate.deltaToEmit],6440 latestText: "Hello",
6444 ["Hello", "lo world", ""],6441 deltaToEmit: "Hello",
6445 );6442 });
6446 NodeAssert.equal(secondUpdate.latestText, "Hellolo world");
6447 NodeAssert.deepEqual(appendedUpdate, {6443 NodeAssert.deepEqual(appendedUpdate, {
6448 latestText: "Hello world",6444 latestText: "Hello world",
6449 deltaToEmit: " world",6445 deltaToEmit: " world",
apps/server/src/provider/Layers/OpenCodeAdapter.ts+1-1
...@@ -626,7 +626,7 @@ export function mergeOpenCodeAssistantText(...@@ -626,7 +626,7 @@ export function mergeOpenCodeAssistantText(
626 };626 };
627}627}
628628
629export function appendOpenCodeAssistantTextDelta(629function appendOpenCodeAssistantTextDelta(
630 previousText: string,630 previousText: string,
631 delta: string,631 delta: string,
632): {632): {