中文EN

dsh-lifeline

uinpmMIT

DeepSeek Harness 右侧消息导航轨道:逐条消息刻度、悬浮预览抽屉、平滑跳转、星标回看、实时平移动画(可打断)、完整会话索引与虚拟化、面板动态避让、官方 --dsw-* token 样式。

下载量 / Downloads
672

安装

dsh plugin --profile web add dsh-lifeline

沙箱测试

这个插件还没测过。提交测试 →

README

<p align="right"><a href="README.md">English</a> · <b>简体中文</b></p>

<h1 align="center">DSH Lifeline</h1>

<p align="center">

<strong>DeepSeek Harness 右侧消息导航轨道。</strong><br>

每条消息一个刻度 · 悬浮预览抽屉 · 平滑跳转 · 星标回看 · 实时平移动画

</p>

<p align="center">

<img src="https://img.shields.io/npm/v/dsh-lifeline?style=flat&label=latest%20release&color=4D6BFE" alt="Latest release">

<img src="https://img.shields.io/npm/dt/dsh-lifeline?style=flat&label=total%20downloads&color=4D6BFE" alt="Total downloads">

<a href="https://github.com/Physicolor/dsh-lifeline/stargazers"><img src="https://img.shields.io/github/stars/Physicolor/dsh-lifeline?style=flat&label=%E2%98%85&color=08C" alt="GitHub stars"></a>

<img src="https://img.shields.io/badge/license-MIT-2EA44F?style=flat" alt="MIT License">

<img src="https://img.shields.io/badge/DSH%200.1.x-4493F8?style=flat-square" alt="Supported: DeepSeek Harness 0.1.x">

</p>


一句话总结: 常驻右侧导航轨,把对话历史变成可导航的时间线——悬浮预览,点击跳转,星标收藏。使用官方 --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_scroll padding-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

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:2,最后更新 2026-09-01

链接

GitHub · Homepage · npm

同类插件