feat(coding-agent): Add sessionDir support in settings.json (#2598)
Users can now set sessionDir in global or project settings.json instead of passing --session-dir on every invocation. CLI flag takes precedence, then settings.json, then extension hooks. Closes #2429 Co-authored-by: Sam Collins <81678+smcllns@users.noreply.github.com> Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
This commit is contained in:
@@ -288,4 +288,25 @@ describe("SettingsManager", () => {
|
||||
expect(savedSettings.theme).toBe("light");
|
||||
});
|
||||
});
|
||||
|
||||
describe("getSessionDir", () => {
|
||||
it("should return undefined when not set", () => {
|
||||
writeFileSync(join(agentDir, "settings.json"), JSON.stringify({ theme: "dark" }));
|
||||
const manager = SettingsManager.create(projectDir, agentDir);
|
||||
expect(manager.getSessionDir()).toBeUndefined();
|
||||
});
|
||||
|
||||
it("should return global sessionDir", () => {
|
||||
writeFileSync(join(agentDir, "settings.json"), JSON.stringify({ sessionDir: "/tmp/sessions" }));
|
||||
const manager = SettingsManager.create(projectDir, agentDir);
|
||||
expect(manager.getSessionDir()).toBe("/tmp/sessions");
|
||||
});
|
||||
|
||||
it("should return project sessionDir, overriding global", () => {
|
||||
writeFileSync(join(agentDir, "settings.json"), JSON.stringify({ sessionDir: "/global/sessions" }));
|
||||
writeFileSync(join(projectDir, ".pi", "settings.json"), JSON.stringify({ sessionDir: "./sessions" }));
|
||||
const manager = SettingsManager.create(projectDir, agentDir);
|
||||
expect(manager.getSessionDir()).toBe("./sessions");
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user