diff options
| author | Noam Bressler <[email protected]> | 2026-01-18 09:29:57 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-18 01:29:57 -0600 |
| commit | ee4ea653116803fcb2af731ca0a520e5fee2c68d (patch) | |
| tree | af6d430bcf04a2afe25123486ea39487290b7e81 | |
| parent | bef1f6628118359f98d6c41e195b16e1f68794fa (diff) | |
| download | opencode-ee4ea653116803fcb2af731ca0a520e5fee2c68d.tar.gz opencode-ee4ea653116803fcb2af731ca0a520e5fee2c68d.zip | |
fix: restore persisted model/agent when loading ACP session (#7809)
Co-authored-by: noam-v <[email protected]>
| -rw-r--r-- | packages/opencode/src/acp/agent.ts | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/packages/opencode/src/acp/agent.ts b/packages/opencode/src/acp/agent.ts index a077bb9fb..5fca27255 100644 --- a/packages/opencode/src/acp/agent.ts +++ b/packages/opencode/src/acp/agent.ts @@ -488,7 +488,7 @@ export namespace ACP { log.info("load_session", { sessionId, mcpServers: params.mcpServers.length }) - const mode = await this.loadSessionMode({ + const result = await this.loadSessionMode({ cwd: directory, mcpServers: params.mcpServers, sessionId, @@ -509,12 +509,20 @@ export namespace ACP { return undefined }) + const lastUser = messages?.findLast((m) => m.info.role === "user")?.info + if (lastUser?.role === "user") { + result.models.currentModelId = `${lastUser.model.providerID}/${lastUser.model.modelID}` + if (result.modes.availableModes.some((m) => m.id === lastUser.agent)) { + result.modes.currentModeId = lastUser.agent + } + } + for (const msg of messages ?? []) { log.debug("replay message", msg) await this.processMessage(msg) } - return mode + return result } catch (e) { const error = MessageV2.fromError(e, { providerID: this.config.defaultModel?.providerID ?? "unknown", |
