fix(core): use session-specific temp directory for task tracker (#22382)

This commit is contained in:
anj-s
2026-03-13 16:35:26 -07:00
committed by GitHub
parent f75bdba568
commit 604d4ded8d
2 changed files with 22 additions and 0 deletions

View File

@@ -180,6 +180,25 @@ describe('Storage additional helpers', () => {
expect(storageWithSession.getProjectTempPlansDir()).toBe(expected);
});
it('getProjectTempTrackerDir returns ~/.gemini/tmp/<identifier>/tracker when no sessionId is provided', async () => {
await storage.initialize();
const tempDir = storage.getProjectTempDir();
const expected = path.join(tempDir, 'tracker');
expect(storage.getProjectTempTrackerDir()).toBe(expected);
});
it('getProjectTempTrackerDir returns ~/.gemini/tmp/<identifier>/<sessionId>/tracker when sessionId is provided', async () => {
const sessionId = 'test-session-id';
const storageWithSession = new Storage(projectRoot, sessionId);
ProjectRegistry.prototype.getShortId = vi
.fn()
.mockReturnValue(PROJECT_SLUG);
await storageWithSession.initialize();
const tempDir = storageWithSession.getProjectTempDir();
const expected = path.join(tempDir, sessionId, 'tracker');
expect(storageWithSession.getProjectTempTrackerDir()).toBe(expected);
});
describe('Session and JSON Loading', () => {
beforeEach(async () => {
await storage.initialize();

View File

@@ -302,6 +302,9 @@ export class Storage {
}
getProjectTempTrackerDir(): string {
if (this.sessionId) {
return path.join(this.getProjectTempDir(), this.sessionId, 'tracker');
}
return path.join(this.getProjectTempDir(), 'tracker');
}