Finetune text debug drawer

This commit is contained in:
Xin Wang
2026-02-09 11:30:21 +08:00
parent 17bd4a78f4
commit 5c1d236f0d

View File

@@ -1275,10 +1275,13 @@ export const DebugDrawer: React.FC<{
const handleTextLaunch = async () => { const handleTextLaunch = async () => {
try { try {
setWsError(''); setWsError('');
// Start every text debug run as a fresh session transcript.
setMessages([]);
assistantDraftIndexRef.current = null;
if (textTtsEnabled) await ensureAudioContext(); if (textTtsEnabled) await ensureAudioContext();
await ensureWsSession(); await ensureWsSession();
setTextSessionStarted(true); setTextSessionStarted(true);
setMessages((prev) => (prev.length > 0 ? prev : [{ role: 'model', text: assistant.opener || 'Hello!' }])); setMessages([{ role: 'model', text: assistant.opener || 'Hello!' }]);
} catch (e) { } catch (e) {
console.error(e); console.error(e);
setWsStatus('error'); setWsStatus('error');
@@ -1801,7 +1804,7 @@ export const DebugDrawer: React.FC<{
</div> </div>
<div className="shrink-0 space-y-2"> <div className="shrink-0 space-y-2">
<div className="flex space-x-2"> <div className="flex items-center gap-2 min-w-0">
{mode === 'text' && textSessionStarted && ( {mode === 'text' && textSessionStarted && (
<Button variant="destructive" size="sm" className="h-9 font-bold shrink-0" onClick={closeWs}> <Button variant="destructive" size="sm" className="h-9 font-bold shrink-0" onClick={closeWs}>
<PhoneOff className="mr-2 h-4 w-4" /> <PhoneOff className="mr-2 h-4 w-4" />
@@ -1813,9 +1816,9 @@ export const DebugDrawer: React.FC<{
placeholder={mode === 'text' && !textSessionStarted ? "请先发起呼叫后输入消息..." : (mode === 'text' ? "输入消息..." : "输入文本模拟交互...")} placeholder={mode === 'text' && !textSessionStarted ? "请先发起呼叫后输入消息..." : (mode === 'text' ? "输入消息..." : "输入文本模拟交互...")}
onKeyDown={e => e.key === 'Enter' && handleSend()} onKeyDown={e => e.key === 'Enter' && handleSend()}
disabled={isLoading || (mode === 'text' ? !textSessionStarted : callStatus !== 'active')} disabled={isLoading || (mode === 'text' ? !textSessionStarted : callStatus !== 'active')}
className="flex-1" className="flex-1 min-w-0"
/> />
<Button size="icon" onClick={handleSend} disabled={isLoading || (mode === 'text' ? !textSessionStarted : callStatus !== 'active')}><Send className="h-4 w-4" /></Button> <Button size="icon" className="shrink-0" onClick={handleSend} disabled={isLoading || (mode === 'text' ? !textSessionStarted : callStatus !== 'active')}><Send className="h-4 w-4" /></Button>
</div> </div>
</div> </div>
</div> </div>