Appearance
ASR 崩溃防护后续任务
日期:2026-10-09;以下任务不属于本轮已修复的 UI / Realtime / 豆包两个可复现 P0。
CRASH-ASR-001:Mistral 的同类协议/线程边界
状态:待实施。只读审查确认 mistral_asr.cpp 的 worker 入口没有异常边界,服务端 text 等字段未经类型校验就 asString();该路径尚未运行故障注入复现,不能把它视为本轮修复覆盖范围。
下一项交付应在真实 Mistral 会话与本地服务端的公开边界先复现,再采用同一线程失败契约和 provider 独立的消息验证。验收:错误字段、合法扩展、回调异常、取消/发送预算、一次终态与正常文本交付均有测试,且不让宿主 abort。无需为了该缺陷迁移 WS 库。
CRASH-ASR-002:构造/启动失败的终态交付
状态:待实施。两种会话在凭据缺失时从构造函数直接调用错误 callback,随后标记 finished;此时结果 callback 尚未由工厂安装,空 final 可能没有接收者。旧构造通知不在新 worker 边界内,抛异常也可能向调用方传播。
下一项交付应以引擎 StartSession() → callback 注册 → StartWorker() 为公开边界验证缺失凭据/启动失败与保序放行,再修正通知时机。验收:无网络/录音即可得到一次终态、无悬挂保序项、无异常逃逸;取消和资源耗尽不产生重复 callback。本轮不调整该外层生命周期,以保持崩溃根因与改动范围可独立审查。