## 1.1.3 **这一版集中修流结束、令牌刷新、换号与本地账本之间的竞态。** 这些问题要么会把半截回复当成成功,要么会在换号/取消时把旧账号或旧数据写进新状态。 - **半路关流不再被补成成功**:外层信封翻译只在见到 `finish_reason` 或显式 `[DONE]` 时才补 `[DONE]`;试跑也要求终结标记,截断回复不再显示为连通成功。 - **并发刷新只打一次上游**:`refreshAuth()` 单飞合并,并用 auth generation 隔离账号切换;旧账号的刷新结果不能覆盖新账号,也不会把无 UID 的刷新误判成换号。 - **无效 PAT 不再把原账号踢下线**:直接令牌会校验 userinfo,401/403 时回滚到原账号,不再重复触发两次 auth-change。 - **试跑取消会中止上游**:面板中断通过 `AbortSignal` 传到宿主与 Qoder,不只是在本地停止等待。 - **换号相关缓存隔离**:目录磁盘缓存按 account 记录;设备授权轮询合并;签到运行绑定启动时的 auth generation,不会拿新账号令牌领取旧账号活动。 - **清除用量不会被在途写盘复活**;换号瞬间也会清空主面板与对话页的旧账号展示。 ### 升级 tgz(推荐,可核对 SHA-256): ```bash dsh plugin --profile desktop add ./qoder-to-dsh-1.1.3.tgz ``` GitHub 直装: ```bash dsh plugin --profile desktop add github:Ianzhyh/qoder-to-dsh ``` 装完**完全退出 dsh 再打开**(插件在宿主启动时加载;只重开面板不会换掉已加载的代码)。 - 资产 SHA-256:`31be3139bdfecdd56e9d0882f896be771fc4bfcb5ec904f0639a6dca170b22de`(32 个文件,580.5 KB) - 完整变更见 [CHANGELOG](https://github.com/Ianzhyh/qoder-to-dsh/blob/v1.1.3/CHANGELOG.md)。 ### 验证 - `npm run release:check` 全绿:模块语法检查 + 111 个用例 + 安装自检 11/11(`--offline`) - `npm run test:live` 实机探针:`pong`、`finish=stop`、usage 正常,确认正常流没有被新的截断判断误伤 - `npm run verify:release` 15/15:产物与工作区逐字节一致、两份 `VERSION` 一致、patch 名与包名一致、`tests/` 未混入 - 浏览器离线 harness:auth-change 后无控制台错误;试跑取消后显示「已取消本次试跑」,不再继续等待 > 非官方互操作实现,只使用你自己合法授权的 Qoder 账号;上游协议可能随时变化。失效时先看设置里的「诊断」页。