Przeglądaj źródła

fix: restore persisted model/agent when loading ACP session (#7809)

Co-authored-by: noam-v <[email protected]>
Noam Bressler 1 miesiąc temu
rodzic
commit
ee4ea65311
1 zmienionych plików z 10 dodań i 2 usunięć
  1. 10 2
      packages/opencode/src/acp/agent.ts

+ 10 - 2
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",