Skip to content

Commit fe2dd61

Browse files
committed
fix doctor stale session runtime pins
1 parent 9feb331 commit fe2dd61

2 files changed

Lines changed: 19 additions & 4 deletions

File tree

src/commands/doctor/shared/codex-route-warnings.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ describe("collectCodexRouteWarnings", () => {
239239
expect(result.changes.join("\n")).not.toContain("agentRuntime.id");
240240
});
241241

242-
it("repairs persisted session route refs and preserves existing runtime and auth pins", () => {
242+
it("repairs persisted session route refs, clears runtime pins, and preserves auth pins", () => {
243243
const store: Record<string, SessionEntry> = {
244244
main: {
245245
sessionId: "s1",
@@ -278,12 +278,12 @@ describe("collectCodexRouteWarnings", () => {
278278
providerOverride: "openai",
279279
modelOverride: "gpt-5.4",
280280
modelOverrideSource: "auto",
281-
agentHarnessId: "codex",
282-
agentRuntimeOverride: "codex",
283281
authProfileOverride: "openai-codex:default",
284282
authProfileOverrideSource: "auto",
285283
authProfileOverrideCompactionCount: 2,
286284
});
285+
expect(store.main.agentHarnessId).toBeUndefined();
286+
expect(store.main.agentRuntimeOverride).toBeUndefined();
287287
expect(store.main.fallbackNoticeSelectedModel).toBeUndefined();
288288
expect(store.main.fallbackNoticeActiveModel).toBeUndefined();
289289
expect(store.main.fallbackNoticeReason).toBeUndefined();

src/commands/doctor/shared/codex-route-warnings.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -625,6 +625,19 @@ function clearStaleCodexFallbackNotice(entry: SessionEntry): boolean {
625625
return true;
626626
}
627627

628+
function clearStaleSessionRuntimePins(entry: SessionEntry): boolean {
629+
let changed = false;
630+
if (entry.agentHarnessId !== undefined) {
631+
delete entry.agentHarnessId;
632+
changed = true;
633+
}
634+
if (entry.agentRuntimeOverride !== undefined) {
635+
delete entry.agentRuntimeOverride;
636+
changed = true;
637+
}
638+
return changed;
639+
}
640+
628641
export function repairCodexSessionStoreRoutes(params: {
629642
store: Record<string, SessionEntry>;
630643
now?: number;
@@ -647,7 +660,9 @@ export function repairCodexSessionStoreRoutes(params: {
647660
});
648661
const changedModelRoute = changedRuntimeModelRoute || changedOverrideModelRoute;
649662
const changedFallbackNotice = clearStaleCodexFallbackNotice(entry);
650-
if (!changedModelRoute && !changedFallbackNotice) {
663+
const changedRuntimePins =
664+
changedModelRoute || changedFallbackNotice ? clearStaleSessionRuntimePins(entry) : false;
665+
if (!changedModelRoute && !changedFallbackNotice && !changedRuntimePins) {
651666
continue;
652667
}
653668
entry.updatedAt = now;

0 commit comments

Comments
 (0)