# 更新日志 / Changelog 本文件记录本插件的所有重要变更。 格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。 ## [0.3.1] - 2026-10-12 > 修复"会思考的模型下必然失败":界面表现为**点了按钮一直转圈、没有产出**。 ### 修复 - **思考量大的模型下必然失败(一直转圈、没有产出)**:插件原先把输出额度写死为 4096 token,而"必须先思考、且思考关不掉"的模型会把这份额度**大量花在推理上**。 本机实测 `hy4-preview` 时额度被推理全部吃光,正式回答 0 字,最终报 `truncated`; 连「你好」两个字都要耗 89~114 秒才失败,界面表现就是**一直转圈没有产出**。 (对照组:同一份代码换成 `deepseek-v4.1-flash` 只需 1.7 秒即可成功, 说明这是**模型相关**的失败,不是插件整体坏掉。) - 额度改为**按模型能力动态分配**:会思考的模型 32768,不思考的 4096; - 用官方 `ctx.llm.resolveModelInfo()` 判断模型是否会思考 (看 `reasoning.efforts` 是否只有 `off` 一档),**不写死模型名单**, 换任何模型都不会再犯; - 按模型自身上限 `defaultMaxTokens` 封顶,避免"要得比模型允许的还多"而请求失败。 - **宿主侧完全没有超时**:模型慢就一直转圈。现在 60 秒到期即中止并报 `timeout`。 - **截断自动重试一次**:即使模型能力查询失败(异常或超时)导致误判为"不思考", 也会自动用大额度重试;两次尝试共享同一个 60 秒总时限,最坏等待时间不翻倍。 - **模型能力查询缓存**:结果按路线缓存并放在插件实例内(不是模块级全局), 避免每次点击都查询、也避免多实例串数据;查询守卫从 5 秒降到 1.2 秒, 不让慢查询把快速模型白白拖慢。 ### 变更 - 截断与超时的报错文案改为**能指导自救**(提示去「设置 → 提示词优化」指定模型)。 ### 测试 - 逻辑自检 24 项(覆盖思考识别、额度分配、上限封顶、无效重试抑制、 查询挂起不加延迟、缓存生效、截断/超时/中止路径)。 ## [0.3.0] - 2026-10-09 ### 变更 - **设置界面从「按钮右键弹层」改成「设置页」**:现在注册进官方的 `settings.section` 插槽,作为**设置面板左侧栏里的一个独立条目**(和「费用」「插件市场」「侧边卡片」 并列),点进去就是完整设置页,不再需要右键。 - 由此**关闭按钮后按钮直接消失**(不再变暗)——因为设置页就是回去的路,不存在被锁死。 ### 修复 - **国际化根本没有生效(界面显示原始 key)**:客户端模块的 `exports.inject` 只声明了 `slots`,**漏了 `locale`**,导致 Cordis(依赖注入框架)从未注入本地化服务, `ctx.locale` 拿不到、`t()` 退化成"原样返回 key",设置面板里显示的是 `settings.title` 这类原始 key。已修复,并加了回归测试锁死。 - **兜底**:即使本地化服务不可用,也会回落到内置字典,**再也不会把原始 key 画到界面上**。 ### 测试 - 客户端半 57 项(原 45 项)+ 宿主半 45 项。 ## [0.2.0] - 2026-10-09 ### 新增 - **设置面板**:在 ✨ 按钮上**点右键**打开,可调三项: - 启用按钮(关闭后按钮变暗,仍可右键打开设置) - 最少字符数(留空则跟随宿主默认值) - 指定优化模型(可把辅助调用固定到便宜模型上,不影响对话本身) - **国际化**:按钮文案跟随 DSH 界面语言,内置简体中文与英文;走 DSH 官方 locale(本地化)服务,而非硬编码字符串。 - **英文 README**(`README.en.md`)。 ### 变更 - 单次请求支持**模型覆盖**:`/enhance` 接受可选的 `provider` / `model` 字段, 优先级高于会话默认路由;空白值会被忽略并回落默认。 - 版本号由 `0.1.0` 提升到 `0.2.0`。 ### 修复 - **零宽空格(`U+200B`)被误判为有效输入**:编辑器会插入隐形占位符,而 `trim()` 不会移除它,导致"看起来是空的"草稿仍会显示按钮并发出无意义请求。现在会先剔除 再计数,且发给模型的草稿也会剔除(原文仍原样备份,可干净还原)。 - **切换会话后状态残留**:备份与错误提示现在会在 `sessionId` 变化时复位。 - **照搬 WorkBuddy 提示词时漏掉的条款**:补回 system 层的「约 800 字符」长度上限 与 2 组英文少样本。没有上限时,模型会把一行需求写成多段小作文。 ## [0.1.0] - 2026-10-09 首个版本。 ### 新增 - 输入框工具栏 ✨ 按钮(插槽 `conversation.input.right`),三态:增强 / 优化中 (可取消)/ 还原原文。 - 照搬腾讯 WorkBuddy EnhancePrompt 的**双层提示词**(角色提示词 + 任务模板,含 语言锁定为最高优先级、少样本、好坏输出对照)。 - **独立模型调用**:走 `ctx.llm.stream()`,不创建会话、不写入会话记录、不读对话历史。 - **宿主侧取消链路**:`/cancel` 路由 + 请求 id + 在途请求表 + 流循环内逐分片复查 中止信号;插件卸载时中止全部在途请求。 - **显式输出预算**与**截断保护**:触发上限单独报为 `truncated` 错误码。 - 结果清洗:剥离 Markdown 围栏与首尾引号。 - 中文错误文案表与失败态可视化。 - 离线测试:宿主半 45 项 + 客户端半 45 项。 [0.3.1]: https://github.com/ruiyukirin/dsh-prompt-optimization-master/releases/tag/v0.3.1 [0.3.0]: https://github.com/ruiyukirin/dsh-prompt-optimization-master/releases/tag/v0.3.0 [0.2.0]: https://github.com/ruiyukirin/dsh-prompt-optimization-master/releases/tag/v0.2.0 [0.1.0]: https://github.com/ruiyukirin/dsh-prompt-optimization-master/releases/tag/v0.1.0