feat: merge tool calls with their updates into single unified view
Instead of showing tool_call and tool_call_update as separate events, now merge them by toolCallId into a single MergedToolCall that updates as new information comes in. **Changes:** - Added MergedToolCall type with start/end timestamps - Renamed groupTextChunks to groupActivities with tool call merging logic - Track tool calls by ID and merge all updates into single entry - Replace ToolCallItem with MergedToolCallItem component - AgentStreamView now uses groupActivities for unified grouping **User Experience:** - Each tool call appears once and updates in place - Status changes from pending → in_progress → completed - Input/output merge as they become available - Cleaner, less noisy activity view Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
This commit is contained in:
co-authored by
Claude
Happy
parent
674977d6f8
commit
015d0f0e27
@@ -5,7 +5,7 @@ import { StyleSheet } from 'react-native-unistyles';
|
||||
import type { AgentStatus } from '@server/server/acp/types';
|
||||
import type { SessionNotification } from '@agentclientprotocol/sdk';
|
||||
import { AgentActivityItem } from './agent-activity';
|
||||
import { parseSessionUpdate, groupTextChunks, type AgentActivity } from '@/types/agent-activity';
|
||||
import { parseSessionUpdate, groupActivities, type AgentActivity } from '@/types/agent-activity';
|
||||
|
||||
export interface AgentStreamViewProps {
|
||||
agentId: string;
|
||||
@@ -94,8 +94,8 @@ export function AgentStreamView({
|
||||
})
|
||||
.filter((activity): activity is AgentActivity => activity !== null);
|
||||
|
||||
// Group consecutive text chunks
|
||||
return groupTextChunks(activities);
|
||||
// Group consecutive text chunks and merge tool calls
|
||||
return groupActivities(activities);
|
||||
}, [updates]);
|
||||
|
||||
// Auto-scroll to bottom when new updates arrive
|
||||
|
||||
Reference in New Issue
Block a user