前言¶
DSH 的会话聊久了之后,左侧只剩一个会话列表,回合本身没有可定位的参照物。想回到第二十轮,只能靠滚动和猜。下面介绍的插件 jaycou/codex-history-rail 解决的就是这件事:在对话左侧留白处放一条横向时间轴,每个回合一个刻度,可以预览、可以跳转、可以收藏。它由 JAYCou 维护,面向客户端,属于 UI 类型的插件,不改变 Host 端的行为。
这是什么¶
一句话定位:给 DeepSeek Harness Web 界面对话区左侧加一条 Codex 风格的回合时间轴。它不改写对话内容,也不介入模型调用,只读会话的回合信息并在界面上画一条刻度线,属于纯展示型的客户端插件。
解决的问题是长会话回溯。已经有的做法是滚动聊天记录或翻历史消息列表,两者都需要视觉上的主动定位;这个插件把回合编号变成左边的一条刻度,把「找第 N 轮」变成在时间轴上点一下。
核心功能¶
按 README 记载,能力包括以下几点。
回合刻度。当前会话每一轮对应时间轴上一条短横线,一眼能看到会话有多长、轮次分布在哪里。
悬停预览。把鼠标停在某个刻度上,刻度变长并弹出一张卡片,显示该轮的用户输入和助手回复。
点击跳转。点刻度或卡片上的 Jump here 按钮,对话区滚动到那一轮;如果那一轮还没加载,插件会先去取,再滚动定位到对应的行。
收藏。卡片上有收藏按钮,可以把某一轮标记下来。时间轴顶部的星标打开跨会话收藏面板,点里面保存的条目会跳到对应轮次,必要时自动切换会话。收藏只存在浏览器的 localStorage 里,不上传到服务端。
自适应宽度。时间轴整体不超过视口的 80%,回合变多时刻度之间的间距缩小,不会超出这个上限,也不会自己滚动。
主题跟随。它只使用宿主提供的 --dsw-alias-* 主题变量,不引入 DSH 客户端包。视口宽度低于 1080px 时自动隐藏。
安装与启用¶
官方给的命令是就地从本包目录安装,需要先拿到源码目录:
# 在该包目录下执行
dsh plugin add .
装完要在 DSH profile 里启用 @jaycou/codex-history-rail。这个包声明了 dsh.bundle.patch 和一个 Web client 半边,是纯 UI bundle,Host 半边为空。
版本与环境限制在 package.json 里写明了,启用前可以对照:
{
"name": "@jaycou/codex-history-rail",
"version": "1.0.2",
"license": "MIT",
"engines": {
"dsh": ">=0.2.1-rc.3 <0.3.0-0"
}
}
也就是说,要求 dsh 版本在 0.2.1-rc.3 以上、低于 0.3.0-0。
典型用法¶
1、打开一个长会话。启动 DSH 后进入任意会话,左侧对话区边缘会自动出现时间轴,每个刻度对一轮。
2、悬停查看某一轮。鼠标移到刻度上,看预览卡片里的输入和回复,确认是不是要找的那一轮。
3、点击跳转。点刻度或卡片的 Jump here,对话区滚到该轮。如果轮次还没加载,插件先调 sessions.binding(sessionId).session.loadThrough(seq) 把历史取回来,再把对应的 [data-chat-anchor-key] 行滚到可视区域。
4、收藏关键轮次。在卡片上点收藏,回头从顶部星标打开收藏面板,跨会话访问。
5、本地校验。改过源码后可以跑这两条检查语法:
node --check client.js
node --check index.js
client 部分是一个 window.__ModuleLoader__.load(...) 工厂,client.js 就是全部 UI,语言相关的元数据在 locale/ 目录里。
适用场景与注意¶
适合谁:主要面向会话很长、需要频繁来回查轮次的 DSH 使用者,以及关心客户端 UI 结构、想照着改自己插件的人。它只读回合信息并做展示,不碰模型和工具调用。
注意事项有这几条。
插件以当前 dsh 进程的权限运行。安装前应当先查看源码,确认代码内容与预期一致,再决定是否启用。许可证是 MIT,包里也提供了仓库地址,都可以直接核对。
它要求特定范围的 dsh 版本,升级 dsh 后如果不再满足 >=0.2.1-rc.3 <0.3.0-0,插件可能不生效。
收藏数据存在浏览器 localStorage,不会上传;换浏览器或清缓存会丢失,跨设备不同步,需要自己留意。
低分辨率屏幕上插件自动隐藏,窄视口下看不到时间轴属于预期行为。
这个插件来自社区目录 SkillHub,目录站是独立站点,与 DeepSeek / 幻方没有官方从属关系,不要当作官方应用商店里的正式组件。仓库当前星标为 0,属于早期项目。
结尾¶
codex-history-rail 的价值在于把长会话的回溯成本降到一次点击,本身很轻,客户端单文件实现,不引入额外依赖。如果正好有定位轮次的需求,可以从上面的目录安装命令试起,再看源码决定是否合入自己的配置。
目录页:https://www.skillhub.cn/plugins/JAYCou/codex-history-rail
GitHub:https://github.com/JAYCou/codex-history-rail