diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index 83f2d001..0fa2d66e 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -766,8 +766,8 @@ export namespace Session { }) } - const lastAssistantMsg = msgs.filter((x) => x.info.role === "assistant").at(-1)?.info as MessageV2.Assistant - if (lastAssistantMsg?.mode === "plan" && agent.name === "build") { + const wasPlan = msgs.some((msg) => msg.info.role === "assistant" && msg.info.mode === "plan") + if (wasPlan && agent.name === "build") { msgs.at(-1)?.parts.push({ id: Identifier.ascending("part"), messageID: userMsg.id, diff --git a/packages/opencode/src/session/prompt/build-switch.txt b/packages/opencode/src/session/prompt/build-switch.txt index 0b70fa57..3737b74d 100644 --- a/packages/opencode/src/session/prompt/build-switch.txt +++ b/packages/opencode/src/session/prompt/build-switch.txt @@ -1 +1,5 @@ -Your operational mode has changed from plan to build. You are no longer in read-only mode. You are permitted to make file changes as necessary and utilize your arsenal of tools as needed. + +Your operational mode has changed from plan to build. +You are no longer in read-only mode. +You are permitted to make file changes, run shell commands, and utilize your arsenal of tools as needed. +