## Issue Description
在 BYOK 模式下,应用重启后继续旧会话(resume)时,弹出「这轮回复失败 / BYOK_PROVIDER_REQUEST_FAILED」,点「重试」均无效(连续两次);重开新任务则完全正常。
实际上请求根本没有发送到模型服务商,失败发生在会话恢复阶段。UI 将 BYOK 会话的任何失败都映射为 BYOK_PROVIDER_REQUEST_FAILED,误导用户以为是密钥/余额/限流问题。
Steps to Reproduce
- 使用 BYOK 模型进行会话(会话 A);
- 重启应用(当晚到次日之间疑似经历过自动更新);
- 在会话 A 中继续对话(resume 模式);
- 弹出「这轮回复失败 / BYOK_PROVIDER_REQUEST_FAILED」,点「重试」同样失败。
Expected Behavior
会话能正常恢复;若确实无法恢复,应提示「无法恢复该会话,请新建任务」,而不是显示误导性的 provider 错误码,更不应让「重试」反复失败。
Actual Behavior
- 桌面端 main.log 记录:
`ChatSession runtime message consumption failed {“sessionId”:“24df73ce-…”,“isByok”:true,“errorKind”:“QoderWorkerRuntimeError”}` - CLI 运行日志(runs/2026-08-30T09-07-26-723…/qodercli.log):
`process.exiting exit_code=42 reason=“input_error” TranscriptSessionError: Invalid session identifier “24df73ce-…” Searched: C:\Users\\.qoder-cn\projects\E–QoderWorkSpace` - 会话原始记录文件完好存在:`logs/sessions/E–QoderWorkSpace/24df73ce…/segments/*.jsonl`(2835 行,全部为合法 JSON),但不在 `projects/E–QoderWorkSpace` 的恢复索引中,疑似应用更新/重启后索引丢失。
Suggestions
- 错误码分类:TranscriptSessionError(会话恢复失败)不应映射为 BYOK_PROVIDER_REQUEST_FAILED;
- 「重试」识别到此类永久性错误后应提示新建任务,而不是复用坏会话;
- 排查更新/重启后旧会话从 resume 索引中丢失的原因。
Screenshots / Screen Recordings
弹窗文案:标题「这轮回复失败」,错误码 `BYOK_PROVIDER_REQUEST_FAILED`,说明「重试会复用本轮原始输入,已产生的内容和日志会保留。」,右下角「重试」按钮。日志证据见上。
Operating System
Windows 11 (build 26200) x64
Current Qoder Version (Menu → About Qoder → Copy)
Qoder CN 0.1.2 (production channel, win32 x64)