Agents: skip eager context warmup for status commands

This commit is contained in:
Vincent Koc
2026-03-15 20:52:09 -07:00
parent 92d5307074
commit 1f50fed3b2
2 changed files with 30 additions and 0 deletions

View File

@@ -104,6 +104,34 @@ describe("lookupContextTokens", () => {
}
});
it("skips eager warmup for status commands that only read model metadata opportunistically", async () => {
const loadConfigMock = vi.fn(() => ({ models: {} }));
mockContextModuleDeps(loadConfigMock);
const argvSnapshot = process.argv;
process.argv = ["node", "openclaw", "status", "--json"];
try {
await import("./context.js");
expect(loadConfigMock).not.toHaveBeenCalled();
} finally {
process.argv = argvSnapshot;
}
});
it("skips eager warmup for gateway commands that do not need model metadata at startup", async () => {
const loadConfigMock = vi.fn(() => ({ models: {} }));
mockContextModuleDeps(loadConfigMock);
const argvSnapshot = process.argv;
process.argv = ["node", "openclaw", "gateway", "status", "--json"];
try {
await import("./context.js");
expect(loadConfigMock).not.toHaveBeenCalled();
} finally {
process.argv = argvSnapshot;
}
});
it("retries config loading after backoff when an initial load fails", async () => {
vi.useFakeTimers();
const loadConfigMock = vi

View File

@@ -114,11 +114,13 @@ const SKIP_EAGER_WARMUP_PRIMARY_COMMANDS = new Set([
"config",
"directory",
"doctor",
"gateway",
"health",
"hooks",
"logs",
"plugins",
"secrets",
"status",
"update",
"webhooks",
]);