diff options
| author | Aiden Cline <[email protected]> | 2026-01-02 20:42:56 -0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-02 22:42:56 -0600 |
| commit | f991fbbde8c2887ddc881d02e020f2dc71d3b509 (patch) | |
| tree | 632c9b97671a593580d10e9d89f01bfb685c25bf | |
| parent | 401b498c7d9727b69f9b80ef472da0667244fc6d (diff) | |
| download | opencode-f991fbbde8c2887ddc881d02e020f2dc71d3b509.tar.gz opencode-f991fbbde8c2887ddc881d02e020f2dc71d3b509.zip | |
core: ephemerally wrap queued user messages with reminder to stay on track (#6725)
| -rw-r--r-- | packages/opencode/src/session/prompt.ts | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index b635cee7f..634539ade 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -560,6 +560,25 @@ export namespace SessionPrompt { const sessionMessages = clone(msgs) + // Ephemerally wrap queued user messages with a reminder to stay on track + if (step > 1 && lastFinished) { + for (const msg of sessionMessages) { + if (msg.info.role !== "user" || msg.info.id <= lastFinished.id) continue + for (const part of msg.parts) { + if (part.type !== "text" || part.ignored || part.synthetic) continue + if (!part.text.trim()) continue + part.text = [ + "<system-reminder>", + "The user sent the following message:", + part.text, + "", + "Please address this message and continue with your tasks.", + "</system-reminder>", + ].join("\n") + } + } + } + await Plugin.trigger("experimental.chat.messages.transform", {}, { messages: sessionMessages }) const result = await processor.process({ |
