summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorNoam Bressler <[email protected]>2026-01-18 09:29:57 +0200
committerGitHub <[email protected]>2026-01-18 01:29:57 -0600
commitee4ea653116803fcb2af731ca0a520e5fee2c68d (patch)
treeaf6d430bcf04a2afe25123486ea39487290b7e81 /packages
parentbef1f6628118359f98d6c41e195b16e1f68794fa (diff)
downloadopencode-ee4ea653116803fcb2af731ca0a520e5fee2c68d.tar.gz
opencode-ee4ea653116803fcb2af731ca0a520e5fee2c68d.zip
fix: restore persisted model/agent when loading ACP session (#7809)
Co-authored-by: noam-v <[email protected]>
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/acp/agent.ts12
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",