
























@@ -15,15 +15,11 @@ const state = vi.hoisted(() => ({
1515registerAgentRunContextMock: vi.fn(),
1616clearAgentRunContextMock: vi.fn(),
1717updateSessionStoreAfterAgentRunMock: vi.fn(),
18-updateSessionStoreFileMock: vi.fn(),
1918deliverAgentCommandResultMock: vi.fn(),
2019clearSessionAuthProfileOverrideMock: vi.fn(),
21-applyModelOverrideToSessionEntryMock: vi.fn((..._args: unknown[]) => ({ updated: false })),
2220authProfileStoreMock: { profiles: {} } as { profiles: Record<string, unknown> },
2321sessionEntryMock: undefined as unknown,
2422sessionStoreMock: undefined as unknown,
25-sessionStorePathMock: undefined as string | undefined,
26-persistedSessionStoreMock: undefined as Record<string, unknown> | undefined,
2723}));
28242925vi.mock("./model-fallback.js", () => ({
@@ -77,7 +73,7 @@ vi.mock("./command/session.js", () => ({
7773skillsSnapshot: { prompt: "", skills: [], version: 0 },
7874},
7975sessionStore: state.sessionStoreMock,
80-storePath: state.sessionStorePathMock,
76+storePath: undefined,
8177isNewSession: false,
8278persistedThinking: undefined,
8379persistedVerbose: undefined,
@@ -181,10 +177,6 @@ vi.mock("../config/sessions.js", () => ({
181177),
182178}));
183179184-vi.mock("../config/sessions/store.js", () => ({
185-updateSessionStore: (...args: unknown[]) => state.updateSessionStoreFileMock(...args),
186-}));
187-188180vi.mock("../config/sessions/transcript-resolve.runtime.js", () => ({
189181resolveSessionTranscriptFile: async () => ({
190182sessionFile: "/tmp/session.jsonl",
@@ -239,8 +231,7 @@ vi.mock("../sessions/level-overrides.js", () => ({
239231}));
240232241233vi.mock("../sessions/model-overrides.js", () => ({
242-applyModelOverrideToSessionEntry: (...args: unknown[]) =>
243-state.applyModelOverrideToSessionEntryMock(...args),
234+applyModelOverrideToSessionEntry: () => ({ updated: false }),
244235}));
245236246237vi.mock("../sessions/send-policy.js", () => ({
@@ -409,38 +400,6 @@ function expectFallbackOverrideCalls(first: boolean, second: boolean) {
409400});
410401}
411402412-function useRealisticDefaultModelOverrideReset() {
413-state.applyModelOverrideToSessionEntryMock.mockImplementation((params: unknown) => {
414-const { entry, selection } = params as {
415-entry: {
416-providerOverride?: string;
417-modelOverride?: string;
418-modelOverrideSource?: string;
419-authProfileOverride?: string;
420-authProfileOverrideSource?: string;
421-};
422-selection: { isDefault?: boolean };
423-};
424-if (!selection.isDefault) {
425-return { updated: false };
426-}
427-const before = { ...entry };
428-delete entry.providerOverride;
429-delete entry.modelOverride;
430-delete entry.modelOverrideSource;
431-delete entry.authProfileOverride;
432-delete entry.authProfileOverrideSource;
433-return {
434-updated:
435-before.providerOverride !== entry.providerOverride ||
436-before.modelOverride !== entry.modelOverride ||
437-before.modelOverrideSource !== entry.modelOverrideSource ||
438-before.authProfileOverride !== entry.authProfileOverride ||
439-before.authProfileOverrideSource !== entry.authProfileOverrideSource,
440-};
441-});
442-}
443-444403describe("agentCommand – LiveSessionModelSwitchError retry", () => {
445404beforeEach(() => {
446405vi.clearAllMocks();
@@ -471,13 +430,6 @@ describe("agentCommand – LiveSessionModelSwitchError retry", () => {
471430state.authProfileStoreMock = { profiles: {} };
472431state.sessionEntryMock = undefined;
473432state.sessionStoreMock = undefined;
474-state.sessionStorePathMock = undefined;
475-state.persistedSessionStoreMock = undefined;
476-state.applyModelOverrideToSessionEntryMock.mockReturnValue({ updated: false });
477-state.updateSessionStoreFileMock.mockImplementation(
478-async (_path: string, fn: (store: Record<string, unknown>) => unknown) =>
479-fn(state.persistedSessionStoreMock ?? {}),
480-);
481433state.deliverAgentCommandResultMock.mockResolvedValue(undefined);
482434state.updateSessionStoreAfterAgentRunMock.mockResolvedValue(undefined);
483435});
@@ -690,64 +642,4 @@ describe("agentCommand – LiveSessionModelSwitchError retry", () => {
690642691643expectFallbackOverrideCalls(false, true);
692644});
693-694-it("clears auto-fallback model overrides before the next command retries primary", async () => {
695-useRealisticDefaultModelOverrideReset();
696-697-const sessionEntry = {
698-sessionId: "session-1",
699-updatedAt: Date.now(),
700-providerOverride: "openai",
701-modelOverride: "gpt-5.4",
702-modelOverrideSource: "auto",
703-authProfileOverride: "openai:default",
704-authProfileOverrideSource: "auto",
705-skillsSnapshot: { prompt: "", skills: [], version: 0 },
706-};
707-state.sessionEntryMock = sessionEntry;
708-state.sessionStoreMock = { "agent:main": sessionEntry };
709-state.sessionStorePathMock = "/tmp/sessions.json";
710-state.persistedSessionStoreMock = { "agent:main": { ...sessionEntry } };
711-state.runWithModelFallbackMock.mockImplementation(async (params: FallbackRunnerParams) => {
712-const result = await params.run(params.provider, params.model);
713-return {
714- result,
715-provider: params.provider,
716-model: params.model,
717-attempts: [],
718-};
719-});
720-state.runAgentAttemptMock.mockResolvedValue(makeSuccessResult("anthropic", "claude"));
721-722-await agentCommand({
723-message: "hello",
724-sessionKey: "agent:main",
725-senderIsOwner: true,
726-});
727-728-const fallbackParams = state.runWithModelFallbackMock.mock.calls[0]?.[0] as
729-| FallbackRunnerParams
730-| undefined;
731-expect(fallbackParams).toMatchObject({
732-provider: "anthropic",
733-model: "claude",
734-});
735-expect(state.resolveEffectiveModelFallbacksMock).toHaveBeenCalledWith(
736-expect.objectContaining({ hasSessionModelOverride: false }),
737-);
738-const activeStore = state.sessionStoreMock as Record<string, typeof sessionEntry>;
739-const persistedStore = state.persistedSessionStoreMock as Record<string, typeof sessionEntry>;
740-expect(activeStore["agent:main"]).toMatchObject({
741-sessionId: "session-1",
742-});
743-expect(activeStore["agent:main"].providerOverride).toBeUndefined();
744-expect(activeStore["agent:main"].modelOverride).toBeUndefined();
745-expect(activeStore["agent:main"].modelOverrideSource).toBeUndefined();
746-expect(persistedStore["agent:main"]).toMatchObject({
747-sessionId: "session-1",
748-});
749-expect(persistedStore["agent:main"].providerOverride).toBeUndefined();
750-expect(persistedStore["agent:main"].modelOverride).toBeUndefined();
751-expect(persistedStore["agent:main"].modelOverrideSource).toBeUndefined();
752-});
753645});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。