From df6f9829faa879e176e91fbb74d83d124180dbb2 Mon Sep 17 00:00:00 2001 From: 0xRoy <1997roylee@gmail.com> Date: Fri, 29 May 2026 18:26:43 +0800 Subject: [PATCH] Persist Codex model settings during onboard --- .../cli/src/features/onboard/onboard-files.ts | 6 ++++++ packages/cli/tests/onboard.test.ts | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/packages/cli/src/features/onboard/onboard-files.ts b/packages/cli/src/features/onboard/onboard-files.ts index fcc260e2..af98a78e 100644 --- a/packages/cli/src/features/onboard/onboard-files.ts +++ b/packages/cli/src/features/onboard/onboard-files.ts @@ -44,6 +44,12 @@ export async function writeOnboardFiles( }, draft.instance, ); + instanceConfig.codex = { + models: { ...draft.codex.models }, + ...(draft.codex.reasoningEfforts + ? { reasoningEfforts: { ...draft.codex.reasoningEfforts } } + : {}), + }; if (existingInstanceConfig.ok && existingInstanceConfig.config.plugins) { instanceConfig.plugins = existingInstanceConfig.config.plugins; } diff --git a/packages/cli/tests/onboard.test.ts b/packages/cli/tests/onboard.test.ts index f978bcdb..037c1bc6 100644 --- a/packages/cli/tests/onboard.test.ts +++ b/packages/cli/tests/onboard.test.ts @@ -162,6 +162,25 @@ describe("onboard helpers", () => { }); }); + it("writes Codex model settings into the instance config during onboard", async () => { + const tempDir = await mkdtemp( + path.join(process.cwd(), ".tmp-onboard-test-"), + ); + + try { + await writeOnboardFiles(tempDir, draft); + const loaded = await loadInstanceConfig(tempDir); + expect(loaded.ok).toBe(true); + if (!loaded.ok) return; + expect(loaded.config.codex?.models).toEqual(draft.codex.models); + expect(loaded.config.codex?.reasoningEfforts).toEqual( + draft.codex.reasoningEfforts, + ); + } finally { + await rm(tempDir, { recursive: true, force: true }); + } + }); + it("uses low as default planning reasoning effort", () => { expect(DEFAULT_REASONING_EFFORTS.plan).toBe("low"); });