From ad98294352167a15dab6e81c4356a2af5ca906f5 Mon Sep 17 00:00:00 2001 From: Abhijit Balaji Date: Mon, 6 Apr 2026 13:33:18 -0700 Subject: [PATCH] Revert "feat(core,cli): prioritize summary for topics (#24608)" (#24777) --- .../messages/ToolGroupMessage.test.tsx | 66 +++++++++---------- .../ui/components/messages/TopicMessage.tsx | 13 ++-- .../ToolGroupMessage.test.tsx.snap | 8 ++- 3 files changed, 45 insertions(+), 42 deletions(-) diff --git a/packages/cli/src/ui/components/messages/ToolGroupMessage.test.tsx b/packages/cli/src/ui/components/messages/ToolGroupMessage.test.tsx index 2f0ec8101b..7108d76154 100644 --- a/packages/cli/src/ui/components/messages/ToolGroupMessage.test.tsx +++ b/packages/cli/src/ui/components/messages/ToolGroupMessage.test.tsx @@ -10,7 +10,6 @@ import { ToolGroupMessage } from './ToolGroupMessage.js'; import { UPDATE_TOPIC_TOOL_NAME, TOPIC_PARAM_TITLE, - TOPIC_PARAM_SUMMARY, TOPIC_PARAM_STRATEGIC_INTENT, makeFakeConfig, CoreToolCallStatus, @@ -258,15 +257,42 @@ describe('', () => { unmount(); }); - it('renders update_topic tool call prioritizing summary over strategic_intent', async () => { + it('renders update_topic tool call using TopicMessage', async () => { const toolCalls = [ createToolCall({ - callId: 'topic-tool-priority', + callId: 'topic-tool', name: UPDATE_TOPIC_TOOL_NAME, args: { [TOPIC_PARAM_TITLE]: 'Testing Topic', - [TOPIC_PARAM_SUMMARY]: 'This is the summary', - [TOPIC_PARAM_STRATEGIC_INTENT]: 'This should be ignored', + [TOPIC_PARAM_STRATEGIC_INTENT]: 'This is the description', + }, + }), + ]; + const item = createItem(toolCalls); + + const { lastFrame, unmount } = await renderWithProviders( + , + { + config: baseMockConfig, + settings: fullVerbositySettings, + }, + ); + + const output = lastFrame(); + expect(output).toContain('Testing Topic: '); + expect(output).toContain('This is the description'); + expect(output).toMatchSnapshot('update_topic_tool'); + unmount(); + }); + + it('renders update_topic tool call with summary instead of strategic_intent', async () => { + const toolCalls = [ + createToolCall({ + callId: 'topic-tool-summary', + name: UPDATE_TOPIC_TOOL_NAME, + args: { + [TOPIC_PARAM_TITLE]: 'Testing Topic', + summary: 'This is the summary', }, }), ]; @@ -283,34 +309,6 @@ describe('', () => { const output = lastFrame(); expect(output).toContain('Testing Topic: '); expect(output).toContain('This is the summary'); - expect(output).not.toContain('This should be ignored'); - unmount(); - }); - - it('renders update_topic tool call falling back to strategic_intent', async () => { - const toolCalls = [ - createToolCall({ - callId: 'topic-tool-fallback', - name: UPDATE_TOPIC_TOOL_NAME, - args: { - [TOPIC_PARAM_TITLE]: 'Testing Topic', - [TOPIC_PARAM_STRATEGIC_INTENT]: 'Fallback intent', - }, - }), - ]; - const item = createItem(toolCalls); - - const { lastFrame, unmount } = await renderWithProviders( - , - { - config: baseMockConfig, - settings: fullVerbositySettings, - }, - ); - - const output = lastFrame(); - expect(output).toContain('Testing Topic: '); - expect(output).toContain('Fallback intent'); unmount(); }); @@ -321,7 +319,7 @@ describe('', () => { name: UPDATE_TOPIC_TOOL_NAME, args: { [TOPIC_PARAM_TITLE]: 'Testing Topic', - [TOPIC_PARAM_SUMMARY]: 'This is the summary', + [TOPIC_PARAM_STRATEGIC_INTENT]: 'This is the description', }, }), createToolCall({ diff --git a/packages/cli/src/ui/components/messages/TopicMessage.tsx b/packages/cli/src/ui/components/messages/TopicMessage.tsx index b91b04b5be..0aea7f5dbd 100644 --- a/packages/cli/src/ui/components/messages/TopicMessage.tsx +++ b/packages/cli/src/ui/components/messages/TopicMessage.tsx @@ -26,20 +26,19 @@ export const isTopicTool = (name: string): boolean => export const TopicMessage: React.FC = ({ args }) => { const rawTitle = args?.[TOPIC_PARAM_TITLE]; const title = typeof rawTitle === 'string' ? rawTitle : undefined; - const rawDescription = - args?.[TOPIC_PARAM_SUMMARY] || args?.[TOPIC_PARAM_STRATEGIC_INTENT]; - const description = - typeof rawDescription === 'string' ? rawDescription : undefined; + const rawIntent = + args?.[TOPIC_PARAM_STRATEGIC_INTENT] || args?.[TOPIC_PARAM_SUMMARY]; + const intent = typeof rawIntent === 'string' ? rawIntent : undefined; return ( {title || 'Topic'} - {description && : } + {intent && : } - {description && ( + {intent && ( - {description} + {intent} )} diff --git a/packages/cli/src/ui/components/messages/__snapshots__/ToolGroupMessage.test.tsx.snap b/packages/cli/src/ui/components/messages/__snapshots__/ToolGroupMessage.test.tsx.snap index a3cf745607..270f8e1b8f 100644 --- a/packages/cli/src/ui/components/messages/__snapshots__/ToolGroupMessage.test.tsx.snap +++ b/packages/cli/src/ui/components/messages/__snapshots__/ToolGroupMessage.test.tsx.snap @@ -78,7 +78,7 @@ exports[` > Golden Snapshots > renders header when scrolled exports[` > Golden Snapshots > renders mixed tool calls including update_topic 1`] = ` " - Testing Topic: This is the summary + Testing Topic: This is the description ╭──────────────────────────────────────────────────────────────────────────╮ │ ✓ read_file Read a file │ @@ -142,6 +142,12 @@ exports[` > Golden Snapshots > renders two tool groups where " `; +exports[` > Golden Snapshots > renders update_topic tool call using TopicMessage > update_topic_tool 1`] = ` +" + Testing Topic: This is the description +" +`; + exports[` > Golden Snapshots > renders with limited terminal height 1`] = ` "╭──────────────────────────────────────────────────────────────────────────╮ │ ✓ tool-with-result Tool with output │