feat(stt-log): log the WHOLE turn pipeline to the transcript channel

The transcript channel only showed successful transcripts, so dropped utterances
(the 47/50 misses) were invisible. Now every captured utterance is mirrored with
its outcome and per-stage timing:
- too-short blip (<300ms), VAD "음성 아님(VAD 차단)", "인식 실패", "답변 없음", or "ok"
- transcript + reply (or "(무응답)")
- ⏱️ stt/llm seconds

The bridge meta now carries note + stt_sec + think_sec; voice.ts fires onTurn for
every turn (not only non-empty transcripts) and for the too-short drop; userbot
formats the diagnostic line.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
javis-bot
2026-06-13 22:13:39 +09:00
parent 62bb0ab87e
commit e8234b7fb1
4 changed files with 69 additions and 21 deletions

View File

@@ -45,6 +45,11 @@ export interface ConverseMeta {
reply: string;
error?: string | null;
broadcast_action?: BroadcastAction | null;
/** Why this turn produced (or didn't produce) a transcript/reply. */
note?: string;
/** Per-stage timing (seconds) for diagnosing latency. */
stt_sec?: number;
think_sec?: number;
}
export interface ConverseStreamHandlers {