diff options
| author | Michal Šlesár <[email protected]> | 2026-03-16 15:13:29 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-03-16 19:43:29 +0530 |
| commit | 15b27e0d182b0b5db0eae45d2cc9ac1c670dd381 (patch) | |
| tree | bb6bcb4f6df3bc17df1bff091033c2cd71870888 | |
| parent | c523aac586b5b5d3d59143f19cad65c935090e4e (diff) | |
| download | opencode-15b27e0d182b0b5db0eae45d2cc9ac1c670dd381.tar.gz opencode-15b27e0d182b0b5db0eae45d2cc9ac1c670dd381.zip | |
fix(app): agent switch should not reset thinking level (#17470)
| -rw-r--r-- | packages/app/e2e/session/session-model-persistence.spec.ts | 22 | ||||
| -rw-r--r-- | packages/app/src/context/local.tsx | 5 |
2 files changed, 25 insertions, 2 deletions
diff --git a/packages/app/e2e/session/session-model-persistence.spec.ts b/packages/app/e2e/session/session-model-persistence.spec.ts index 4b09a5287..933d5e6f9 100644 --- a/packages/app/e2e/session/session-model-persistence.spec.ts +++ b/packages/app/e2e/session/session-model-persistence.spec.ts @@ -349,3 +349,25 @@ test("session model restore across workspaces", async ({ page, withProject }) => await waitFooter(page, firstState) }) }) + +test("variant preserved when switching agent modes", async ({ page, withProject }) => { + await page.setViewportSize({ width: 1440, height: 900 }) + + await withProject(async ({ directory, gotoSession }) => { + await gotoSession() + + await ensureVariant(page, directory) + const updated = await chooseDifferentVariant(page) + + const available = await agents(page) + const other = available.find((name) => name !== updated.agent) + test.skip(!other, "only one agent available") + if (!other) return + + await choose(page, promptAgentSelector, other) + await waitFooter(page, { agent: other, variant: updated.variant }) + + await choose(page, promptAgentSelector, updated.agent) + await waitFooter(page, { agent: updated.agent, variant: updated.variant }) + }) +}) diff --git a/packages/app/src/context/local.tsx b/packages/app/src/context/local.tsx index bed7ecd15..76d337c82 100644 --- a/packages/app/src/context/local.tsx +++ b/packages/app/src/context/local.tsx @@ -192,10 +192,11 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({ model: item.model, variant: item.variant ?? null, }) + const prev = scope() const next = { agent: item.name, - model: item.model, - variant: item.variant, + model: item.model ?? prev?.model, + variant: item.variant ?? prev?.variant, } satisfies State const session = id() if (session) { |
