diff --git a/src/api/teamsbotApi.ts b/src/api/teamsbotApi.ts index 165bf5c..7a47f33 100644 --- a/src/api/teamsbotApi.ts +++ b/src/api/teamsbotApi.ts @@ -158,7 +158,7 @@ export interface AuthTestResults { // SSE Event Types export interface TeamsbotSSEEvent { - type: 'transcript' | 'botResponse' | 'analysis' | 'suggestedResponse' | 'statusChange' | 'error' | 'ping' | 'sessionState'; + type: 'transcript' | 'botResponse' | 'analysis' | 'suggestedResponse' | 'statusChange' | 'error' | 'ping' | 'sessionState' | 'ttsDeliveryStatus'; data: any; timestamp?: string; } diff --git a/src/pages/views/teamsbot/TeamsbotSessionView.tsx b/src/pages/views/teamsbot/TeamsbotSessionView.tsx index 71a0bb3..7d83652 100644 --- a/src/pages/views/teamsbot/TeamsbotSessionView.tsx +++ b/src/pages/views/teamsbot/TeamsbotSessionView.tsx @@ -30,6 +30,12 @@ export const TeamsbotSessionView: React.FC = () => { const [screenshots, setScreenshots] = useState([]); const [screenshotsLoading, setScreenshotsLoading] = useState(false); const [screenshotsLoaded, setScreenshotsLoaded] = useState(false); + const [ttsStatusEvents, setTtsStatusEvents] = useState>([]); const transcriptEndRef = useRef(null); const eventSourceRef = useRef(null); @@ -111,6 +117,20 @@ export const TeamsbotSessionView: React.FC = () => { // Debug info - could show in UI break; + case 'ttsDeliveryStatus': { + const payload = sseEvent.data || {}; + setTtsStatusEvents((prev) => [ + ...prev.slice(-24), + { + status: payload.status || 'unknown', + message: payload.message, + hasWebSocket: payload.hasWebSocket, + timestamp: payload.timestamp || new Date().toISOString(), + }, + ]); + break; + } + case 'suggestedResponse': // Manual mode: show suggested response break; @@ -303,6 +323,25 @@ export const TeamsbotSessionView: React.FC = () => { )} + {/* TTS Delivery Debug */} +
+

TTS Delivery Status

+ {ttsStatusEvents.length === 0 ? ( +
Noch keine TTS-Events.
+ ) : ( +
+ {ttsStatusEvents.slice(-10).reverse().map((ev, idx) => ( +
+ {_formatTime(ev.timestamp)} + {ev.status} + ws: {ev.hasWebSocket ? 'yes' : 'no'} + {ev.message || ''} +
+ ))} +
+ )} +
+ {/* Debug Screenshots (SysAdmin only) */} {_isSysAdmin && (