zhangzheng25/dsh-timeline ↗★ 0
dsh-timeline
Minimal session timeline for DeepSeek Harness: one dot per question, click to jump, hover to preview. 会话提问时间线:每条提问一个圆点,点击跳转,悬停预览。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zhangzheng25/dsh-timeline说明文档
阅读完整 README ↗dsh-timeline
简体中文 | English
DeepSeek Harness 的极简提问时间线插件:每条提问一个圆点,挂在界面右侧。点击圆点瞬间跳转到那条提问;悬停查看你当时说了什么、什么时候说的。

零配置、无 host 依赖、不查数据库——数据全部来自浏览器里已有的会话快照。
功能
- 🎯 每条提问一个圆点 —— 所有用户提问在右侧细条上各有一个圆点
- 📜 全历史覆盖 —— 长会话自动分页加载(
loadOlder),直到整条对话的每个提问都有圆点,不只显示最近一页 - ⚡ 点击跳转 —— 平滑滚动到对应消息,长对话不用再手动翻几百行
- 👁 悬停预览 —— 显示提问序号、提问时间、前 80 字内容
- 🕐 绝对时间 —— 今天的提问显示
HH:MM,昨天及更早显示MM/DD HH:MM - 🎨 Git 提交图渐变 —— 最新最深、最早最浅,先后顺序一眼可见
- 🖱 点击穿透 —— 时间条本身不挡对话,只有圆点响应点击
- 📦 零足迹 host —— node 半端是空
apply,服务端零开销 - 🔤 无 i18n 负担 —— 文案仅中文,保持精简
安装
dsh plugin --profile web add github:zhangzheng25/dsh-timeline
重启 DSH,打开任意有提问的会话,右侧即出现时间线。
本地开发安装:
dsh plugin --profile web add E:\path\to\dsh-timeline # junction 链接,改代码重建 + 重启即生效
原理
shell.overlay(root 作用域,附加式,点击穿透)
└─ timeline.rail(自声明子槽,session 作用域)
└─ useSession 快照 → chat.order + chat.nodes(kind === 'user')
→ 圆点 → data-chat-anchor-key 行 → scrollIntoView
- 注入点:全局
shell.overlay席位,自声明会话级子槽timeline.rail,Overlay 通过框架SessionProvider桥接到当前会话。 - 数据:用户消息来自
useSession快照(chat.order/chat.nodes),提问时间在data.time(epoch 毫秒)——不读会话日志、不查数据库。 - 跳转:每条对话行带
data-chat-anchor-key属性(值即节点 key),点圆点找到该行后scrollIntoView。 - UI:时间条
position: fixed+pointer-events: none,只有圆点参与点击,对话区完全不受影响。
开发
pnpm install
pnpm run typecheck # tsc --noEmit
pnpm run build # tsdown → lib/index.js(host)+ lib/client.js(浏览器)