Refactor SessionManager to use static factory methods

- Add factory methods: create(cwd), open(path), continueRecent(cwd), inMemory()
- Add static list(cwd) for session listing
- Make constructor private, pass cwd explicitly
- Update SDK to take sessionManager instead of sessionFile options
- Update main.ts to create SessionManager based on CLI flags
- Update SessionSelectorComponent to take sessions[] instead of SessionManager
- Update tests to use factory methods
This commit is contained in:
Mario Zechner 2025-12-22 01:29:54 +01:00
parent 7bf4c8ff24
commit ace8ea3d5b
9 changed files with 346 additions and 473 deletions

View file

@ -56,10 +56,7 @@ describe.skipIf(!API_KEY)("AgentSession branching", () => {
},
});
sessionManager = new SessionManager(false);
if (noSession) {
sessionManager.disable();
}
sessionManager = noSession ? SessionManager.inMemory() : SessionManager.create(tempDir);
const settingsManager = new SettingsManager(tempDir);
session = new AgentSession({

View file

@ -60,7 +60,7 @@ describe.skipIf(!API_KEY)("AgentSession compaction e2e", () => {
},
});
sessionManager = new SessionManager(false);
sessionManager = SessionManager.create(tempDir);
const settingsManager = new SettingsManager(tempDir);
session = new AgentSession({
@ -174,9 +174,8 @@ describe.skipIf(!API_KEY)("AgentSession compaction e2e", () => {
},
});
// Create session manager and disable file persistence
const noSessionManager = new SessionManager(false);
noSessionManager.disable();
// Create in-memory session manager
const noSessionManager = SessionManager.inMemory();
const settingsManager = new SettingsManager(tempDir);