BYOK 会话恢复失败被误报为 BYOK_PROVIDER_REQUEST_FAILED,重试无效(实际为 TranscriptSessionError)

## Issue Description
在 BYOK 模式下,应用重启后继续旧会话(resume)时,弹出「这轮回复失败 / BYOK_PROVIDER_REQUEST_FAILED」,点「重试」均无效(连续两次);重开新任务则完全正常。
实际上请求根本没有发送到模型服务商,失败发生在会话恢复阶段。UI 将 BYOK 会话的任何失败都映射为 BYOK_PROVIDER_REQUEST_FAILED,误导用户以为是密钥/余额/限流问题。

Steps to Reproduce

  1. 使用 BYOK 模型进行会话(会话 A);
  2. 重启应用(当晚到次日之间疑似经历过自动更新);
  3. 在会话 A 中继续对话(resume 模式);
  4. 弹出「这轮回复失败 / BYOK_PROVIDER_REQUEST_FAILED」,点「重试」同样失败。

Expected Behavior

会话能正常恢复;若确实无法恢复,应提示「无法恢复该会话,请新建任务」,而不是显示误导性的 provider 错误码,更不应让「重试」反复失败。

Actual Behavior

  1. 桌面端 main.log 记录:
    `ChatSession runtime message consumption failed {“sessionId”:“24df73ce-…”,“isByok”:true,“errorKind”:“QoderWorkerRuntimeError”}`
  2. 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`
  3. 会话原始记录文件完好存在:`logs/sessions/E–QoderWorkSpace/24df73ce…/segments/*.jsonl`(2835 行,全部为合法 JSON),但不在 `projects/E–QoderWorkSpace` 的恢复索引中,疑似应用更新/重启后索引丢失。

Suggestions

  1. 错误码分类:TranscriptSessionError(会话恢复失败)不应映射为 BYOK_PROVIDER_REQUEST_FAILED;
  2. 「重试」识别到此类永久性错误后应提示新建任务,而不是复用坏会话;
  3. 排查更新/重启后旧会话从 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)