DeepSeek Harness 右侧消息导航轨道:逐条消息刻度、悬浮预览抽屉、平滑跳转、星标回看、实时平移动画(可打断)、完整会话索引与虚拟化、面板动态避让、官方 --dsw-* token 样式。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-lifeline
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Physicolor/dsh-lifeline
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
一句话总结: 常驻右侧导航轨,把对话历史变成可导航的时间线——悬浮预览,点击跳转,星标收藏。使用官方
--dsw-*token,与 DSH 生态无缝集成。
DSH Lifeline 是基于 Cordis 组合模型的 持久化 DSH bundle 插件。它在对话页面右侧渲染一条垂直导航轨,每条用户消息对应一个刻度,实时跟踪你的阅读位置。悬浮展开预览抽屉;点击任意历史消息即可平滑跳转(按需加载更早历史)。导航轨动态避让其他右侧面板(组件栏、侧栏等),并在面板开合时以协调动画平滑滑入/滑出。
功能特性
导航轨
| 能力 | 说明 |
|---|---|
| 逐条消息刻度 | 每条用户消息在垂直轨道上生成一个刻度指示线 |
| 阅读位置高亮 | 最接近当前阅读位置的刻度以品牌蓝高亮 |
| 中心轴对齐 | 轨道中心轴对齐消息排版的内容边缘——不遮挡内容 |
| 常驻显示 | 固定在右侧;会话 < 2 条用户消息时自动隐藏 |
| 窄屏自适应 | 视口 ≤ 767px(移动端/窄窗口)时自动收起 |
悬浮预览抽屉
| 能力 | 说明 |
|---|---|
| 悬浮展开 | 鼠标悬停轨道展开 260px 宽预览抽屉,显示消息文本 |
| 平滑滑入 | 抽屉从右侧以 CSS transition 滑入(可打断) |
| 点击跳转 | 点击任意条目平滑滚动到对应消息(按需加载更早历史) |
| 星标收藏 | 点击 ★ 标记重要消息;折叠态已标记项显示金色高亮;抽屉顶部「★ 只看标记」筛选 |
| 虚拟列表 | 抽屉使用虚拟列表(行高 30px);数千轮对话依然流畅 |
| 官方 token | 背景 --dsw-alias-bg-layer-1、边框 --dsw-alias-border-l2、阴影 --dsw-shadow-lv3——与 DSH 输入框/组件栏视觉一致,双主题自动适配 |
实时平移动画
| 能力 | 说明 |
|---|---|
| 逐帧同步 | 当右侧面板(组件栏、侧栏)开合时,导航轨每帧跟随对话区宽度变化 |
| 220ms ease-out 补间 | 平滑进入/退出,可打断动画——快速 开→关→开 无缝过渡 |
| 内容流参照 | 定位基于对话区内容流容器的实时 rect;无过期缓存问题 |
会话索引 + 回退联动
| 能力 | 说明 |
|---|---|
| 完整会话索引 | host 侧 REST 端点(/api/chat-timeline-index)提供全量用户消息索引 + 增量推送 |
| 无需分页加载 | 长对话直接显示所有历史刻度,无需逐页「加载更早」 |
| 回退联动 | 被回退/撤回的消息通过 dsh-rewind 插件自动从时间线剔除 |
面板避让
| 能力 | 说明 |
|---|---|
| 动态右缘跟踪 | 检测右侧工作台(dsh-better-sidebar、dsh-widgets、aionui)并自动平移对齐 |
| 多面板感知 | 同时处理两个重叠的右侧面板 |
架构
- Host 端(
lib/index.js):注册dshChatTimeline会话投影 + REST 索引端点(/api/chat-timeline-index)提供完整历史访问; - Client 端(
lib/client.js):通过window.__ModuleLoader__导出{ name, inject, apply };TimelineRail组件挂载于conversation.input.dock插槽,portal 渲染到document.body; - 定位引擎:每帧测量内容流容器的
getBoundingClientRect();轨道中心轴对齐排版的padding-box右缘(如Md3f7G_scroll的 32px 右内边距); - 样式:所有表面使用
--dsw-*语义 token——无硬编码 rgba,浅色/深色主题自动适配; - 数据管线:REST 增量索引 → 会话投影 → 已加载节点 → 按需
loadOlder(速度优先)。
安装
npm 一键安装(推荐)
dsh plugin --profile web add dsh-lifeline
安装完成后重启 dsh web 并刷新浏览器。
本地开发(link)
# 1. 克隆仓库
git clone https://github.com/Physicolor/dsh-lifeline.git
# 2. 在 profile 中 link
# 在 $DSH_HOME/profiles/web/package.json 中添加:
# "dsh-lifeline": "link:../../plugins/dsh-lifeline"
cd $DSH_HOME/profiles/web && pnpm install
# 3. 重启 dsh web
变更日志
v0.1.0(2026-09-01)
独立项目首次发布(原 dsh-chat-timeline 基础上重写):
- 重写定位引擎——基于内容流容器实时 rect 逐帧跟随;兼容
dsh-better-sidebar/dsh-widgets/aionui面板避让 - 完整会话索引——host REST 端点提供全量消息历史 + 增量推送;无需逐页加载
- 虚拟化渲染——抽屉虚拟列表 + 刻度邻域切片;长对话流畅
- 中心轴对齐——轨道中心轴对齐
Md3f7G_scrollpadding-box 右缘(此前因内容内边距偏移) - 实时平移动画——面板开合逐帧同步;220ms ease-out 补间,支持打断
- 官方 token 样式——抽屉与折叠胶囊使用
--dsw-*token(layer-1/border-l2/shadow-lv2/shadow-lv3);双主题自适应,无硬编码 rgba
致谢
本项目基于 jjxjjjjiik-bot/dsh-chat-timeline(MIT)的源码进行二次开发。插件架构最初参考 asukasec/dsh-message-preview(MIT)。
许可证
MIT © Physicolor
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-task-board★ 6815
侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
zhu1090093659/dsh-web#packages/dsh-web-all★ 6815
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
omdsh-dev/DSH-better-sidebar★ 3318
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
ccch1mneyyy/dsh-TUI★ 2823
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 1695
右下角常驻的小鲸鱼余额挂件:显示余额、今日已用、每轮对话消耗与随机台词,带音效与设置菜单。
Devin-AXIS/deepseek-design#deepseek-idesign★ 720
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。