dsh-timeline-ui
Manifest validDeepSeek Harness UI Enhancement: Date-grouped Session List and Left-side Fisheye Conversation Navigation Bar / Date-grouped sidebar and left-side fisheye conversation navigation.
dsh-timeline-ui · 对话时间线与导航增强
下载 / Releases · MIT License · 参与改进 / Contributing
给 DeepSeek Harness Web 界面的一个客户端插件,做两件事,各自带开关:
| 功能 | 效果 |
|---|---|
| 对话时间线 | 侧边栏的会话列表按本地日历日期分组(今天 / 昨天 / 10月20日 / 2025年12月20日),新到旧排序、整列表编号、搜索、筛选已归档、查看全部 |
| 对话导航条左置 + 鱼眼 | 把对话区右侧的逐轮导航条移到左侧边缘;鼠标经过时按“横线中心到指针的距离”做高斯衰减,形成平滑波峰,离开后回到统一短线 |
两个功能都可以在 设置 → 通用 里单独关掉,关掉即恢复原生界面。
English summary: README.en.md
界面预览

基于实际界面截图,经 AI 辅助生成与隐私处理。账号、会话标题和正文均为演示内容。
安装
要求:DeepSeek Harness Web 版(桌面版同样适用,它加载的就是同一套 Web 客户端),插件以 bundle 形式安装到 profile。
通过 DSH 插件管理安装
在 DSH 的插件页面添加本仓库链接:
https://github.com/darkknight2333/dsh-timeline-ui
也可以使用本机 DSH CLI(把 desktop 换成实际运行的 profile):
dsh plugin --profile desktop add github:darkknight2333/dsh-timeline-ui
Web 用户把 profile 换成自己的值,例如 web。如果 dsh 不在 PATH,请使用安装目录中 CLI 的完整路径。安装后重启 DSH,并刷新界面。
以下为使用包管理器的备用安装方式。
方式一:Release 附件(备用)
从 Releases 下载 dsh-timeline-ui-0.1.0.tgz,然后让 Harness 里的 Agent 安装这个包,或在你的 profile 目录里执行:
# profile 目录:桌面版/Web 版都是 <DSH_HOME>/profiles/<profile>/
cd "$DSH_HOME/profiles/desktop"
pnpm add /path/to/dsh-timeline-ui-0.1.0.tgz
然后在 profile 的 package.json 的 dsh.profile.bundles 里加上 dsh-timeline-ui,重启 Harness。
方式二:直接从 GitHub
cd "$DSH_HOME/profiles/desktop"
pnpm add github:darkknight2333/dsh-timeline-ui
lib/ 是构建产物且已入库,因此从 git 安装也能直接运行(不会触发本仓库的构建脚本)。
桌面版与 Web 版如何选择 profile
两者用的是同一套客户端与同一份 profile 数据,区别只在启动方式:
- 桌面版:
%APPDATA%\@deepseek-ai\dsh-desktop\里的应用加载<DSH_HOME>/profiles/<名字>;默认 profile 名通常是desktop。 - Web 版(
dsh web):由进程的环境变量DSH_PROFILE决定 profile 名,未设置时用默认 profile。
安装前先确认要改哪一个:echo $env:DSH_PROFILE(PowerShell)或看 profile 目录里已有的 package.json。不要在安装目录(DeepSeek Harness 的程序目录)里放插件——升级会覆盖掉。
安装后
设置 → 通用 里会多出两行开关,默认都打开。侧边栏底部会多一个「全部对话」图标,点开是完整列表。
设置
| 行 | 默认 | 关掉之后 |
|---|---|---|
| 对话列表按日期分组 | 开 | 侧边栏恢复 Harness 原生的工作区/会话列表 |
| 对话导航条左置 + 鱼眼 | 开 | 导航条回到右侧、恢复原生长短 |
开关保存在该浏览器的 localStorage(dsh-timeline-ui/prefs@1),不会写进会话或 profile 设置。
使用
- 分组:以本地日历零点为界,不用“相差 24 小时”判断,跨零点、跨年、夏令时切换当天都正确。
- 编号与快捷键:所有条目连续编号;
Ctrl+1…9(macOS⌘+1…9)跳转到前 9 条。焦点在输入框时不触发。 - 菜单:行尾
…提供「复制会话 ID」「归档」。 - 筛选:顶部 ≡ 图标切换「显示已归档」。
- 导航条:点击横线跳转到该轮;悬停显示该轮预览;当前阅读位置保持深色。
兼容性与验证
已测试:DeepSeek Harness 0.2.1-rc.2(Windows 桌面版)。
| 项目 | 状态 |
|---|---|
| 构建、单元/离线测试(56 项) | ✅ 自动通过 |
| 插件安装、启用、设置行注册 | ✅ 自动通过 |
| 停用/卸载后恢复原生界面 | ✅ 代码路径已测(清理样式、监听器、观察器) |
| 真实界面截图、鱼眼观感、缩放/折叠 | ⚠️ 需人工确认,见 docs/VERIFICATION.md |
导航条功能依赖 Harness 内部结构(它不是一个 slot)。插件不写死 CSS 哈希:运行时探测“带 _frame 类名的 <nav> + 子级 button[data-index] + 父级 _slot”这一结构并据此生成样式。如果新版本把结构改掉,该功能会自动停用,并在设置行里显示「未在当前 DSH 版本中找到对话导航条」,不会误伤其他组件。
已知限制
- 导航条探测失败时只停用导航条,侧边栏分组不受影响。
- 侧边栏列表通过槽位优先级接管原生浏览器,因此不提供工作区的新增/重命名/删除界面;会话重命名、分支需要回到原生列表(临时关掉开关即可)。
- 分组按浏览器本地时区计算;同一账号在不同时区看到的日期分组可能不同。
- 只支持 Web 客户端(桌面版即基于它),不支持 headless / CLI。
停用与卸载
- 只停用:设置 → 插件 → 关闭「对话时间线与导航增强」,或把两个开关关掉(更轻)。
- 卸载:设置 → 插件 → 卸载;或
cd <profile> && pnpm remove dsh-timeline-ui,并从dsh.profile.bundles里删掉该名字。 - 卸载不会删除任何会话、归档状态或 Harness 设置。若要一并清掉开关记录,可在浏览器控制台执行
localStorage.removeItem('dsh-timeline-ui/prefs@1')。
从旧版本地插件迁移
早期版本是两个独立目录(@local/dsh-session-timeline、@local/dsh-rail-left)。迁移步骤:
- 安装本插件并确认生效;
- 停用/卸载那两个旧 bundle;
- 刷新页面。
本插件启动时会检测旧 bundle 的样式标记,若仍存在会在控制台给出提示(不自动改动你的其他插件)。
开发
npm run build # src/client.js → lib/client.js(包装成 ModuleLoader 工厂)+ 可移植性检查
npm test # 56 项离线测试:分组、筛选、编号、导航条探测、开关、清理
npm run verify # build + test
仓库结构:
src/client.js 唯一源码(工厂函数体,末尾 return { inject, apply })
scripts/build.mjs 包装 + 失败即报错的构建(无第三方依赖,输出可复现)
lib/ 构建产物(已入库,安装时直接用)
test/run.mjs 离线测试(伪 DOM + 伪 React)
locale/ 插件元数据(中/英)
docs/ 验证记录、截图说明
CI 会在 Windows/Linux、Node.js 22/24 上检查构建、离线测试、构建产物同步及打包清单;它不会启动 DSH,真实界面仍需人工验证。参与改进请看 CONTRIBUTING.md。
许可与素材
- 代码:MIT(见 LICENSE)。
- 图标:本仓库原创 SVG,随 MIT 一同发布。
- 未打包 Harness 源码或私有包。界面预览为基于应用界面的 AI 辅助演示图,已替换个人内容;DeepSeek Harness 的名称与品牌标识归其各自权利人所有。
致谢
界面结构与交互参考了 Claude / Codex 的会话列表形态;侧边栏使用 Harness 的槽位与标准 props;导航条通过运行时探测内部 DOM 实现,兼容性限制见上文。
用户反馈
问题反馈:GitHub Issues。请提供 DSH 版本、插件版本、操作系统和复现步骤,截图时隐藏账号、路径及私人聊天内容。
Comments
Loading…
Similar plugins
by asukasec
Right-side user-message navigator for the DeepSeek Harness Web UI.
★ 9
MIT
JavaScript
Aug 14, 2026
dsh plugin --profile web add dsh-message-previewby Wine-Red
Codex-style turn timeline and local conversation search for DeepSeek Harness Web | Codex风格的对话节点时间线导航栏,提供会话内容搜索等增强
★ 9
↓ 390/wk
MIT
JavaScript
Sep 28, 2026
dsh plugin --profile web add dsh-codex-timelineby XiLuovo
Session timeline down the left of the conversation: every user message at a glance, current-message tracking, hover preview of the message and its reply, click to jump, collapsible.
★ 4
↓ 177/wk
MIT
JavaScript
Aug 24, 2026
dsh plugin --profile web add dsh-session-timelineby Tinnikx
DeepSeek Harness 客户端增强插件:侧边栏多选与右键菜单、对话起点导航列、逐行开始时间戳、活跃标记配色、选区右键菜单、思考区限高、设置页 Harness 高级配置面板。仅占一个 slot,不发布。
★ 0
JavaScript
Oct 18, 2026
dsh plugin --profile web add github:Tinnikx/dsh-operation-improveby drscrewdriver
给 DeepSeek Harness 侧边栏加一个会话内容检索——标题/内容一键切换,还能按用户/回复/工具筛选
★ 4
↓ 24/wk
MIT
TypeScript
Oct 18, 2026
dsh plugin --profile web add dsh-session-search-toggleby lianginx
DSH Web UI plugin: auto-fold chat timeline processes + Deep diving fun tips
★ 0
MIT
JavaScript
Aug 26, 2026
dsh plugin --profile web add dsh-timeline-enhance