# dsh-ux-plus 让 DeepSeek Harness 变得更顺手的各种 UX 增强与功能插件。 [![CI](https://github.com/plyflai/dsh-ux-plus/actions/workflows/ci.yml/badge.svg)](https://github.com/plyflai/dsh-ux-plus/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [English](./README.md) · **简体中文** **当前适配:[DeepSeek Harness 0.2.0-rc.1](https://github.com/deepseek-ai/deepseek-harness/releases/tag/dsh-v0.2.0-rc.1) 的 Web 界面。** ## 功能 | 功能 | 用起来有什么好处 | 预览 | | --- | --- | --- | | 对话字号与宽度 | **【一键切换】** 选择舒服的字号和阅读宽度。长篇回答看得更轻松,宽屏也能充分利用,不用放大整个界面。 | 对话区渲染效果 | | 复制会话 ID | **【随手复制】** 在会话菜单里一键拿到会话 ID,方便指定会话继续协作、定位记录或排查问题,省去手动翻找和选中文字。 | 会话三点菜单 | | 最近活动排序 | **【快速找回 + 自动瘦身】** 最近聊过的工作区和会话自动排到前面;一天多没动的工作区自己收起,行右侧标出多久没更新,一眼只剩正在推进的项目。 | 闲置工作区收起与时间标 | | 提问结果默认展开 | **【回看更省事】** 提问结束后,问题和答案直接展开。检查决定、接着讨论时,少一次点击,也少一次找答案。 | — | | 继承对话 | **【换个模型接着聊】** 在会话菜单里选一个模型,当前工作区立刻开一个新会话,让新模型读原会话的进度接着往下走。 | 继承对话的模型选择浮层 | ## 功能详解 ### 对话字号与宽度 对话区字号默认 14px,长回答密集时可以在 **设置 → 通用 → 对话区** 单独调大字号、收窄阅读宽度——只作用于会话内容,不改整个界面。 ### 会话菜单:复制会话 ID 与继承对话 每个会话行右侧的三点菜单里,本插件追加两项(位于置顶、重命名等原生项之前): - **会话 ID**:点击即把该会话的 ID 复制到剪贴板,用于 `--session` 续接、日志定位等场景。 - **继承对话**:见下。 ### 继承对话 点击「继承对话」后,会在点击位置弹出一个轻量的模型选择浮层,列出当前可路由的全部模型(按提供方分组): 选定模型后,插件会: 1. 在**原会话所属的工作区**里创建一个全新会话; 2. 把新会话的模型切换为刚选中的那个; 3. 向新会话投递一条继承提示词——内容是被继承会话的 session ID,加上「总结并继承这个对话的进度,越近轮次的对话所投放的注意力要越多」; 4. 自动跳转到新会话,模型开始读旧会话、输出进度总结并接着推进。 适合这些场景:一个会话跑得太长想换个更贵的模型收尾;某个提供方限流想换条路继续;或者单纯想把进展"移植"到另一个模型的上下文里。原会话完全不受影响,「会话 ID」复制也原样保留。 ### 最近活动排序(含闲置收起) 最近聊过的工作区分组和组内会话自动排到前面,多个项目同时推进也能快速回到刚才的工作;只改视觉顺序,宿主的排序设置与数据不动。 同一个功能还负责**闲置瘦身**:工作区超过 **24 小时**没有任何实际活动(空会话与子代理会话不算,与排序同一口径)后,会在打开页面时自动收起一次;同时每个工作区行右侧显示距今未更新的时间标——刚刚 / N分钟 / N小时 / N天 / N个月 / N年,样式与宿主会话行的时间完全一致,悬停时让位给操作按钮。 自动收起对每个工作区每次打开页面最多触发一次:手动重新展开后,不会再被反复收起。没有会话(或只有空会话 / 子代理会话)的工作区没有活动信号,不打标、不收起。时间标跟随 DSH 语言与明暗主题。 ### 设置 安装后打开 **设置 → UX Plus**,五项功能各自独立开关,默认全部开启,切换即时生效: ![UX Plus 设置页](docs/images/settings.png) ## 安装 需要 Node.js ≥ 22、PATH 中的 pnpm,以及一个 DSH Web profile。 ```bash dsh plugin --profile add github:plyflai/dsh-ux-plus ``` 安装后重启该 profile。打开 **设置 → UX Plus**,即可按需开关各项功能。功能默认开启,单项开关即时生效。 对话字号和宽度在 **设置 → 通用 → 对话区** 调整。 ## 兼容性 - 仅面向 DSH 的 **Web 界面**(浏览器),不适用于终端 TUI。 - 所有功能都是宿主公开扩展点(侧边栏插槽、设置表单、DOM 微调)上的挂载,不修改宿主源码;任何一项都可以在设置里单独关闭。 - 宿主升级可能调整内部 DOM 与插槽契约;如遇失效请提 issue,通常会随版本跟进。 ## 开发 ```bash npm install npm test # node --test,含构建产物与注入依赖的静态断言 npm run build # tsdown 产出 lib/client.js(经典脚本,随仓库提交) ``` - 每个功能是一个 `features//` 私有模块(host + client 两半),在 `src/index.js` 与 `src/switches.js` 的功能清单里注册,不是独立插件。 - 客户端资源打包为单个经典脚本注入 `window.__ModuleLoader__`,外部依赖被严格限制在宿主提供的模块种子内,构建脚本会校验。 - 每次推送到 main 会在下方更新记录追加一条,并同步 [CHANGELOG.md](CHANGELOG.md)。 ## 更新记录 最近三条;完整历史见 [CHANGELOG.md](CHANGELOG.md)。 - **v0.1.7 · 2026-10-14** — README 改版:英文优先([英文版](./README.md)为主文档,本文为中文版),案例图并入功能表格,更新记录只保留最近三条、其余指向 CHANGELOG。 - **v0.1.6 · 2026-10-14** — 「闲置工作区收起」不再是独立功能:收起与时间标并入「最近活动排序」(同一开关、同一活动口径),设置页回到五项。 - **v0.1.5 · 2026-10-14** — 新增 24 小时无活动工作区自动收起 + 工作区行距今未更新时间标(刚刚 / N分钟 / N小时 / N天 / N个月 / N年,与宿主会话行时间同款式、同明暗主题、跟随语言)。 ## License [MIT](LICENSE) © 2026 plyflai