summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAiden Cline <[email protected]>2025-09-17 14:24:53 -0500
committerGitHub <[email protected]>2025-09-17 14:24:53 -0500
commitff6a93f3555758f493caac0f5ceb0c8a39738e34 (patch)
tree8640897711a872179f3a872b7e1223165228a510
parent733b21e22b6c9424c7aa201e6ff9994493657586 (diff)
downloadopencode-ff6a93f3555758f493caac0f5ceb0c8a39738e34.tar.gz
opencode-ff6a93f3555758f493caac0f5ceb0c8a39738e34.zip
fix: only keep aborted messages if they have sufficient parts (#2651)
-rw-r--r--packages/opencode/src/session/prompt.ts16
1 files changed, 13 insertions, 3 deletions
diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts
index c61403259..062a99695 100644
--- a/packages/opencode/src/session/prompt.ts
+++ b/packages/opencode/src/session/prompt.ts
@@ -281,9 +281,19 @@ export namespace SessionPrompt {
}),
),
...MessageV2.toModelMessage(
- msgs.filter(
- (m) => !(m.info.role === "assistant" && m.info.error && !MessageV2.AbortedError.isInstance(m.info.error)),
- ),
+ msgs.filter((m) => {
+ if (m.info.role !== "assistant" || m.info.error === undefined) {
+ return true
+ }
+ if (
+ MessageV2.AbortedError.isInstance(m.info.error) &&
+ m.parts.some((part) => part.type !== "step-start" && part.type !== "reasoning")
+ ) {
+ return true
+ }
+
+ return false
+ }),
),
],
tools: model.info.tool_call === false ? undefined : tools,