Repository navigation
Releases: Fo-Rimuru/dsh-thinking-panel
Release list
v0.2.4
0.2.4 — 适配 DSH 0.2.1-rc.5 的 <signature> 思考链剥离
DSH 0.2.1-rc.5 起,模型会在思考文本前输出 <signature>…</signature>。官方 ReasoningRow 在渲染前调用 reasoningText() 把它剥掉、纯签名整行隐藏;本插件遮蔽了 assistant-step、自己绘制思考面板,拿不到这层预处理,0.2.3 在 rc.5 上会把裸标签显示给用户。
改动
client.js新增模块级reasoningText(),与@deepseek-ai/dsh-client-ui-chat的出厂实现逐字同语义(流式未吐完前缀、<开头非签名、未闭合、CRLF 均按官方处理),不 import 打包产物- 「已思考(用时 X 秒)」标题、折叠态多行预览、展开后的完整推理、复制、纯文本降级路径统一使用剥离后的文本
- 纯签名(剥离后为空/纯空白)的 reasoning 块整块跳过;同一步里其它块照常渲染,不整行丢 assistant-step
- 不含
<signature>的文本原样返回,向下兼容 DSH 0.2.0-rc.1 ~ 0.2.1-rc.4 package.json:版本 0.2.4,补engines.dsh: ">=0.2.0-rc.1 <0.3.0-0";新增 CHANGELOG.md,README/README.en.md 更新兼容性与自检数字
验证
node tools/verify.mjs→ 255 passed / 0 failed / 23 skipped(新增 37 项签名用例,走真实渲染路径)node tools/test-self-update.mjs→ 56 passed- 与官方
reasoningText20,021 条输入差分对比:0 差异 - 隔离 DSH 0.2.1-rc.5 实测:插件 v0.2.4 加载、自检三项「正常」、控制台 0 报错
- rc.2 非签名渲染 40 个场景与 0.2.3 完全一致
v0.2.3
v0.2.2
v0.2.1 — 四个新功能 + 实测与审查挖出来的修复
四个新功能,外加一轮「实测 + 代码审查」挖出来的修复。设置页现在长这样:四个开关 + 一条滑块 + 一块自检。
新增
- 思考中显示已用时间:「深度思考中(已用时 12 秒)」。数据取自出厂的
data.time(settled?.time ?? state.firstVisibleTime ?? …,流式期就有),不自己计时,只在生成中开一个每秒的定时器 - 设置页「自检」:官方组件可用性、渲染与降级计数、自动展开成功/放弃次数、导航图标补丁状态、兼容性提示数 —— 样式哪天悄悄变回出厂,先看这里就知道是哪一环掉了
- 「回到底部」按钮:只在没贴底时浮在思考面板右下角(长推理往上翻之后不用一路拖回来)
- 思考预览行数可配:滑动条,1–20 行、步长 1、拖动即时生效(走
:root的 CSS 变量)
修复
- 设置页整块空白(React #310):hook 写在了提前
return之后,hooks 数量变化。已全部移到提前返回之前,并加了一层错误边界把错误显示到页面上 - 思考内容只剩一行:排版容器用了
flex + gap,flex item 的min-height:auto把 5 行预览压成 1 行 → 改回 block - 设置导航图标:DSH 的导航图标是 shell 里
navIcon(id)的硬编码映射,第三方一律兜底齿轮 —— 改用 DOM 补丁克隆插件自己的IconThinkSVG(卸载时还原) useTurnData从useMemo里提到组件顶层:它内部是useSyncExternalStore,放在提前 return 之后同样会触发 #310- 自动更新不再覆盖开发目录:
link:安装时packageDir就是工作区源码,现在检测到带.git只提示、不自动装 - 自更新端点失败不再静默隐藏:以前整块「更新」凭空消失且毫无线索;现在显示失败原因
- 另外:
mode落盘改原子写、rollback补 semver 校验、Switch写入中禁用、复制按钮的 Enter 不再被标题行抢走、自检计数与自动展开的「本来就展开」不再误记为失败……
一个诚实的说明
「插话后界面不自动跟随」这个问题没有修好,相关代码已经撤销。原因是代码审查发现:出厂有完整的滚动策略层(useChatReading / ChatViewport / ScrollFollow),而插件直接写外层 scrollTop 会被它的 movedByReader(只看位置差 > 0.5px、不区分程序化写入)记成「用户自己滚的」,进而让它在 scrollend 判出「偏离目标 > 25px」而主动释放跟随 —— 修好一种「不跟随」,却制造出「把回看的用户拽到底」和「释放跟随」两种新问题。完整分析与下一版的方向写在 docs/ROADMAP.md 的「待定位」一节里。
质量
node tools/verify.mjs→ 214 passed / 0 failed(带出厂源码 234 / 0 / 3,再给槽目录 237 / 0)node tools/test-self-update.mjs→ 56 passed / 0 failed
安装 / 升级
dsh plugin --profile desktop add dsh-thinking-panel
已装 0.1.x 的:设置 → 深度思考面板 → 检查更新(0.1.1 那个 HTTP 405 已经修好,这条路现在通了)。
v0.2.0 — 设置页独立成栏、四个开关与一键回退
设置页从「通用设置」里搬出来了 —— 现在是设置左侧导航里独立的一栏,四个开关一目了然。
新增
- 设置页独立成栏(
settings.section):与「电脑控制」「壁纸引擎」同一个槽位 - 语言注入开关(默认打开):关掉就回到出厂的英文思考。Host 侧改成可运行时切换(先注销、再注册 prompt section),状态存在插件数据目录里
- 自动更新开关(默认打开):DSH 启动 8 秒后静默检查并安装,写入前有预检与备份
- 一键回退:按钮直接写「回退到 vX」。新增
previousVersion,回到上一个装过的版本 —— 旧逻辑在重启之后只会把当前版本再装一遍 - 思考正文复制按钮
- 兼容性提示现在会显示到设置页(以前只打控制台,用户只会觉得「样式没变」)
- 无障碍:屏幕阅读器能听出「正在思考」
修复
interrupted状态:思考被中断时显示「已停止」+ 出厂同款徽标,而不是「已思考(用时 N 秒)」- 耗时跨会话串台:改用出厂自带的
finalNode.timing,删掉自建记账表 —— 顺带解决了「重载后历史消息没有耗时」 - 「检查更新」报 HTTP 405:客户端按「有没有传 body」判 GET/POST,把变更类的
check发成了 GET - 自动展开失败不再放弃:首次没成功会重试(上限 2 秒)
- 本地图片走鉴权路由:
pathImages之前直接拼 URL,图片可能加载不出来 - 条件调用 hook:props 一变就崩的隐患,改成条件渲染两个 hook 序列固定的包装组件
- 排版容器(字号/行高/16px 块间距)与出厂对齐;
fileMentions补tail守卫;other块传真实载荷;
错误边界失败后可复位;ResizeObserver只建一次;滚动 effect 补依赖 - 自更新:并发互斥(桌面端与 Web GUI 同时点)、体积上限改流式判定、面板重入守卫与卸载保护
质量
node tools/verify.mjs→ 201 passed / 0 failed(无 DSH 源码;带出厂源码 221 / 0 / 3)node tools/test-self-update.mjs→ 56 passed / 0 failed(新增回滚语义、并发互斥、自动更新三组)- 完整清单见
docs/代码审查-0.1.1.md
安装 / 升级
dsh plugin --profile desktop add dsh-thinking-panel
已装 0.1.x 的:设置 → 深度思考面板 → 检查更新(405 已修,这条路现在通了)。
v0.1.1 — 自动展开过程组
把出厂「标准」模式下被折叠的思考链直接展开给你看。
新增
- 自动展开过程组(默认打开):DSH 桌面端「工作步骤展示」默认是「标准」,正在生成的过程会被折叠进「过程组」,而本插件的面板就在那个组里 —— 于是「装完好像没效果」。现在插件会在正在生成的那一轮自动展开它:走官方自己的揭示通道(组体上的
beforematch→setOpen(true)),不抢焦点、不直接改 DOM、不绕过 React 状态机;万一那条通道在某个版本失效,才退回点击组头并把焦点还回去。已结束的轮次仍按 DSH 的规则收起(四种模式一致,插件不借这个开关改写它)。 - 设置行第二行开关:
设置 → 通用 → 深度思考面板 → 自动展开过程组,默认打开,随时可关。
改进
- README 的「看不到思考链?」改写为如实说明机制与默认行为
- README 图片改用绝对地址 —— npm 页面不解析仓库相对路径,0.1.0 的图在 npm 上是裂的
质量
node tools/verify.mjs→ 161 passed / 0 failed(无 DSH 源码;带出厂源码 181 / 0 / 3,再提供槽目录 184 / 0)node tools/test-self-update.mjs→ 46 passed / 0 failed- 新增 12 项断言覆盖自动展开:beforematch 通道、焦点兜底、组已展开时不动作、已结束轮次不插手、开关默认打开与落盘
安装 / 升级
dsh plugin --profile desktop add dsh-thinking-panel
已装 0.1.0 的可以直接在 设置 → 通用 → 深度思考面板 → 检查更新 里一键升级(自带自更新,无需卸载重装)。
v0.1.0 — 首次发布
让 DSH 的思考链看起来像 DeepSeek 官方 App。
包含什么
- 语言跟随:systemPrompt.section(10300) + context(130) 双通道注入推理语言规则
- 5 行滚动预览:完整推理正文铺进可滚动窗口,自动跟随最新内容
- 展开看完整推理:自带高度受限容器与可拖动滚动条
- 官方观感:左侧竖线、品牌色图标、「已思考(用时 X 秒)」
- 自更新:检查新版本 / 原子替换 / 一键回滚(holdVersion 防回退循环)
DSH 官方目前不支持插件自动更新(安装对话框里明确写着),本插件自带自更新,无需卸载重装。
安装
在「设置 → 插件 → 添加插件」里填 dsh-thinking-panel,或命令行:
dsh plugin --profile desktop add dsh-thinking-panel
也可以走 GitHub:https://github.com/Fo-Rimuru/dsh-thinking-panel
质量
- node tools/verify.mjs → 167 passed / 0 failed(无 DSH 源码时 149 / 0 / 18 skipped)
- node tools/test-self-update.mjs → 46 passed / 0 failed
- CI 每次 push 自动跑这两项
已知限制
语言跟随是提示词级概率约束:干净短会话实测 CJK 0.399–0.607(对照 0.000),
但在重度 agent 会话(大量英文工具输出)里实测只有 0.012、基本无效。
这是模型上下文决定的固有上限,不是实现缺陷。思考面板样式不受此影响。
完整说明见 README:https://github.com/Fo-Rimuru/dsh-thinking-panel#readme