Skip to content

Commit ea2beb9

Browse files
committed
fix(tarko-agent-ui): use correct atom for session panel content updates
- Use sessionPanelContentAtom instead of activePanelContentAtom for direct updates - Properly handle session-specific panel content storage - Fixes issue where first environment_input wasn't updating panel content correctly
1 parent b865258 commit ea2beb9

1 file changed

Lines changed: 14 additions & 10 deletions

File tree

  • multimodal/tarko/agent-ui/src/common/state/actions/eventProcessors/handlers

multimodal/tarko/agent-ui/src/common/state/actions/eventProcessors/handlers/SystemHandler.ts

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { v4 as uuidv4 } from 'uuid';
22
import { EventHandler, EventHandlerContext } from '../types';
33
import { AgentEventStream, Message } from '@/common/types';
44
import { messagesAtom } from '@/common/state/atoms/message';
5-
import { activePanelContentAtom } from '@/common/state/atoms/ui';
5+
import { sessionPanelContentAtom } from '@/common/state/atoms/ui';
66
import { shouldUpdatePanelContent } from '../utils/panelContentUpdater';
77
import { ChatCompletionContentPartImage } from '@tarko/agent-interface';
88

@@ -82,21 +82,25 @@ export class EnvironmentInputHandler
8282
);
8383

8484
if (imageContent && imageContent.image_url) {
85-
const currentPanel = get(activePanelContentAtom);
85+
const currentPanelContent = get(sessionPanelContentAtom);
8686
const sessionMessages = get(messagesAtom)[sessionId] || [];
8787

8888
// Check if this is the first environment_input event in the session
8989
const isFirstEnvironmentInput = sessionMessages.filter(msg => msg.role === 'environment').length === 0;
90+
const currentSessionPanel = currentPanelContent[sessionId];
9091

9192
// Always show first environment_input (initialization screenshot) or update existing browser_vision_control panel
92-
if (isFirstEnvironmentInput || (currentPanel && currentPanel.type === 'browser_vision_control')) {
93-
set(activePanelContentAtom, {
94-
type: 'browser_vision_control',
95-
title: event.description || 'Browser Screenshot',
96-
timestamp: event.timestamp,
97-
originalContent: event.content,
98-
environmentId: event.id,
99-
});
93+
if (isFirstEnvironmentInput || (currentSessionPanel && currentSessionPanel.type === 'browser_vision_control')) {
94+
set(sessionPanelContentAtom, (prev) => ({
95+
...prev,
96+
[sessionId]: {
97+
type: 'browser_vision_control',
98+
title: event.description || 'Browser Screenshot',
99+
timestamp: event.timestamp,
100+
originalContent: event.content,
101+
environmentId: event.id,
102+
},
103+
}));
100104
}
101105
// Skip update for other panel types to avoid duplicate Browser Screenshot rendering
102106
}

0 commit comments

Comments
 (0)