From 098bdd8ae2c26d2414fa6fe1ff1672c8ce42c45b Mon Sep 17 00:00:00 2001 From: Shoubhit Dash Date: Wed, 13 May 2026 17:17:04 +0530 Subject: [PATCH] refactor(flags): route plan mode through runtime flags (#27320) --- packages/opencode/src/session/prompt.ts | 5 ++++- packages/opencode/test/session/prompt.test.ts | 1 + packages/opencode/test/session/snapshot-tool-race.test.ts | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 8656050faf..3b1f2c41ae 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -51,6 +51,7 @@ import { InstanceState } from "@/effect/instance-state" import { TaskTool, type TaskPromptOps } from "@/tool/task" import { SessionRunState } from "./run-state" import { EffectBridge } from "@/effect/bridge" +import { RuntimeFlags } from "@/effect/runtime-flags" import { SyncEvent } from "@/sync" import { SessionEvent } from "@/v2/session-event" import { Modelv2 } from "@/v2/model" @@ -202,6 +203,7 @@ export const layer = Layer.effect( const llm = yield* LLM.Service const references = yield* Reference.Service const sync = yield* SyncEvent.Service + const flags = yield* RuntimeFlags.Service const runner = Effect.fn("SessionPrompt.runner")(function* () { return yield* EffectBridge.make() }) @@ -384,7 +386,7 @@ export const layer = Layer.effect( const userMessage = input.messages.findLast((msg) => msg.info.role === "user") if (!userMessage) return input.messages - if (!Flag.OPENCODE_EXPERIMENTAL_PLAN_MODE) { + if (!flags.experimentalPlanMode) { if (input.agent.name === "plan") { userMessage.parts.push({ id: PartID.ascending(), @@ -2024,6 +2026,7 @@ export const defaultLayer = Layer.suspend(() => Bus.layer, CrossSpawnSpawner.defaultLayer, SyncEvent.defaultLayer, + RuntimeFlags.defaultLayer, ), ), ), diff --git a/packages/opencode/test/session/prompt.test.ts b/packages/opencode/test/session/prompt.test.ts index 427ce17e8f..de548c9263 100644 --- a/packages/opencode/test/session/prompt.test.ts +++ b/packages/opencode/test/session/prompt.test.ts @@ -206,6 +206,7 @@ function makeHttp() { Layer.provideMerge(trunc), Layer.provide(Instruction.defaultLayer), Layer.provide(SystemPrompt.defaultLayer), + Layer.provide(RuntimeFlags.layer()), Layer.provideMerge(deps), ), ).pipe(Layer.provide(summary)) diff --git a/packages/opencode/test/session/snapshot-tool-race.test.ts b/packages/opencode/test/session/snapshot-tool-race.test.ts index adf8926870..49632a8298 100644 --- a/packages/opencode/test/session/snapshot-tool-race.test.ts +++ b/packages/opencode/test/session/snapshot-tool-race.test.ts @@ -165,6 +165,7 @@ function makeHttp() { Layer.provideMerge(trunc), Layer.provide(Instruction.defaultLayer), Layer.provide(SystemPrompt.defaultLayer), + Layer.provide(RuntimeFlags.layer()), Layer.provideMerge(deps), ), )