前言¶
在 DeepSeek Harness(DSH)里做长会话开发时,消息一多,靠滚动条或逐条翻找人类提问的成本会明显上升。DeepSeek 网页版在对话列右缘有一条竖线:每条用户消息对应一根短横线,靠近可展开列表并跳转。Harness 自带聊天视图并不自带这一控件。
下面介绍社区客户端插件 dsh-chat-rail(维护者 Stellight,分类:客户端)。它在对话区右缘复刻同类导航竖线,并针对 Harness 只持有会话日志「窗口」这一限制,提供载入更早历史后再扩展横线的能力。
这是什么¶
dsh-chat-rail 是 DSH 的静态 dual-face 插件:Host 侧 dsh/index.js 为空实现,功能全部在浏览器侧的 dsh/client.js 中,通过 frame 级浮层 shell.overlay 挂载,无需 Host 注入批准。
数据来源只走公开客户端契约(props.useSessions、会话 binding 快照、聊天视图发布的 [data-chat-flow] 等结构锚点),不向 Host 往返请求。
- 目录页:https://www.skillhub.cn/plugins/Stellight/dsh-chat-rail
- 源码与说明:https://github.com/Stellight/dsh-chat-rail
- 许可证:MIT(
package.json版本 1.0.0,Node >= 20)
核心功能¶
静默态与悬停面板¶
右侧一列灰色短横线,当前视口中的那条为品牌蓝;竖线带极淡胶囊底,不遮挡正文。
鼠标靠近或聚焦时,向左展开圆角面板,列出本会话全部人类消息(当前项蓝色高亮;过长文本省略,悬停显示全文)。点击横线或列表行,对应消息滚回视口顶部(跳转留白由 JUMP_OFFSET 控制,默认 16px)。
布局跟随¶
侧栏收放、详情栏、输入框增高、窗口缩放时会重新测量,竖线贴着正文栏右缘,定位依赖聊天视图发布的 [data-chat-flow] 等锚点,不写死布局类名。
消息很多时,横线在最小间距仍放不下时会按比例抽样,两端必留,横线不超出聊天列;面板仍列出全部消息。
回溯更早的历史¶
客户端只持有会话日志的一个窗口,竖线只能反映已载入部分。若还有更早历史,面板顶部显示 ↑ 载入更早的消息:
- 点击一次把窗口往前扩一页,新横线随之出现;
- 加载完成后视图会滚到刚载入批次中最新的那条,便于继续往更早读;
- 面板可连点,一路翻到底。
面板交互:指针在竖线或面板上时展开;离开且未钉住时在 CLOSE_DELAY_MS(默认 160ms)后收起;面板内任意点击会钉住;Escape 或点外部收起;点某条消息跳转后收起;加载进行中不收起。
安装与启用¶
安装命令来自仓库 README,在插件包目录下执行(默认装进 web profile):
node tools/install.mjs # 默认装进 `web` profile
node tools/install.mjs --profile web
node tools/install.mjs --remove # 卸载
脚本会把包复制到 <profile>/node_modules/dsh-chat-rail,并在 <profile>/package.json 登记 dependencies 与 dsh.profile.bundles,同时留下 package.json.bak。
装完后需要重启 harness(dsh web)并刷新页面:profile 的 bundle 在启动时合成,新 bundle 下次启动才挂载。之后若只改 dsh/client.js,刷新页面即可(/plugins/... 按请求从磁盘读取)。
插件以当前 DSH 进程及浏览器上下文运行;安装前建议阅读源码与 MIT 许可,确认符合你的环境策略。
典型用法¶
- 按上一节完成安装并重启
dsh web,打开对话页签。 - 在有至少一条人类消息(或仍可载入更早历史)的会话中,在聊天列右缘查看竖线与横线;悬停展开列表,点击条目跳转。
- 长会话在面板顶点击
↑ 载入更早的消息,扩展可见横线并继续向上阅读。
可调参数集中在 dsh/client.js 顶部常量,例如横线尺寸(DASH_HEIGHT / DASH_WIDTH)、间距(DASH_GAP_MAX / DASH_GAP_MIN)、RAIL_CLEARANCE、ACTIVE_THRESHOLD、CLOSE_DELAY_MS 等。排查「竖线应出现却未出现」时,可临时将 DIAGNOSTIC 设为 true(默认 false);该模式会通过 session.prompt 发一条自检报告到会话并可能触发 agent 回复,排完应改回 false。
仓库提供本地校验:
node test/smoke.mjs # 浏览器半区:合成 DOM + 真实 React 渲染
node test/manifest.mjs # 安装脚本用的 profile manifest 文本改写
适用场景与注意¶
适合:经常在 Harness Web 端进行长对话、希望用网页版类似的竖线快速在人类消息间跳转的开发者。
注意:
- 空白会话、窗口内无人类消息且没有更早历史的会话不会出现竖线,属预期行为。
- 装完没有竖线:常见原因是未重启 harness,启动图早于本 bundle。
- 启动报
cannot resolve profile bundle:检查<profile>/node_modules是否缺本包目录。 - 社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本插件为社区贡献的客户端 bundle。
结尾¶
dsh-chat-rail 在 DSH 对话列右缘提供 DeepSeek 网页版风格的导航竖线,并在 Harness 会话窗口机制下支持载入更早历史。安装依赖仓库内的 tools/install.mjs,装后重启 dsh web 并刷新即可使用。
- 目录:https://www.skillhub.cn/plugins/Stellight/dsh-chat-rail
- GitHub:https://github.com/Stellight/dsh-chat-rail