From dc3eae155594feccfe5ccb4d0559d3b8e5de0b5d Mon Sep 17 00:00:00 2001 From: 777genius Date: Sun, 26 Apr 2026 21:44:39 +0300 Subject: [PATCH] fix: keep opencode follow-up messages visible --- src/renderer/utils/teamMessageFiltering.ts | 2 +- .../utils/teamMessageFiltering.test.ts | 36 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/renderer/utils/teamMessageFiltering.ts b/src/renderer/utils/teamMessageFiltering.ts index 1888fe6f..63f2cce1 100644 --- a/src/renderer/utils/teamMessageFiltering.ts +++ b/src/renderer/utils/teamMessageFiltering.ts @@ -83,7 +83,7 @@ function isRelayDuplicateOfVisibleMessage( return false; } - if (message.source === 'lead_process' || message.source === 'runtime_delivery') { + if (message.source === 'lead_process') { return true; } diff --git a/test/renderer/utils/teamMessageFiltering.test.ts b/test/renderer/utils/teamMessageFiltering.test.ts index af48730e..b06197d3 100644 --- a/test/renderer/utils/teamMessageFiltering.test.ts +++ b/test/renderer/utils/teamMessageFiltering.test.ts @@ -139,6 +139,42 @@ describe('filterTeamMessages', () => { expect(result.map((message) => message.messageId)).toEqual(['delivery-1', 'reply-1']); }); + it('keeps same-direction OpenCode follow-ups when the visible text differs', () => { + const messages = [ + makeMessage({ + messageId: 'reply-1', + from: 'jack', + to: 'user', + source: 'runtime_delivery', + text: 'Initial answer.', + }), + makeMessage({ + messageId: 'reply-2', + from: 'jack', + to: 'user', + source: 'runtime_delivery', + text: 'Additional context after checking logs.', + relayOfMessageId: 'reply-1', + }), + makeMessage({ + messageId: 'reply-3', + from: 'jack', + to: 'user', + source: 'runtime_delivery', + text: 'Initial answer.', + relayOfMessageId: 'reply-1', + }), + ]; + + const result = filterTeamMessages(messages, { + timeWindow: null, + filter: { from: new Set(), to: new Set(), showNoise: true }, + searchQuery: '', + }); + + expect(result.map((message) => message.messageId)).toEqual(['reply-1', 'reply-2']); + }); + it('hides internal lead relay deliveries while keeping member replies', () => { const messages = [ makeMessage({