From ae964772b5e7710c3069b0db7f3ab218fbf2ad27 Mon Sep 17 00:00:00 2001 From: Anjali Sridhar Date: Wed, 18 Feb 2026 16:09:07 -0800 Subject: [PATCH] feat(tracker): move tracker storage to project temp directory --- packages/core/src/config/storage.ts | 9 +++++++++ packages/core/src/services/trackerService.test.ts | 10 +++++----- packages/core/src/services/trackerService.ts | 4 +--- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/core/src/config/storage.ts b/packages/core/src/config/storage.ts index f407c29539..ebfedb80c1 100644 --- a/packages/core/src/config/storage.ts +++ b/packages/core/src/config/storage.ts @@ -245,6 +245,15 @@ export class Storage { return path.join(this.getProjectTempDir(), 'plans'); } + getProjectTempTrackerDir(sessionId: string): string { + return path.join( + this.getProjectTempDir(), + sessionId, + '.tracker', + sessionId, + ); + } + getExtensionsDir(): string { return path.join(this.getGeminiDir(), 'extensions'); } diff --git a/packages/core/src/services/trackerService.test.ts b/packages/core/src/services/trackerService.test.ts index 136953994b..b809489c19 100644 --- a/packages/core/src/services/trackerService.test.ts +++ b/packages/core/src/services/trackerService.test.ts @@ -12,23 +12,23 @@ import { TrackerService } from './trackerService.js'; import type { TrackerTask } from './trackerTypes.js'; describe('TrackerService', () => { - let testRootDir: string; + let testTrackerDir: string; let service: TrackerService; beforeEach(async () => { - testRootDir = await fs.mkdtemp( + testTrackerDir = await fs.mkdtemp( path.join(os.tmpdir(), 'tracker-service-test-'), ); - service = new TrackerService(testRootDir); + service = new TrackerService(testTrackerDir); }); afterEach(async () => { - await fs.rm(testRootDir, { recursive: true, force: true }); + await fs.rm(testTrackerDir, { recursive: true, force: true }); }); it('should initialize the tracker directory', async () => { await service.ensureInitialized(); - const tasksDir = path.join(testRootDir, '.tracker', 'tasks'); + const tasksDir = path.join(testTrackerDir, 'tasks'); const stats = await fs.stat(tasksDir); expect(stats.isDirectory()).toBe(true); }); diff --git a/packages/core/src/services/trackerService.ts b/packages/core/src/services/trackerService.ts index 37028fdd18..6e1fc2abca 100644 --- a/packages/core/src/services/trackerService.ts +++ b/packages/core/src/services/trackerService.ts @@ -10,11 +10,9 @@ import { randomBytes } from 'node:crypto'; import { TrackerTaskSchema, type TrackerTask } from './trackerTypes.js'; export class TrackerService { - private readonly trackerDir: string; private readonly tasksDir: string; - constructor(private readonly workspaceRoot: string) { - this.trackerDir = path.join(this.workspaceRoot, '.tracker'); + constructor(private readonly trackerDir: string) { this.tasksDir = path.join(this.trackerDir, 'tasks'); }