diff --git a/package.json b/package.json index 5e7503e3..0ade55aa 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@d-id/client-sdk", "private": false, - "version": "1.1.24", + "version": "1.1.26", "type": "module", "description": "d-id client sdk", "repository": { diff --git a/src/services/socket-manager/message-queue.ts b/src/services/socket-manager/message-queue.ts index e73e3ec0..8d21bab5 100644 --- a/src/services/socket-manager/message-queue.ts +++ b/src/services/socket-manager/message-queue.ts @@ -33,6 +33,12 @@ function handleAudioTranscribedMessage( return; } + // Mark the last assistant message as interrupted when new user input arrives via server-side STT + const lastMessage = items.messages[items.messages.length - 1]; + if (lastMessage?.role === 'assistant' && !lastMessage.interrupted) { + lastMessage.interrupted = true; + } + const userMessage: Message = { id: data.id || `user-${Date.now()}`, role: data.role, diff --git a/src/services/streaming-manager/livekit-manager.ts b/src/services/streaming-manager/livekit-manager.ts index ed329f86..827d16e3 100644 --- a/src/services/streaming-manager/livekit-manager.ts +++ b/src/services/streaming-manager/livekit-manager.ts @@ -100,6 +100,9 @@ export async function createLiveKitStreamingManager | null = null; + const TRACK_SUBSCRIPTION_TIMEOUT_MS = 20000; + const streamApi = createStreamApiV2(auth, baseURL || didApiUrl, agentId, callbacks.onError); let sessionId: string | undefined; @@ -147,6 +150,17 @@ export async function createLiveKitStreamingManager { + log('Track subscription timeout - no track subscribed within 30 seconds after connect'); + trackSubscriptionTimeoutId = null; + analytics.track('connectivity-error', { + error: 'Track subscription timeout', + sessionId, + }); + callbacks.onError?.(new Error('Track subscription timeout'), { sessionId }); + disconnect(); + }, TRACK_SUBSCRIPTION_TIMEOUT_MS); + isInitialConnection = false; } catch (error) { handleInitError(error, log, callbacks, () => { @@ -224,6 +238,12 @@ export async function createLiveKitStreamingManager