15f5a85612
加 gorilla/websocket(无 genproto 冲突)。voice/protocol.go 定死单条 WS 的消息协议: 二进制帧=音频(上行麦克风/下行TTS),文本帧=JSON 控制/事件(ClientMsg:start/end/barge_in/ bye;ServerMsg:ready/transcript/task/speaking/tts_end/error);音频 PCM 16k 单声道。 handler/voice.go: GET /api/v1/voice/stream 升级 WS,鉴权走 AuthFromHeaderOrQuery(?token=, WS 带不了 Bearer),会话外壳 + 协议读循环(音频帧/控制消息分派)已通,火山 ASR/TTS 客户端 在下一步挂 onAudio/onControl 的 TODO 点接入。build+vet+test 绿。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>