Repository navigation
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 已经修好,这条路现在通了)。