左侧用户轮次导航轨道:随阅读位置高亮,悬停预览单轮指标与模型回答摘要,支持键盘和点击跳转及本地会话搜索。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-codex-timeline
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Wine-Red/dsh-codex-timeline
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 中文
为 DeepSeek Harness Web 长会话提供一个贴在 Chat 正文左侧、低干扰的用户 Turn 导航轨道。它只标记用户发起的轮次,能随正文滚动高亮、快速跳转,并在本地搜索已经加载的提问与模型回答。
界面预览
轨道默认保持安静:每个已加载的用户 Turn 对应一条短横,只有当前阅读位置高亮。鼠标移入后,附近标记以阶梯状展开,便于准确选择;移出后立即恢复紧凑状态。
功能示意图与下方 DSH 实机截图中的提问、回答、指标和搜索结果均为专用测试文案,不包含真实会话内容。
下方两图截取自安装本插件的 DSH 0.1.0-rc.6,展示同一条真实轨道在默认和鼠标悬停时的状态:
功能图中的预览卡片对应实际交互:悬停可查看轮次、状态、耗时、首 token 时间、速度、提问与模型回答;搜索入口会直接展示关键词及其前后文,并可跳转到对应 Turn。
使用路径
- 滚动正文,轨道自动指示当前 Turn。
- 悬停查看两行提问与两行回答,点击或按 Enter / Space 跳转。
- 使用轨道顶部搜索按钮检索已加载内容;如有更早历史,可通过三点按钮调用 DSH 原生加载流程。
兼容性
当前版本只支持以下已验证组合,不声明更宽的兼容范围:
- DSH:
0.1.0-rc.6 - 已验证 DSH commit:
47f943859bef60e4160492346772ded9b24f765a - 被适配的包:
@deepseek-ai/dsh-client-ui-conversation@0.1.0-rc.6 - Node.js:
^22.19.0 || >=24.0.0
原因是 rc.6 尚未暴露外部 Chat gutter/navigation slot。本包通过正式的 dsh.bundle.patch 禁用固定的 ui-conversation 配置行,再插入一个精确锁定 rc.6 的 Conversation adapter;adapter 声明受控导航 slot,并在其中注册时间线。它不会修改 DSH 的全局安装目录。
不要在其他 DSH 版本上强行安装。升级 DSH 前请先卸载本插件,并按“升级检查”重新审计契约。
安装
确认当前版本:
dsh --version
从 npm 安装到 Web profile:
dsh plugin --profile web add dsh-codex-timeline
也可以使用仓库内的版本检查脚本:
powershell -ExecutionPolicy Bypass -File .\install.ps1
安装后重启 DSH Web 进程并刷新页面。可用以下命令确认 bundle 已生效:
dsh --profile web --dump-config | Select-String -Pattern "dsh-codex-timeline|ui-conversation"
输出应包含 # == dsh-codex-timeline;内置 ui-conversation 行应为 disabled: true,并新增 codex-timeline 行,其 name 为 dsh-codex-timeline。
从旧的本地覆盖版迁移
如果曾安装过早期同名 Conversation tarball,先删除它,再安装标准 bundle:
dsh plugin --profile web remove "@deepseek-ai/dsh-client-ui-conversation"
dsh plugin --profile web add dsh-codex-timeline
卸载
dsh plugin --profile web remove dsh-codex-timeline
或运行:
powershell -ExecutionPolicy Bypass -File .\uninstall.ps1
重启后,DSH 会恢复使用自带的 Conversation UI。
功能
- 只为真实用户 Turn 建立标记;工具调用、计划确认、追问 UI、子代理和流式 assistant chunk 不增加噪声标记。
- 当前项随 viewport 更新;用户向上阅读时,流式内容不会强制拉回底部。
- 鼠标悬停时标记以短横阶梯展开并临时高亮;离开后恢复正文当前 Turn。
- 浮层显示“第 x / y 条”、时间、状态、两行用户提问、两行模型回答,以及数据可得时的本轮用时、首 token 延迟和 tok/s。
- 点击、Enter 或 Space 跳转;方向键、Home 和 End 可移动焦点;支持
focus-visible与prefers-reduced-motion。 - 顶部三点按钮复用 DSH 正式分页流程加载更早历史;prepend 后使用稳定节点 ID 保持滚动锚点。
- 搜索按钮在浏览器本地检索已加载 Turn 的提问与模型正文,直接展示并高亮关键词上下文;不会发给模型或写入遥测。
- 少于 3 条用户消息时自动隐藏;如果仍有更早历史未加载,不会提前隐藏。
- 窄屏使用折叠入口,不遮挡消息、输入框或正文宽度。
- 设置页提供启用、默认显示、全部/稀疏密度和跟随高亮;持久化使用 DSH settings。
隐私
摘要、回答预览、搜索索引、hover/focus 状态都只在当前浏览器中从正式 Chat snapshot 计算。插件不增加模型上下文、不发送网络请求,也不新增遥测事件。
开发与验证
pnpm install
pnpm run check
pnpm pack --pack-destination artifacts
安装本地 tarball做 profile 契约验证:
dsh plugin --profile web add ".\artifacts\dsh-codex-timeline-0.1.2.tgz"
dsh --profile web --dump-config
lib/client.js 是为 rc.6 生成并锁定 SHA-256 的 compatibility artifact;scripts/prepare-dist.mjs 只做包名与构建路径标准化,scripts/verify-dist.mjs 检查其 slot、observer、交互与哈希契约。src/navigation-model.mjs 保留可独立测试的 Turn 投影与搜索逻辑。上游衍生代码的许可见 NOTICE。
升级检查
DSH 升级时不要直接放宽 peer dependency。至少执行:
dsh --version
dsh --profile web --dump-config
pnpm run check
pnpm pack --pack-destination artifacts
pnpm run test
并重新核对:
ui-conversation配置行和 client module loader 规则;ConversationTimelineSnapshot、Chat snapshot、Turn location 与稳定节点 ID;- Chat scroll owner、分页 prepend、bottom-follow 和 navigation slot;
- settings namespace/scope、locale 和 slot 注入契约;
- 暗色/亮色、窄屏、键盘、reduced motion、流式回复、工具密集 Turn、断线恢复和历史加载的真实浏览器行为。
能力不再兼容时,应发布新的独立 adapter 版本;不要让旧版本覆盖未知的 Conversation 实现。
许可证
MIT。本包含有基于 DeepSeek Harness MIT 源码构建的 rc.6 compatibility adapter,详见 NOTICE。
链接
同类插件
zhu1090093659/dsh-web-ui#packages/dsh-web-ui-all★ 2622
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
ccch1mneyyy/dsh-TUI★ 1231
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
omdsh-dev/DSH-better-sidebar★ 1198
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
omdsh-dev/dsh-at-file★ 214
Codex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
huiliyi37/dsh-tianshu-tui★ 159
DeepSeek Harness 的终端 UI(TUI)。
Nagi-ovo/dsh-visualize★ 114
对话内生成式 UI:模型把交互式 HTML 卡片直接画进会话流,带流式预览与沙箱渲染。