## 1.2.0 **这一版修「看起来成功、实际失败」和账号/用量边界。** 提前取消的流不再被记成成功;换号或退出会真正取消在途请求;损坏的本地凭据不会静默换成另一个账号;12 个月热力图不再被 5000 条明细上限截断。 - **取消不再记成功**:消费方在 `finish` 之前结束生成器时,用量记 `aborted` / `ok:false`,不再污染成功率;换号导致的取消以 ABORTED 结束,并保留旧账号的用量戳。 - **429 分类修正**:先识别 402、408 与硬额度短语,再处理 429;响应体里只是出现 “credits” 时仍按可重试的限流处理。 - **在途请求可取消**:`QoderClient` 登记所有聊天请求,换号/退出/卸载时用 `ACCOUNT_SWITCHED` 取消;静默令牌刷新不会打断正在生成的回复。 - **损坏凭据不换号**:`auth.json` 存在但解密失败或缺少令牌时,只记录 `authRestore` 并在诊断页提示,不再自动导入桌面端的另一个账号。 - **每日用量汇总**:新增 `usage.daily.json`,按天保留 Credits / tokens / 请求与失败数 430 天;明细仍限 5000 条,报表按天二选一,不重复计数。 - **试跑单独标记**:面板试跑与 `/qoder test` 写入 `probe: true`,不进入常规请求、失败与热力图统计,但保留在明细里。 - **面板副作用防护**:`?rescan=1`、`?refresh=1`、`?deep=1` 与诊断刷新必须带 `x-qoder-panel: 1`;额度链接只接受绝对 `http(s)`。 - **日志与卸载**:日志超过 2MB 轮转为 `qoder.log.1`,Bearer / `token=` 脱敏补齐 `+/=`;卸载时取消在途聊天、清理图片缓存与定时器,并同步刷写用量。 - **上下文回退统一**:目录缺元数据时统一使用 131072 的 `fallbackContextWindow`,`resolveModel` 始终返回正整数的上下文窗口。 - **发布门禁**:新增安装契约测试(包名 / patch / 注册 id / exports / locale / 版本 / 文档)与 Windows + Ubuntu CI;`npm test` 改为目录模式,避开 Windows cmd 的 glob 问题。 - **README**:补齐升级 / 回滚 / 卸载、故障排查、最低 dsh 基线与数据文件说明。 ### 升级 tgz(推荐,可核对 SHA-256): ```bash dsh plugin --profile desktop add ./qoder-to-dsh-1.2.0.tgz ``` GitHub 直装: ```bash dsh plugin --profile desktop add github:Ianzhyh/qoder-to-dsh ``` 装完**完全退出 dsh 再打开**(插件在宿主启动时加载;只重开面板不会换掉已加载的代码)。 - 资产 SHA-256:`830dbef20a0df817052aaa7a3e52d87a2bcf58c7b9021c4a479415b4c096f69e`(32 个文件,597.1 KB) - 完整变更见 [CHANGELOG](https://github.com/Ianzhyh/qoder-to-dsh/blob/v1.2.0/CHANGELOG.md)。 ### 验证 - `npm run release:check` 全绿:模块语法 + 159 个用例 + 安装自检 11/11(`--offline`) - `npm run verify:release` 19/19:32 个文件与工作区逐字节一致、exports 目标齐全、locale 键一致、README / CHANGELOG / 双份版本号一致、`tests/` 未混入 - 新增回归:提前取消记 aborted、换号取消在途流、损坏凭据不换号、429/402/408 分类、每日汇总迁移/修复/清除竞态、probe 排除、副作用 GET 403、`safeHref`、上下文回退、工具输出 > 非官方互操作实现,只使用你自己合法授权的 Qoder 账号;上游协议可能随时变化。失效时先看设置里的「诊断」页。