fix(aibox): Batch M 波次5 客户端收尾(M1~M5/M7/M8)

- voice_client: stdin 单守护线程+Queue 替代每行 to_thread(泄漏/丢行);
  arecord 探测 timeout=5 + finally 清理临时文件
- client: main() finally 统一 disconnect websocket
- model_config: 主循环捕获 EOF/KeyboardInterrupt;api 节非 dict 重置;
  fallback 字符串规整(展示/删除清理);api_key_env 正则校验+
  显示字段拒控制字符限长
- 冒烟 7/7 通过;全量 493 passed/4 failed(既有平台项)/1 skipped 零回归
- 审计报告补 §22,Batch M 五波次收束
This commit is contained in:
qing committed 2026-08-20 14:40:00 +08:00
1 parent d1357ae483
commit 3e6e171831
4 files changed
+140 -40

No files matched your search

+8
View File
@@ -815,6 +815,14 @@ async def main():
await cli.run()
except KeyboardInterrupt:
print(f"\n{Colors.SYSTEM}程序已退出{Colors.RESET}")
finally:
# M8(审计 2026-08-20):正常退出(EOF 等)此前不关 websocket,
# 服务端见异常断连——统一 finally 通知
if cli.client:
try:
await cli.client.disconnect()
except Exception:
pass
if __name__ == "__main__":
try: