🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

会话时间线 NONAME-2121237/dsh-timeline

DeepSeek Harness
NONAME-212123771 天前有提交已提供中文文档扫描:含敏感能力

在消息区右缘生成刻度线,悬停预览并点击跳转历史轮次

28.5/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add NONAME-2121237/dsh-timeline
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/09/25·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 71 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 26 处,展示前 24 条)
  • 删除本地文件
    lib/index.mjs:227
    rmSync(path, { force: true });
  • 读取本地文件
    lib/index.mjs:237
    if (!existsSync(path)) return void 0;
  • 读取本地文件
    lib/index.mjs:238
    const box = JSON.parse(readFileSync(path, "utf8"));
  • 写入本地文件
    lib/index.mjs:263
    mkdirSync(CACHE_ROOT, { recursive: true });
  • 写入本地文件
    lib/index.mjs:272
    writeFileSync(tmp, payload, "utf8");
  • 读取本地文件
    lib/index.mjs:273
    const back = JSON.parse(readFileSync(tmp, "utf8"));
  • 写入本地文件
    lib/index.mjs:275
    renameSync(tmp, path);
  • 读取本地文件
    lib/index.mjs:283
    if (!existsSync(CACHE_ROOT)) return;
  • 读取本地文件
    lib/index.mjs:284
    for (const name of readdirSync(CACHE_ROOT)) if (name.startsWith(".tmp-")) safelyUnlink(join(CACHE_ROOT, name));
  • 读取本地文件
    lib/index.mjs:375
    const workspaces = existsSync(root) ? readdirSync(root) : [];
  • 发起网络请求
    lib/client.js:321
    fetch("/history/api/list-turns", {
  • 发起网络请求
    lib/client-registry.js:321
    fetch("/history/api/list-turns", {
  • 发起网络请求
    src/client/index.ts:217
    fetch('/history/api/list-turns', {
  • 写入剪贴板
    src/client/util.ts:244
    return navigator.clipboard.writeText(text).then(() => true).catch(() => fallbackCopy(text))
  • 删除本地文件
    src/index.ts:387
    rmSync(path, { force: true })
  • 读取本地文件
    src/index.ts:400
    if (!existsSync(path)) return undefined
  • 读取本地文件
    src/index.ts:401
    const box = JSON.parse(readFileSync(path, 'utf8')) as { at?: unknown; data?: unknown; sum?: unknown }
  • 写入本地文件
    src/index.ts:424
    mkdirSync(CACHE_ROOT, { recursive: true })
  • 写入本地文件
    src/index.ts:429
    writeFileSync(tmp, payload, 'utf8')
  • 读取本地文件
    src/index.ts:431
    const back = JSON.parse(readFileSync(tmp, 'utf8')) as DiskCacheBox<T>
  • 写入本地文件
    src/index.ts:433
    renameSync(tmp, path)
  • 读取本地文件
    src/index.ts:442
    if (!existsSync(CACHE_ROOT)) return
  • 读取本地文件
    src/index.ts:443
    for (const name of readdirSync(CACHE_ROOT)) {
  • 读取本地文件
    src/index.ts:537
    const workspaces = existsSync(root) ? readdirSync(root) : []
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-session@deepseek-ai/dsh-session-query
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 消息区右缘生成刻度线
  • 悬停预览历史轮次
  • 点击跳转历史轮次

DSH web 插件:长对话的交互时间线侧栏(dsh-history 的独立分支继任者)

README

由 DeepSeek 最新模型翻译生成
dsh-timeline DSH Web 插件:超长会话的交互时间线——消息区右缘一列细刻度线,每根线代表你发的一条消息(一个交互轮次),悬停预览、点击跳转、滚轮浏览,配合键盘 ↑/↓ 快速回忆自己说过的话。 如果您安装后觉得还不错请给我点个star 功能 - 完整轮次视图:列出当前会话全部交互轮次(含未被加载进对话窗口的旧轮次、被 compaction 覆盖的历史),最新在底、正序排列。 - 时间线轨道:消息区右缘竖向紧凑刻度条(约 10 根可见),当前位置的轮次蓝色高亮;滚轮悬停轨道上下滑动浏览整条时间线,移开鼠标自动回弹到当前轮次。 - 悬停预览:tooltip 显示该轮次序号、时间、用户消息(200 字截断)、Agent 回复(200 字截断)与附件/工具调用数。 - 点击跳转:点击任意刻度线 → 自动滚动定位到该轮用户消息并闪烁高亮;若目标轮次尚未加载,自动逐页加载更早历史并继续定位(含安全上限)。 - 键盘回忆:输入框内按 ↑/↓ 环回你最近发送的消息,方便复述或纠错。 - 自动跟随:对话滚动时高亮自动跟随视口中心最近的轮次;切换会话后自动复位并重新检测。 🚀 安装 前置:已装好 DSH(dsh web 能正常运行)。
展开完整文档(README 剩余 1 节)
dsh-timeline

DSH Web 插件:超长会话的交互时间线——消息区右缘一列细刻度线,每根线代表你发的一条消息(一个交互轮次),悬停预览、点击跳转、滚轮浏览,配合键盘 ↑/↓ 快速回忆自己说过的话。

如果您安装后觉得还不错请给我点个star

功能

- 完整轮次视图:列出当前会话全部交互轮次(含未被加载进对话窗口的旧轮次、被 compaction 覆盖的历史),最新在底、正序排列。
- 时间线轨道:消息区右缘竖向紧凑刻度条(约 10 根可见),当前位置的轮次蓝色高亮;滚轮悬停轨道上下滑动浏览整条时间线,移开鼠标自动回弹到当前轮次。
- 悬停预览:tooltip 显示该轮次序号、时间、用户消息(200 字截断)、Agent 回复(200 字截断)与附件/工具调用数。
- 点击跳转:点击任意刻度线 → 自动滚动定位到该轮用户消息并闪烁高亮;若目标轮次尚未加载,自动逐页加载更早历史并继续定位(含安全上限)。
- 键盘回忆:输入框内按 ↑/↓ 环回你最近发送的消息,方便复述或纠错。
- 自动跟随:对话滚动时高亮自动跟随视口中心最近的轮次;切换会话后自动复位并重新检测。

🚀 安装

前置:已装好 DSH(dsh web 能正常运行)。本插件目前通过 GitHub 或 npm 分发(发布到 npm 需作者先执行一次 npm 端 Trusted Publisher 配置,见 .github/workflows/release.yml)。

从 GitHub 直接安装(推荐)

dsh plugin --profile web add github:NONAME-2121237/dsh-timeline#main

装完后运行随包自带的一键重启脚本:

bash ~/.dsh/profiles/web/node_modules/dsh-timeline/restart-dsh-web.sh

此方式直接使用仓库已提交的构建产物(lib/ 已随仓库提交),无需本地构建。

然后阅读GetStar

从 npm 安装

dsh plugin --profile web add dsh-timeline@latest
bash ~/.dsh/profiles/web/node_modules/dsh-timeline/restart-dsh-web.sh
然后阅读GetStar

从 plugin-registry 安装

前置:DSH 已集成 plugin-registry(dsh registry 命令可用)。同时启用两个通道会双挂载(Node 半挂两次、页面两个面板)。

git clone https://github.com/NONAME-2121237/dsh-timeline.git && cd dsh-timeline
pnpm install && pnpm build
node scripts/package-registry.mjs # 组装 registry/ 暂存(含清单 + 产物 + 文档,不入库)
dsh registry install ./registry # 安装(默认禁用)
dsh registry enable dsh-external/dsh-timeline
bash restart-dsh-web.sh # 自动重启生效然后阅读GetStar

从旧版 dsh-history 迁移

如果你之前装过 dsh-history(本项目的旧名),请先移除旧插件再安装,避免同时挂载两个客户端面板:

dsh plugin --profile web remove dsh-history # 或按你此前所用的通道移除
bash ~/.dsh/profiles/web/node_modules/dsh-history/restart-dsh-web.sh
然后按上方任一方式安装 dsh-timeline 然后阅读GetStar

缓存与性能

- host 端按会话把轮次/消息列表持久化到 ~/.dsh/timeline-cache/。
- 请求顺序:内存新鲜缓存(3s)→ 磁盘缓存(毫秒级)→ 首次访问才生成一次(写盘)。
- 启动时后台预热:扫描 ~/.dsh/sessions,为还没有缓存的会话逐个生成(500ms 节流),点开即秒出。
- 缓存命中后不实时读取:真实数据由后台任务渐进刷新,先展示、再校准,新消息约 15s 内出现。
- 健壮性(v0.2.1):
- 写入采用"写全 → 回读校验 → 原子替换":新内容先落临时文件并验证 sha256 校验和,通过后才覆盖当前缓存;进程中途停止最多留下无害的 .tmp- 残留(启动时自动清扫),当前缓存绝不半写。
- 缓存文件带校验和(at + data + sum);读取时校验,损坏/篡改/截断/旧格式一律识别并删除重建,永不返回坏数据。
- 后台刷新受门限约束:会话连续停留 ≥5s 且距上次真实数据 ≥15s 才刷新(快速切换会话不折腾磁盘),单飞防并发。

使用

- 进入会话后,消息区右缘自动出现时间线轨道,无需手动打开。
- 滚动:鼠标悬停轨道,滚动滚轮连续浏览时间线;移开后自动回到当前轮次。
- 点击:跳到对应轮次的用户消息。
- 悬停:查看该轮次的用户消息/回复/工具数预览。
- 键盘:焦点在输入框时按 ↑/↓ 回忆最近发送的消息。

🧑💻 开发

git clone https://github.com/NONAME-2121237/dsh-timeline.git
cd dsh-timeline
pnpm install
pnpm typecheck && pnpm build # lib/ 产物需提交(GitHub 安装通道依赖它)

接入本地调试(把 profile 依赖指向本地克隆):

编辑 ~/.dsh/profiles/web/package.json 的 dependencies: "dsh-timeline": "link:"
cd ~/.dsh/profiles/web && pnpm install
bash /restart-dsh-web.sh

📄 许可与声明
- 本项目采用定制开源许可 dsh-timeline Open Source License v1.0(见 LICENSE):条款宽松,但禁止商业用途;商用须取得作者书面授权。
- 本项目源自上游开源项目 chenproton/dsh-history(MIT 许可,版权 (c) 2025 chenproton)。基线代码保留 MIT 授权(见 LICENSE-MIT),fork 后新增代码按上述定制许可授权,完整声明见 NOTICE.md。
- 仓库保留了完整的原始上游提交历史,来源可追溯。

常见问题

如何更新插件?

dsh plugin --profile web update dsh-timeline
bash ~/.dsh/profiles/web/node_modules/dsh-timeline/restart-dsh-web.sh

GitHub 安装通道下:dsh plugin --profile web add github:NONAME-2121237/dsh-timeline#main 后同样运行重启脚本。

安装时出现 "✕ missing peer" 警告?

可安全忽略。DSH 运行时通过自身 module table 提供 @deepseek-ai/ 与 react 等依赖,无需在 profile 中重复安装(官方插件同样如此)。

装完看不到时间线?

1. 确认重启过服务(运行 restart-dsh-web.sh)或硬刷新浏览器(Cmd/Ctrl+Shift+R);
2. 确认插件已加入 bundle:cat ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 应含 dsh-timeline;
3. 会话中至少发过一条消息才会出现轨道(无轮次时隐藏);
4. 仍不行,把 dsh plugin --profile web list 的输出贴到 issue 反馈。

restart-dsh-web.sh 是什么?报 "No such file or directory"?

它是随插件分发的一键重启脚本:自动探测部署方式并重启 DSH Web 让插件生效——

- 本机由 systemd 管理(dsh-web.service)→ 自动走 systemctl restart(干净单实例,含残留进程清理与 HTTP 健康检查);
- 否则自动发现运行中的 dsh web 进程,读取原始启动参数原样重启(nohup);
- 找不到进程时直接用 dsh web 启动。

报 No such file or directory 是脚本不在当前 shell 目录——请用完整路径:

bash ~/.dsh/profiles/web/node_modules/dsh-timeline/restart-dsh-web.sh
或未装包时从仓库下载
curl -O https://raw.githubusercontent.com/NONAME-2121237/dsh-timeline/main/restart-dsh-web.sh
bash restart-dsh-web.sh

参数:-n 预览将执行的命令(dry-run)、-p PID 指定进程、-l 文件 指定日志(默认 /tmp/dsh-web.log,或环境变量 DSH_WEB_LOG)。

更新记录

完整版本变更见 CHANGELOG.md。

v0.2.1

- 缓存加固:缓存文件带 sha256 校验和;写入改为"写全 → 回读校验 → 原子替换",进程中途停止不会写坏当前缓存;损坏/篡改/截断/旧格式自动识别并重建;启动时清扫 .tmp- 残留。
- 刷新门限:后台真实数据刷新需该会话连续停留 ≥5s 且距上次刷新 ≥15s(快速切换不折腾磁盘),单飞防并发。
- 主题跟随:tooltip 与整个时间线面板的配色全部接入宿主 --dsw-alias- 主题变量,手动切主题 / 跟随系统 / 第三方皮肤即时跟随、与页面其余部分同源(删除旧的暗色属性特判)。
- 实测(压测 A 全量):缓存版 12 会话点击到"线条渲染 + 蓝线居中高亮"全部 ≤1s(三个原 3~6s 的大会话收敛到 286~455ms),零失败。

v0.2.0

- 独立项目化:脱离 fork 关系,项目更名为 dsh-timeline,新仓库 NONAME-2121237/dsh-timeline。
- 许可变更:采用定制开源许可(宽松、禁止商用),基线代码保留上游 MIT 授权;新增开源声明(LICENSE / LICENSE-MIT / NOTICE.md)。
- 文档全面重写,安装通道 / 更新 / 迁移说明更新。
- 修复:点击跳转的落地行闪烁此前依赖 dshm-flash 类却无对应样式(旧面板样式移除后成为死代码),已补回消息行脉冲高亮动画。

v0.1.24(fork 版本,历史)

- 跳转对齐:用户消息上缘贴视口顶,快速滚动而非瞬跳。
- 修复:点击未加载轮次持续翻页直至目标轮次入窗(loadOlder 追逐)。

更早的版本记录见 chenproton/dsh-history 仓库主页。

面向 DSH 社区的开源插件。非商用自由使用;商用请先联系作者。
预览分享卡片长什么样 ↓NONAME-2121237/dsh-timeline
分享 · DeepSeek Harness Hub
NONAME-2121237/dsh-timeline

在消息区右缘生成刻度线,悬停预览并点击跳转历史轮次

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部