diff options
| author | Aiden Cline <[email protected]> | 2025-09-17 14:24:53 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-09-17 14:24:53 -0500 |
| commit | ff6a93f3555758f493caac0f5ceb0c8a39738e34 (patch) | |
| tree | 8640897711a872179f3a872b7e1223165228a510 | |
| parent | 733b21e22b6c9424c7aa201e6ff9994493657586 (diff) | |
| download | opencode-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.ts | 16 |
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, |
