From 773f69afa89994c4d291db3fad3672be7c6bcf5a Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Sun, 23 Aug 2026 18:46:03 -0700 Subject: [PATCH] fix(agent-status): honor opted-out synthetic profiles --- src/shared/agent-title-evidence.test.ts | 1 + src/shared/agent-title-evidence.ts | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/shared/agent-title-evidence.test.ts b/src/shared/agent-title-evidence.test.ts index c6032f974ef..4d5862fd03e 100644 --- a/src/shared/agent-title-evidence.test.ts +++ b/src/shared/agent-title-evidence.test.ts @@ -240,6 +240,7 @@ describe('collectAgentTitleEvidence', () => { it('does not invent synthetic titles for an opted-out profile', () => { expect(agentFor('OpenCode ready')).toBeNull() + expect(agentFor('⠋ OpenCode')).toBeNull() expect(reasonFor('OpenCode ready')).toBe('free-text-only') }) diff --git a/src/shared/agent-title-evidence.ts b/src/shared/agent-title-evidence.ts index 85790cbc52c..caffca3863a 100644 --- a/src/shared/agent-title-evidence.ts +++ b/src/shared/agent-title-evidence.ts @@ -198,7 +198,11 @@ function agentForSyntheticTitle(text: string): TuiAgent | null { const emittedLabels = [profile.permissionLabel, profile.idleLabel] if (profile.synthesizeWorkingTitle !== false) { // Working labels are emitted only as spinner frames; a bare name is free text. - if (containsAgentSpinnerGlyph(trimmed) && normalized === profile.workingLabel.toLowerCase()) { + if ( + profile.synthesizeTerminalTitle !== false && + containsAgentSpinnerGlyph(trimmed) && + normalized === profile.workingLabel.toLowerCase() + ) { return agent } }