前言¶
DeepSeek Harness(DSH)采用「一切皆插件」的架构,扩展能力通过插件实现。对于经常使用 DSH Web 界面的用户,侧边栏的会话列表和右侧的对话导航条在日常使用中逐渐暴露出一些局限:会话按时间顺序堆叠,难以快速定位某一天的对话;导航条固定在右侧,且样式统一,缺乏悬停时的视觉反馈。
darkknight2333/dsh-timeline-ui 是一个为 DeepSeek Harness Web 界面提供的客户端插件,旨在解决上述体验问题。它通过两个可独立开关的功能,将会话列表按日期分组,并将对话导航条移至左侧并添加鱼眼效果。
插件定位¶
这是一个客户端插件,通过接管侧边栏槽位和探测对话导航条的内部结构来实现增强。插件以 bundle 形式安装到 profile 目录,默认随 DSH 启动加载。维护者为 darkknight2333,当前版本为 0.1.0,采用 MIT 许可证。
核心功能¶
插件提供两个独立功能,均可在设置 → 通用 中单独关闭。
对话时间线¶
侧边栏的会话列表按本地日历日期分组,默认分组包括:今天、昨天、具体日期(如 10月20日)、年份(如 2025年12月20日)。列表按新到旧排序,每个条目都有连续编号。顶部 ≡ 图标可切换「显示已归档」筛选。
行尾 … 菜单提供「复制会话 ID」和「归档」操作。
对话导航条左置 + 鱼眼¶
将对话区右侧的逐轮导航条移到左侧边缘。鼠标经过时,导航条上的横线根据「横线中心到指针的距离」应用高斯衰减,形成平滑的波峰效果;离开后恢复为统一的短线。当前阅读位置保持深色高亮。
安装与启用¶
插件需要 DeepSeek Harness Web 版(桌面版加载的是同一套 Web 客户端)。
通过 DSH 插件管理安装¶
在 DSH 的插件页面添加本仓库链接:
https://github.com/darkknight2333/dsh-timeline-ui
使用 CLI 安装¶
在安装目录的 CLI 中执行(把 desktop 换成实际运行的 profile):
dsh plugin --profile desktop add github:darkknight2333/dsh-timeline-ui
Web 用户把 --profile 后的值换成自己的 profile 名,例如 web。安装后重启 DSH 并刷新界面。
备用安装方式¶
从 Releases 下载 dsh-timeline-ui-0.1.0.tgz,在 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
安装后,设置 → 通用 里会多出两行开关,默认都打开。
典型用法¶
分组规则¶
分组以浏览器本地时区的日历零点为界。同一账号在不同时区看到的日期分组可能不同。插件不写死 CSS 哈希,运行时探测带 _frame 类名的 <nav> + 子级 button[data-index] + 父级 _slot 的结构,据此生成样式。如果 DSH 版本结构变更,导航条功能会自动停用,并在设置行显示「未在当前 DSH 版本中找到对话导航条」。
编号与快捷键¶
所有条目连续编号。Ctrl+1…9(macOS ⌘+1…9)可跳转到前 9 条。焦点在输入框时不触发快捷键。
导航条交互¶
点击横线跳转到该轮;悬停显示该轮预览;当前阅读位置保持深色。
兼容性与已知限制¶
已测试环境:DeepSeek Harness 0.2.1-rc.2(Windows 桌面版)。构建、单元/离线测试共 56 项,CI 在 Windows/Linux、Node.js 22/24 上检查构建和离线测试。
已知限制:
- 导航条探测失败时只停用导航条,侧边栏分组不受影响。
- 侧边栏列表通过槽位优先级接管原生浏览器,不提供工作区的新增/重命名/删除界面;会话重命名、分支需要回到原生列表(临时关掉开关即可)。
- 分组按浏览器本地时区计算;同一账号在不同时区看到的日期分组可能不同。
- 只支持 Web 客户端(桌面版即基于它),不支持 headless / CLI。
停用与卸载¶
只停用:在设置 → 插件中关闭「对话时间线与导航增强」,或把两个开关都关掉。
卸载:在设置 → 插件中卸载,或在 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 的样式标记,若仍存在会在控制台给出提示(不自动改动其他插件)。
生态背景¶
DeepSeek Harness 的插件生态由社区维护,目录页 https://www.skillhub.cn/plugins/darkknight2333/dsh-timeline-ui 是独立的第三方站点,与 DeepSeek 或幻方没有官方从属关系。