diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index 671b7517218..a523e448106 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -149,16 +149,14 @@ export const layer: Layer.Layer< const ac = new AbortController() // kilocode_change — abort controller for offline handler const slog = log.clone().tag("session.id", input.sessionID).tag("messageID", input.assistantMessage.id) - const parse = (e: unknown) => { - // kilocode_change start - preserve retryable errors raised by Kilo processor guards - const err = KiloSessionProcessor.preserveError(e) - if (err) return err - // kilocode_change end - return MessageV2.fromError(e, { + // kilocode_change start - preserve retryable errors raised by Kilo processor guards + const parse = (e: unknown) => + KiloSessionProcessor.preserveError(e) ?? + MessageV2.fromError(e, { providerID: input.model.providerID, aborted, }) - } + // kilocode_change end const settleToolCall = Effect.fn("SessionProcessor.settleToolCall")(function* (toolCallID: string) { const done = ctx.toolcalls[toolCallID]?.done diff --git a/packages/opencode/test/session/processor-effect.test.ts b/packages/opencode/test/session/processor-effect.test.ts index 8efd323c4e2..71f93a5ea2b 100644 --- a/packages/opencode/test/session/processor-effect.test.ts +++ b/packages/opencode/test/session/processor-effect.test.ts @@ -466,6 +466,7 @@ it.live("session.processor effect tests reset reasoning state across retries", ( ), ) +// kilocode_change start - retry empty provider responses it.live("session.processor effect tests retry empty other finishes", () => provideTmpdirServer( ({ dir, llm }) => @@ -512,6 +513,7 @@ it.live("session.processor effect tests retry empty other finishes", () => { git: true, config: (url) => providerCfg(url) }, ), ) +// kilocode_change end it.live("session.processor effect tests do not retry unknown json errors", () => provideTmpdirServer( diff --git a/packages/opencode/test/session/prompt.test.ts b/packages/opencode/test/session/prompt.test.ts index dcbb7e655be..9a0d8c50dbf 100644 --- a/packages/opencode/test/session/prompt.test.ts +++ b/packages/opencode/test/session/prompt.test.ts @@ -397,6 +397,7 @@ it.live("loop calls LLM and returns assistant message", () => ), ) +// kilocode_change start - reject oversized payloads after pruning it.live("loop does not send payload that remains large after pruning", () => provideTmpdirServer( Effect.fnUntraced(function* ({ llm }) { @@ -424,6 +425,7 @@ it.live("loop does not send payload that remains large after pruning", () => { git: true, config: providerCfg }, ), ) +// kilocode_change end // kilocode_change start - replacement prompts unblock pending Question service requests it.live("new prompt dismisses a pending question", () =>