feat: persist toolset mode and add auto option (#1015)

This commit is contained in:
Charles Packer
2026-02-18 13:43:40 -08:00
committed by GitHub
parent bdc23932b5
commit 5fac4bc106
7 changed files with 333 additions and 230 deletions

View File

@@ -977,3 +977,37 @@ describe("Settings Manager - Agents Array Migration", () => {
expect(settingsManager.isMemfsEnabled("agent-persist-test")).toBe(true);
});
});
describe("Settings Manager - Toolset Preferences", () => {
test("getToolsetPreference defaults to auto", async () => {
await settingsManager.initialize();
expect(settingsManager.getToolsetPreference("agent-unset")).toBe("auto");
});
test("setToolsetPreference stores and clears manual override", async () => {
await settingsManager.initialize();
settingsManager.setToolsetPreference("agent-toolset", "codex");
expect(settingsManager.getToolsetPreference("agent-toolset")).toBe("codex");
settingsManager.setToolsetPreference("agent-toolset", "auto");
expect(settingsManager.getToolsetPreference("agent-toolset")).toBe("auto");
});
test("setToolsetPreference persists to disk", async () => {
await settingsManager.initialize();
settingsManager.setToolsetPreference("agent-toolset-persist", "gemini");
// Wait for async persist
await new Promise((resolve) => setTimeout(resolve, 100));
await settingsManager.reset();
await settingsManager.initialize();
expect(settingsManager.getToolsetPreference("agent-toolset-persist")).toBe(
"gemini",
);
});
});

View File

@@ -140,4 +140,15 @@ describe("Startup Flow - Smoke", () => {
expect(result.stderr).toContain("Missing LETTA_API_KEY");
expect(result.stderr).not.toContain("No recent session found");
});
test("--toolset auto is accepted", async () => {
const result = await runCli(
["--new-agent", "--toolset", "auto", "-p", "Say OK"],
{
expectExit: 1,
},
);
expect(result.stderr).toContain("Missing LETTA_API_KEY");
expect(result.stderr).not.toContain("Invalid toolset");
});
});