fix(frontend): agent status shows “Disconnected” when starting a new conversation until sandbox initializes (#11612)

This commit is contained in:
Hiep Le 2025-11-03 18:56:52 +07:00 committed by GitHub
parent 7cfe667a3f
commit a6385b4059
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2,6 +2,7 @@ import { useMemo } from "react";
import { useWsClient, V0_WebSocketStatus } from "#/context/ws-client-provider";
import { useActiveConversation } from "#/hooks/query/use-active-conversation";
import { useConversationWebSocket } from "#/contexts/conversation-websocket-context";
import { useConversationId } from "#/hooks/use-conversation-id";
/**
* Unified hook that returns the current WebSocket status
@ -9,11 +10,15 @@ import { useConversationWebSocket } from "#/contexts/conversation-websocket-cont
* - For V1 conversations: Returns status from ConversationWebSocketProvider
*/
export function useUnifiedWebSocketStatus(): V0_WebSocketStatus {
const { conversationId } = useConversationId();
const { data: conversation } = useActiveConversation();
const v0Status = useWsClient();
const v1Context = useConversationWebSocket();
const isV1Conversation = conversation?.conversation_version === "V1";
// Check if this is a V1 conversation:
const isV1Conversation =
conversationId.startsWith("task-") ||
conversation?.conversation_version === "V1";
const webSocketStatus = useMemo(() => {
if (isV1Conversation) {
@ -33,7 +38,13 @@ export function useUnifiedWebSocketStatus(): V0_WebSocketStatus {
}
}
return v0Status.webSocketStatus;
}, [isV1Conversation, v1Context, v0Status.webSocketStatus]);
}, [
isV1Conversation,
v1Context,
v0Status.webSocketStatus,
conversationId,
conversation,
]);
return webSocketStatus;
}