Ver código fonte

Fix vscode url fetch regression (#5632)

sp.wack 1 ano atrás
pai
commit
dd79acdae1

+ 6 - 4
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<string, unknown>) =>
   event.action === "message";
@@ -102,6 +103,11 @@ export function WsClientProvider({
       lastEventRef.current = event;
     }
 
+    const extras = event.extras as Record<string, unknown>;
+    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);
     }

+ 5 - 2
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)