diff --git a/src/state-manager.ts b/src/state-manager.ts index b1dba9d..87f3dc2 100644 --- a/src/state-manager.ts +++ b/src/state-manager.ts @@ -87,8 +87,8 @@ export class StateManager { private knowledgeDir: string; private nextStateId = 1; - constructor() { - this.experienceTracker = new ExperienceTracker(); + constructor(options: { incognito?: boolean } = {}) { + this.experienceTracker = new ExperienceTracker({ disabled: options.incognito }); const configParser = ConfigParser.getInstance(); const config = configParser.getConfig(); const configPath = configParser.getConfigPath(); diff --git a/tests/unit/state-manager.test.ts b/tests/unit/state-manager.test.ts index fd3bce7..48cdd80 100644 --- a/tests/unit/state-manager.test.ts +++ b/tests/unit/state-manager.test.ts @@ -40,6 +40,15 @@ describe('StateManager', () => { it('should have zero listeners initially', () => { expect(stateManager.getListenerCount()).toBe(0); }); + + it('disables the experience tracker in incognito mode', () => { + const incognito = new StateManager({ incognito: true }); + expect((incognito.getExperienceTracker() as any).disabled).toBe(true); + }); + + it('leaves the experience tracker enabled by default', () => { + expect((stateManager.getExperienceTracker() as any).disabled).toBe(false); + }); }); describe('updateState', () => {