Skip to content

v0.2.1 — 四个新功能 + 实测与审查挖出来的修复

Choose a tag to compare

@Fo-Rimuru Fo-Rimuru released this 13 Oct 12:56
· 21 commits to main since this release

四个新功能,外加一轮「实测 + 代码审查」挖出来的修复。设置页现在长这样:四个开关 + 一条滑块 + 一块自检。

新增

  • 思考中显示已用时间:「深度思考中(已用时 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 补丁克隆插件自己的 IconThink SVG(卸载时还原)
  • 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 已经修好,这条路现在通了)。