fix(coding-agent): preserve override role provenance

This commit is contained in:
Kyle McCleary
2026-08-04 18:32:06 -07:00
parent 5cc4f5c93a
commit 0a0eca3834
3 changed files with 23 additions and 1 deletions
@@ -365,4 +365,25 @@ describe("runSubprocess parent-discovery pass-through (issue #2190)", () => {
const forwarded = spy.mock.calls[0]?.[0];
expect(forwarded?.thinkingLevel).toBe(ThinkingLevel.Low);
});
it("persists an explicit role from a caller model override", async () => {
const model = getBundledModel("anthropic", "claude-sonnet-4-5");
if (!model) throw new Error("Expected claude-sonnet-4-5 model to exist");
const settings = Settings.isolated({
modelRoles: { reviewer: `${model.provider}/${model.id}` },
});
const session = yieldEmittingSession();
const initSpy = vi.spyOn(session.sessionManager, "appendSessionInit");
vi.spyOn(sdkModule, "createAgentSession").mockResolvedValue(createSessionResult(session));
const result = await runSubprocess({
...baseOptions,
id: "subagent-model-override-role",
modelOverride: "@reviewer",
settings,
modelRegistry: createModelRegistry(model),
});
expect(result.exitCode).toBe(0);
expect(initSpy).toHaveBeenCalledWith(expect.objectContaining({ modelRole: "reviewer" }));
});
});