feat(voice-client): 双层配置持久化、精简手术号 UI 与 WS/服务端排查日志

- machine_config:系统级 + 用户级 voice_client.json 合并,界面失焦保存至用户目录
- 移除「当前手术号」表单项与占位文案;指派后仅在窗口标题显示手术号
- WebSocket 连接日志附带绑定/开录路径排查说明
- 开录未推送时服务端 WARNING(无站点绑定或 camera_ids 不匹配)
- 测试、README、.env.example 同步

Made-with: Cursor
This commit is contained in:
Kevin
2026-04-27 11:45:11 +08:00
parent 6b3adb4ad8
commit 9941e0d131
8 changed files with 352 additions and 53 deletions

View File

@@ -29,11 +29,17 @@ async def assign_voice_terminal_after_recording_started(
await hub.notify_start(voice_tid, surgery_id)
elif hub.bindings is not None:
logger.warning(
"voice or room bindings have no camera set matching start "
"开录未向任何语音终端推送camera_ids 与 OR_SITE_CONFIG「voice_or_room_bindings」无匹配 "
"surgery_id={} camera_ids={}",
surgery_id,
camera_ids,
)
else:
logger.warning(
"开录未推送语音终端:未加载 OR_SITE_CONFIG 或 voice_or_room_bindings 为空;"
"桌面端 WebSocket 不会收到 voice_assignment surgery_id={}",
surgery_id,
)
class VoiceTerminalHub: