From dd79acdae15283902c179fca294dfeb9ee15e8f0 Mon Sep 17 00:00:00 2001 From: "sp.wack" <83104063+amanape@users.noreply.github.com> Date: Tue, 17 Dec 2024 00:48:12 +0400 Subject: [PATCH] Fix vscode url fetch regression (#5632) --- frontend/src/context/ws-client-provider.tsx | 10 ++++++---- openhands/server/listen_socket.py | 7 +++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/frontend/src/context/ws-client-provider.tsx b/frontend/src/context/ws-client-provider.tsx index 496e5f9c41..75ac97a1c4 100644 --- a/frontend/src/context/ws-client-provider.tsx +++ b/frontend/src/context/ws-client-provider.tsx @@ -6,6 +6,7 @@ import ActionType from "#/types/action-type"; import EventLogger from "#/utils/event-logger"; import { handleAssistantMessage } from "#/services/actions"; import { useRate } from "#/hooks/use-rate"; +import AgentState from "#/types/agent-state"; const isOpenHandsMessage = (event: Record) => event.action === "message"; @@ -102,6 +103,11 @@ export function WsClientProvider({ lastEventRef.current = event; } + const extras = event.extras as Record; + if (extras?.agent_state === AgentState.INIT) { + setStatus(WsClientProviderStatus.ACTIVE); + } + if ( status !== WsClientProviderStatus.ACTIVE && event?.observation === "error" @@ -110,10 +116,6 @@ export function WsClientProvider({ return; } - if (status !== WsClientProviderStatus.ACTIVE) { - setStatus(WsClientProviderStatus.ACTIVE); - } - if (!event.token) { handleAssistantMessage(event); } diff --git a/openhands/server/listen_socket.py b/openhands/server/listen_socket.py index 9946aafefe..76fe331cc1 100644 --- a/openhands/server/listen_socket.py +++ b/openhands/server/listen_socket.py @@ -84,8 +84,11 @@ async def init_connection( ): continue elif isinstance(event, AgentStateChangedObservation): - agent_state_changed = event - continue + if event.agent_state == 'init': + await sio.emit('oh_event', event_to_dict(event), to=connection_id) + else: + agent_state_changed = event + continue await sio.emit('oh_event', event_to_dict(event), to=connection_id) if agent_state_changed: await sio.emit('oh_event', event_to_dict(agent_state_changed), to=connection_id)