dsh-message-timeline
v0.1.1
Published
Per-session user-message timeline for the DeepSeek Harness Web GUI: a left-edge tick strip covering the complete durable log, with hover previews and jump-to-message navigation
Readme
DSH Message Timeline
English | 中文
DeepSeek Harness Web 界面的会话用户消息时间轴插件:在会话栏左缘显示最近 30 条用户消息的竖排刻度条,悬浮查看消息时间与完整内容,点击跳转定位到对应消息。
功能简介
- 完整历史,不受窗口截断影响:通过 Harness 的会话投影机制在 Host 侧折叠完整持久日志,最近 30 条用户消息全部可见——聊天区只加载了最近一段历史时,更早的用户消息仍会出现在时间轴上。
- 悬浮预览:鼠标悬浮某刻度,弹出该消息的本地时间与全文,气泡中心跟随刻度的纵向位置。
- 点击跳转:点击刻度把聊天区滚动定位到该消息;目标在已加载窗口之外时,自动分页加载更早历史(上限 20 页)后跳转。
- 高斯悬浮特效:悬浮时刻度向右单向变长,相邻刻度宽度与颜色按高斯权重渐变(中心
#361115,基色深灰玻璃)。 - 仅含用户消息(不含插话 steering,窗口内可识别部分);刻度等高、垂直居中、间距 4px。
与 DeepSeek 的关系
本插件不是 DeepSeek 官方项目。 它是基于 DeepSeek Harness(MIT 开源)的 Cordis 插件体系开发的第三方扩展:使用其 Web 客户端插槽系统(shell.overlay)与会话投影接缝(session-projection seam)读取会话日志并推送到浏览器。数据全部来自 Harness 自身的会话日志与快照,插件不引入任何外部服务。
安装或使用方式
前置条件:deepseek-harness 源码检出(含 Web GUI)、Node ^22.19 || >=24、pnpm。
方式 A:作为工作区包部署
- 将本目录放入 harness 检出:
packages/client/ui-message-timeline(本目录与仓库内集成布局一致,可直接整体覆盖同步)。 - 确认注册面(若部署的是已集成该插件的仓库版本则已具备):
packages/bundle/web-app/cordis.patch.yml中的ui-message-timeline行;packages/bundle/web-app/package.json中的依赖;tsconfig.base.json的 paths 条目与tsconfig.client.json的引用。
- 安装与构建:
pnpm install pnpm --filter dsh-message-timeline run bundle pnpm run build - 重启 Web 服务:
pnpm dsh web,打开http://127.0.0.1:3080。
方式 B:作为 npm 包安装
- 在 harness 检出根安装(npm 与 pnpm 均可;pnpm 工作区建议用 pnpm):
npm install dsh-message-timeline # 或(pnpm 工作区):pnpm add dsh-message-timeline # 或(GitHub 直装):npm install git+https://github.com/Guan0923/dsh-message-timeline.git@deepseek-ai/*与 cordis peer 依赖标记为 optional:它们未在 npm 发布,由 harness 检出提供,因此安装开箱即成功;在 harness 检出之外安装仅获得包文件,实际运行需要 harness 环境。 - 在 Web 表面配置(bundle 的
packages/bundle/web-app/cordis.patch.yml,或--patch覆盖层)增加插件行:- insert: - id: dsh-message-timeline name: 'dsh-message-timeline' - 重启
pnpm dsh web。
发布到 npm(维护者)
# 1. 在 deepseek-harness 检出内构建 lib 产物(依赖未发布的 @deepseek-ai/* 工作区包):
pnpm --filter dsh-message-timeline run bundle
# 2. 将构建出的 lib/ 目录同步到本独立项目(npm 发布以 files 字段为准,.gitignore 不影响发布):
# (从检出 packages/client/ui-message-timeline/lib 复制到本项目 lib/)
# 3. 发布:
npm publish使用
打开任一有用户消息的会话,聊天区左缘即出现刻度条。悬浮刻度查看时间与全文;点击刻度跳转定位;「回到底部」按钮(产品自带)可返回最新消息。
构建说明
本项目 tsconfig.json / tsdown.config.ts 按 harness 工作区布局编写(相对引用 ../../../tsconfig.base.client.json 与 ../tsdown.client.ts),并且依赖尚未发布的 @deepseek-ai/* 工作区包与 Harness 客户端打包管线——必须在 deepseek-harness 检出内构建(方式 A 的步骤 3)。
开源许可证和版权归属
本项目以 MIT License 开源,版权 © 2026 Guan0923,详见 LICENSE。
本项目派生自 DeepSeek Harness(© deepseek-ai,MIT License):插件基于其 Web 客户端插槽系统与会话投影体系实现,相关代码遵循上游 MIT 条款。
当前维护状态及主要维护者
- 维护状态:维护中(actively maintained)。
- 主要维护者:Guan0923。
- 欢迎通过 GitHub Issues 报告问题、提交 Pull Request 参与改进。
已知风险、限制或兼容性说明
- 兼容性:面向 deepseek-harness
0.1.0-rc.x的 Web GUI;依赖未发布的@deepseek-ai/*工作区包,独立构建需在 harness 检出内进行。 - 产品 DOM data 属性是事实契约:定位依赖
[data-conversation-scroll]/[data-composer-seat],跳转依赖[data-chat-anchor-key](与 Harness 自身分页机制共用)。GUI 布局改版重命名或移除这些属性会静默破坏定位或跳转。 - 窗口外插话消息会显示为刻度:日志不携带插话标记,投影折叠无法区分窗口外插话与普通用户消息;点击这类刻度会翻页并落在插话气泡上。
- 跳转需要聊天视图挂载:在非 chat 视图页签(如轨迹视图)点击刻度无效果。
- 消息文本不设上限:超长消息会成比例增大投影载荷。
- 无开关、常驻显示:只要当前会话存在用户消息,刻度条即显示。
- 特效参数为内置常量:高斯增幅/σ/影响半径、配色、刻度尺寸目前不可配置。
