diff --git a/src/plugin-handlers/agent-config-handler.test.ts b/src/plugin-handlers/agent-config-handler.test.ts index 58cf1b4ed..d0d01a897 100644 --- a/src/plugin-handlers/agent-config-handler.test.ts +++ b/src/plugin-handlers/agent-config-handler.test.ts @@ -7,10 +7,8 @@ import * as shared from "../shared" import * as sisyphusJunior from "../agents/sisyphus-junior" import type { OhMyOpenCodeConfig } from "../config" import * as agentLoader from "../features/claude-code-agent-loader" -import * as sessionState from "../features/claude-code-session-state" import * as skillLoader from "../features/opencode-skill-loader" import { getAgentDisplayName } from "../shared/agent-display-names" -import * as sessionModelState from "../shared/session-model-state" import { applyAgentConfig } from "./agent-config-handler" import type { PluginComponents } from "./plugin-components-loader" @@ -55,8 +53,6 @@ describe("applyAgentConfig builtin override protection", () => { let discoverOpencodeProjectSkillsSpy: ReturnType let loadUserAgentsSpy: ReturnType let loadProjectAgentsSpy: ReturnType - let getMainSessionIDSpy: ReturnType - let getSessionModelSpy: ReturnType let migrateAgentConfigSpy: ReturnType let logSpy: ReturnType @@ -127,8 +123,6 @@ describe("applyAgentConfig builtin override protection", () => { loadUserAgentsSpy = spyOn(agentLoader, "loadUserAgents").mockReturnValue({}) loadProjectAgentsSpy = spyOn(agentLoader, "loadProjectAgents").mockReturnValue({}) - getMainSessionIDSpy = spyOn(sessionState, "getMainSessionID").mockReturnValue(undefined) - getSessionModelSpy = spyOn(sessionModelState, "getSessionModel").mockReturnValue(undefined) migrateAgentConfigSpy = spyOn(shared, "migrateAgentConfig").mockImplementation( (config: Record) => config, @@ -146,8 +140,6 @@ describe("applyAgentConfig builtin override protection", () => { discoverOpencodeProjectSkillsSpy.mockRestore() loadUserAgentsSpy.mockRestore() loadProjectAgentsSpy.mockRestore() - getMainSessionIDSpy.mockRestore() - getSessionModelSpy.mockRestore() migrateAgentConfigSpy.mockRestore() logSpy.mockRestore() }) @@ -174,56 +166,6 @@ describe("applyAgentConfig builtin override protection", () => { expect(result[BUILTIN_SISYPHUS_DISPLAY_NAME]).toEqual(builtinSisyphusConfig) }) - test("reuses the main session model when config.model is missing", async () => { - // given - const createBuiltinAgentsMock = agents.createBuiltinAgents as unknown as { - mock: { calls: unknown[][] } - } - getMainSessionIDSpy.mockReturnValue("ses_main") - getSessionModelSpy.mockReturnValue({ providerID: "openai", modelID: "gpt-5.4" }) - - const config: Record = { - agent: {}, - } - - // when - await applyAgentConfig({ - config, - pluginConfig: createPluginConfig(), - ctx: { directory: "/tmp" }, - pluginComponents: createPluginComponents(), - }) - - // then - expect(createBuiltinAgentsMock.mock.calls).toHaveLength(1) - expect(createBuiltinAgentsMock.mock.calls[0]?.[3]).toBe("openai/gpt-5.4") - expect(createBuiltinAgentsMock.mock.calls[0]?.[9]).toBe("openai/gpt-5.4") - }) - - test("prefers config.model over the persisted main session model when both exist", async () => { - // given - const createBuiltinAgentsMock = agents.createBuiltinAgents as unknown as { - mock: { calls: unknown[][] } - } - getMainSessionIDSpy.mockReturnValue("ses_main") - getSessionModelSpy.mockReturnValue({ providerID: "openai", modelID: "gpt-5.4" }) - - const config = createBaseConfig() - - // when - await applyAgentConfig({ - config, - pluginConfig: createPluginConfig(), - ctx: { directory: "/tmp" }, - pluginComponents: createPluginComponents(), - }) - - // then - expect(createBuiltinAgentsMock.mock.calls).toHaveLength(1) - expect(createBuiltinAgentsMock.mock.calls[0]?.[3]).toBe("anthropic/claude-opus-4-6") - expect(createBuiltinAgentsMock.mock.calls[0]?.[9]).toBe("anthropic/claude-opus-4-6") - }) - test("filters user agents whose key differs from a builtin key only by case", async () => { // given loadUserAgentsSpy.mockReturnValue({ diff --git a/src/plugin-handlers/agent-config-handler.ts b/src/plugin-handlers/agent-config-handler.ts index 1c8a54eb4..33f15f233 100644 --- a/src/plugin-handlers/agent-config-handler.ts +++ b/src/plugin-handlers/agent-config-handler.ts @@ -2,10 +2,8 @@ import { createBuiltinAgents } from "../agents"; import { createSisyphusJuniorAgentWithOverrides } from "../agents/sisyphus-junior"; import type { OhMyOpenCodeConfig } from "../config"; import { log, migrateAgentConfig } from "../shared"; -import { getMainSessionID } from "../features/claude-code-session-state"; import { AGENT_NAME_MAP } from "../shared/migration"; import { getAgentDisplayName } from "../shared/agent-display-names"; -import { getSessionModel } from "../shared/session-model-state"; import { discoverConfigSourceSkills, discoverOpencodeGlobalSkills, @@ -29,28 +27,6 @@ type AgentConfigRecord = Record | undefined> & { plan?: Record; }; -function resolveCurrentModel(config: Record): string | undefined { - const configModel = config.model; - if (typeof configModel === "string") { - const trimmedModel = configModel.trim(); - if (trimmedModel.length > 0) { - return trimmedModel; - } - } - - const mainSessionID = getMainSessionID(); - if (!mainSessionID) { - return undefined; - } - - const sessionModel = getSessionModel(mainSessionID); - if (!sessionModel?.providerID || !sessionModel.modelID) { - return undefined; - } - - return `${sessionModel.providerID}/${sessionModel.modelID}`; -} - function getConfiguredDefaultAgent(config: Record): string | undefined { const defaultAgent = config.default_agent; if (typeof defaultAgent !== "string") return undefined; @@ -101,7 +77,7 @@ export async function applyAgentConfig(params: { const browserProvider = params.pluginConfig.browser_automation_engine?.provider ?? "playwright"; - const currentModel = resolveCurrentModel(params.config); + const currentModel = params.config.model as string | undefined; const disabledSkills = new Set(params.pluginConfig.disabled_skills ?? []); const useTaskSystem = params.pluginConfig.experimental?.task_system ?? false; const disableOmoEnv = params.pluginConfig.experimental?.disable_omo_env ?? false;