From ed6b0362c0af23f19319fc762e7c5fd024d2fea6 Mon Sep 17 00:00:00 2001 From: William Valentin Date: Tue, 24 Feb 2026 13:26:40 -0800 Subject: [PATCH] fix(tui): reset agent-backed minimal sessions --- src/frontends/tui/minimal.test.ts | 28 ++++++++++++++++++++++++++++ src/frontends/tui/minimal.ts | 6 +++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/frontends/tui/minimal.test.ts b/src/frontends/tui/minimal.test.ts index 014859a..a5b507d 100644 --- a/src/frontends/tui/minimal.test.ts +++ b/src/frontends/tui/minimal.test.ts @@ -377,6 +377,34 @@ describe('MinimalTui backend command', () => { } }); + it('uses agent.reset for /reset when an agent is configured', async () => { + const mockSession = { + id: 'test', + getHistory: () => [], + addMessage: vi.fn(), + clear: vi.fn(), + replaceHistory: vi.fn(), + }; + const mockAgent = { + reset: vi.fn(), + setModelTier: vi.fn(), + getModelTier: vi.fn(() => 'default'), + process: vi.fn(), + }; + + const tui = new MinimalTui({ + session: asSession(mockSession), + modelClient: asModelClient({}), + systemPrompt: 'test', + agent: asAgent(mockAgent), + }); + + await minimalTuiPrivates(tui).handleCommand({ type: 'reset' }); + + expect(mockAgent.reset).toHaveBeenCalledOnce(); + expect(mockSession.clear).not.toHaveBeenCalled(); + }); + it('prints tools output when /tools is invoked', async () => { const mockSession = { id: 'test', diff --git a/src/frontends/tui/minimal.ts b/src/frontends/tui/minimal.ts index bf8bb45..ccd0e42 100644 --- a/src/frontends/tui/minimal.ts +++ b/src/frontends/tui/minimal.ts @@ -468,7 +468,11 @@ export class MinimalTui { break; case 'reset': - this.config.session.clear(); + if (this.config.agent) { + this.config.agent.reset(); + } else { + this.config.session.clear(); + } this.totalUsage = { inputTokens: 0, outputTokens: 0 }; console.log(`${colors.gray}Session cleared.${colors.reset}\n`); break;