7A7K
DSH-Timeline-Navigator
A turn-based conversation timeline for DeepSeek Harness with bookmarks, history loading, keyboard controls, and mobile support.
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
DeepSeek Harness 时间线导航
一个面向 DeepSeek Harness Web UI 的对话时间线导航插件。它把长对话按回合整理成可点击跳转、可收藏的侧边时间线,不修改 Harness 主程序源码。
你能用它做什么
- 从聊天右侧可见入口打开时间线,也支持键盘聚焦和移动端触摸。
- 按 Turn 分组浏览消息,自动高亮当前可见消息。
- 跳转到尚未加载的旧消息时,自动加载历史。
- 默认合拢回合,支持“展开全部 / 折叠全部”。
- 点击每条消息右侧星标收藏;移动端长按是备用方式。
- 一键跳到最早/最新消息,按
Escape关闭面板,拖动左边缘调整宽度。 - 面板标题栏和设置页插件卡片都提供
中 / EN按钮;切换后标题、收藏、跳转、展开/折叠和状态提示会同步切换语言,并自动记住选择。 - 记住启用状态、面板宽度、过滤模式、滚动模式和首次提示状态。
- 支持移动端底部面板,并尊重系统的“减少动态效果”设置。
安装:让 Harness 直接下载(推荐)
如果已经安装 DeepSeek Harness,直接在终端执行下面这一条命令,Harness 会从 GitHub 获取并安装插件:
dsh plugin --profile web add github:7A7K/DSH-Timeline-Navigator
首次安装会自动把插件加入 web profile。安装完成后刷新 http://127.0.0.1:3080/;如果页面仍使用旧 bundle,请重启一次 DSH Web 进程。
本项目已经包含可直接加载的 lib/ 构建产物,并声明了 Harness 所需的 dsh.bundle 清单,因此用户不需要先下载仓库、执行 npm install 或手动编写 patch。
备用方式:PowerShell 安装脚本
安装包已经随仓库提供,普通用户不需要 npm install 或发布 npm 包。Windows PowerShell 推荐使用下面的方式:
方式一:下载仓库后安装
git clone https://github.com/7A7K/DSH-Timeline-Navigator.git
Set-Location .\DSH-Timeline-Navigator
.\install.ps1
也可以在 GitHub 点击 Code → Download ZIP,解压后在解压目录运行 .\install.ps1。
方式二:使用备用 PowerShell 安装脚本
.\install.ps1 `
-Source 'https://github.com/7A7K/DSH-Timeline-Navigator' `
-Version latest
-Version latest 会读取 GitHub 最新 Release;分支名(如 main)和版本 tag 都支持。
安装器会把插件复制到 DSH 的插件目录,创建 Web profile 所需的 junction 和 patch 配置。
如果 DSH 不在默认目录 %USERPROFILE%\.dsh,请显式指定:
.\install.ps1 -DshHome 'D:\path\to\.dsh'
卸载
在插件目录运行:
.\uninstall.ps1
默认只移除启用链接和 patch,保留源代码以便回滚。确定不再需要源代码时再加 -RemoveSource。
操作速查
| 操作 | 结果 |
|---|---|
| 悬停或聚焦右侧入口 | 打开时间线 |
| 点击消息 | 跳转并居中消息 |
| 点击消息右侧星标 | 添加/取消收藏 |
| 点击 Turn 标题 | 展开/折叠该回合 |
| 展开全部 / 折叠全部 | 批量改变回合状态 |
| ↑ / ↓ 按钮 | 跳到最早 / 最新消息 |
| 移动端长按消息 | 收藏备用操作 |
Escape | 关闭时间线 |
| 拖动面板左边缘 | 调整面板宽度 |
兼容性与隐私边界
- 目标为 DSH Web client
rc.6及更新的插件合约。 - 依赖 Harness 提供的
ChatSnapshot和data-chat-anchor-key,不抓取原始 session 事件。 - 插件只拥有自己的 overlay 和 settings slots;禁用或卸载不会修改宿主源码。
- CI 会验证宿主 DOM 定位、历史消息加载、插件 manifest、overlay slot 和设置页 slot 的集成契约;这些检查用于尽早发现 Harness 合约变化。
npm run smoke仍需要一个正在运行且有非空会话的 Harness,用于最终的真实 UI 验证;它不是 GitHub Actions 的必需前置条件。- 安装脚本需要 Windows PowerShell 和一个已经存在的 DSH home;最终用户不需要 Node.js。
本地开发
开发和打包需要 Node.js 18 或更新版本:
npm install
npm run bundle
npm run check
源码在 src/,lib/ 是生成产物。修改后先运行 npm run bundle,不要直接编辑 lib/client.js。npm run check 会检查版本元数据、生成 bundle 的语法和模型、存储、宿主契约测试。
UI 冒烟测试需要本地 Harness 正在运行并有非空会话:
npm run smoke
English
DeepSeek Harness Timeline Navigator
An accessible conversation timeline for the DeepSeek Harness Web UI. It turns long conversations into a clickable, bookmarkable side panel without modifying Harness source code.
Features
- Visible right-edge trigger with keyboard-focus and touch support.
- Turn-based grouping with the currently visible message highlighted.
- Automatic history loading when jumping to an older unloaded message.
- Collapsed turn groups by default, plus Expand all / Collapse all.
- Explicit star controls for bookmarks, with touch long-press as a fallback.
- Earliest/latest navigation,
Escapeto close, and draggable panel width. - A
中 / ENlanguage switcher updates panel labels, buttons, messages, and status text together, and remembers the choice. - Persistent enabled state, width, filter mode, scroll mode, and first-use hint state.
- Mobile bottom sheet and
prefers-reduced-motionsupport.
Install from GitHub
The recommended Harness-native installation is:
dsh plugin --profile web add github:7A7K/DSH-Timeline-Navigator
The package declares the required dsh.bundle.patch manifest and includes the built lib/ artifact, so end users do not need to clone the repository or run npm:
git clone https://github.com/7A7K/DSH-Timeline-Navigator.git
Set-Location .\DSH-Timeline-Navigator
.\install.ps1
Reload http://127.0.0.1:3080/ after installation and restart the DSH Web process if an old bundle remains loaded.
Compatibility and development
The plugin targets the DSH Web client rc.6 contract line and newer. It uses the host ChatSnapshot and data-chat-anchor-key contracts, owns only its overlay and settings slots, and does not scrape raw session events. CI checks DOM location, older-message loading, the plugin manifest, and both UI slot integrations. Developers need Node.js 18+:
npm install
npm run bundle
npm run check
npm run smoke is an optional live Harness UI check and requires a running Harness page with a non-empty conversation.
Links
MIT License.