diff --git a/packages/app/src/utils/extract-agent-model.test.ts b/packages/app/src/utils/extract-agent-model.test.ts index 3a2f94843..00b1444a9 100644 --- a/packages/app/src/utils/extract-agent-model.test.ts +++ b/packages/app/src/utils/extract-agent-model.test.ts @@ -11,12 +11,12 @@ describe("extractAgentModel", () => { expect(extractAgentModel(agent)).toBe("gpt-5.2-codex"); }); - it("returns null when runtime model missing even if config model is set", () => { + it("returns configured model when runtime model is missing", () => { const agent = { model: "gpt-5.1-codex", runtimeInfo: {}, } as Partial as Agent; - expect(extractAgentModel(agent)).toBeNull(); + expect(extractAgentModel(agent)).toBe("gpt-5.1-codex"); }); }); diff --git a/packages/app/src/utils/tool-call-parsers.ts b/packages/app/src/utils/tool-call-parsers.ts index 4a1db371d..9f438ad51 100644 --- a/packages/app/src/utils/tool-call-parsers.ts +++ b/packages/app/src/utils/tool-call-parsers.ts @@ -1161,6 +1161,12 @@ const TOOL_NAME_MAP: Record = { Bash: "Shell", read_file: "Read", apply_patch: "Edit", + "agent-control.set_title": "Set title", + "agent-control.set_branch": "Set branch", + set_title: "Set title", + set_branch: "Set branch", + "mcp__agent-control__set_title": "Set title", + "mcp__agent-control__set_branch": "Set branch", }; const ToolCallDisplaySchema = z diff --git a/packages/server/src/utils/tool-call-parsers.ts b/packages/server/src/utils/tool-call-parsers.ts index eb80781e7..14111d785 100644 --- a/packages/server/src/utils/tool-call-parsers.ts +++ b/packages/server/src/utils/tool-call-parsers.ts @@ -22,6 +22,9 @@ const PrincipalParamSchema = z.union([ // Command as array (Codex sends this) z.object({ command: z.array(z.string()).nonempty() }).transform((d) => ({ type: "command" as const, value: d.command.join(" ") })), // Other text params + z.object({ title: z.string() }).transform((d) => ({ type: "text" as const, value: d.title })), + z.object({ name: z.string() }).transform((d) => ({ type: "text" as const, value: d.name })), + z.object({ branch: z.string() }).transform((d) => ({ type: "text" as const, value: d.branch })), z.object({ pattern: z.string() }).transform((d) => ({ type: "text" as const, value: d.pattern })), z.object({ query: z.string() }).transform((d) => ({ type: "text" as const, value: d.query })), z.object({ url: z.string() }).transform((d) => ({ type: "text" as const, value: d.url })),