mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-05 10:40:20 +00:00
fix: restore cron context window priming
This commit is contained in:
@@ -8,7 +8,7 @@ import {
|
||||
buildWorkspaceSkillSnapshotMock,
|
||||
getCliSessionIdMock,
|
||||
isCliProviderMock,
|
||||
lookupCachedContextTokensMock,
|
||||
lookupContextTokensMock,
|
||||
loadRunCronIsolatedAgentTurn,
|
||||
logWarnMock,
|
||||
makeCronSession,
|
||||
@@ -325,14 +325,14 @@ describe("runCronIsolatedAgentTurn — skill filter", () => {
|
||||
});
|
||||
|
||||
describe("context token fallback", () => {
|
||||
it("preserves existing session contextTokens when no cached model window is loaded", async () => {
|
||||
it("preserves existing session contextTokens when no configured or cached model window is loaded", async () => {
|
||||
const session = makeCronSession({
|
||||
sessionEntry: makeCronSessionEntry({
|
||||
contextTokens: 222_000,
|
||||
}),
|
||||
});
|
||||
resolveCronSessionMock.mockReturnValue(session);
|
||||
lookupCachedContextTokensMock.mockReturnValue(undefined);
|
||||
lookupContextTokensMock.mockReturnValue(undefined);
|
||||
|
||||
const result = await runSkillFilterCase();
|
||||
|
||||
@@ -340,19 +340,22 @@ describe("runCronIsolatedAgentTurn — skill filter", () => {
|
||||
expect(session.sessionEntry.contextTokens).toBe(222_000);
|
||||
});
|
||||
|
||||
it("prefers cached model contextTokens over the previous session value", async () => {
|
||||
it("prefers sync-configured model contextTokens over the previous session value", async () => {
|
||||
const session = makeCronSession({
|
||||
sessionEntry: makeCronSessionEntry({
|
||||
contextTokens: 222_000,
|
||||
}),
|
||||
});
|
||||
resolveCronSessionMock.mockReturnValue(session);
|
||||
lookupCachedContextTokensMock.mockReturnValue(512_000);
|
||||
lookupContextTokensMock.mockReturnValue(512_000);
|
||||
|
||||
const result = await runSkillFilterCase();
|
||||
|
||||
expect(result.status).toBe("ok");
|
||||
expect(session.sessionEntry.contextTokens).toBe(512_000);
|
||||
expect(lookupContextTokensMock).toHaveBeenCalledWith("gpt-4", {
|
||||
allowAsyncLoad: false,
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -48,7 +48,7 @@ export const resolveThinkingDefaultMock = createMock();
|
||||
export const runWithModelFallbackMock = createMock();
|
||||
export const runEmbeddedPiAgentMock = createMock();
|
||||
export const runCliAgentMock = createMock();
|
||||
export const lookupCachedContextTokensMock = createMock();
|
||||
export const lookupContextTokensMock = createMock();
|
||||
export const getCliSessionIdMock = createMock();
|
||||
export const updateSessionStoreMock = createMock();
|
||||
export const resolveCronSessionMock = createMock();
|
||||
@@ -117,9 +117,13 @@ vi.mock("../../agents/pi-embedded.js", () => ({
|
||||
runEmbeddedPiAgent: runEmbeddedPiAgentMock,
|
||||
}));
|
||||
|
||||
vi.mock("../../agents/context-cache.js", () => ({
|
||||
lookupCachedContextTokens: lookupCachedContextTokensMock,
|
||||
}));
|
||||
vi.mock("../../agents/context.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../../agents/context.js")>();
|
||||
return {
|
||||
...actual,
|
||||
lookupContextTokens: lookupContextTokensMock,
|
||||
};
|
||||
});
|
||||
|
||||
vi.mock("../../agents/date-time.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../../agents/date-time.js")>();
|
||||
@@ -352,8 +356,8 @@ export function resetRunCronIsolatedAgentTurnHarness(): void {
|
||||
runEmbeddedPiAgentMock.mockResolvedValue(makeDefaultEmbeddedResult());
|
||||
|
||||
runCliAgentMock.mockReset();
|
||||
lookupCachedContextTokensMock.mockReset();
|
||||
lookupCachedContextTokensMock.mockReturnValue(undefined);
|
||||
lookupContextTokensMock.mockReset();
|
||||
lookupContextTokensMock.mockReturnValue(undefined);
|
||||
getCliSessionIdMock.mockReturnValue(undefined);
|
||||
|
||||
updateSessionStoreMock.mockReset();
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
} from "../../agents/agent-scope.js";
|
||||
import { resolveSessionAuthProfileOverride } from "../../agents/auth-profiles/session-override.js";
|
||||
import { resolveBootstrapWarningSignaturesSeen } from "../../agents/bootstrap-budget.js";
|
||||
import { lookupCachedContextTokens } from "../../agents/context-cache.js";
|
||||
import { lookupContextTokens } from "../../agents/context.js";
|
||||
import { resolveCronStyleNow } from "../../agents/current-time.js";
|
||||
import { DEFAULT_CONTEXT_TOKENS } from "../../agents/defaults.js";
|
||||
import { resolveFastModeState } from "../../agents/fast-mode.js";
|
||||
@@ -722,7 +722,7 @@ export async function runCronIsolatedAgentTurn(params: {
|
||||
finalRunResult.meta?.agentMeta?.provider ?? fallbackProvider ?? liveSelection.provider;
|
||||
const contextTokens =
|
||||
resolvePositiveContextTokens(agentCfg?.contextTokens) ??
|
||||
lookupCachedContextTokens(modelUsed) ??
|
||||
lookupContextTokens(modelUsed, { allowAsyncLoad: false }) ??
|
||||
resolvePositiveContextTokens(cronSession.sessionEntry.contextTokens) ??
|
||||
DEFAULT_CONTEXT_TOKENS;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user