Simon314620/dsh-turn-index

DeepSeek 工具栏的侧边栏对话轮次索引插件

Project Overview项目介绍

This is a turn index sidebar plugin built exclusively for the web GUI of DeepSeek Harness. It lives on the right side of the chat interface and generates a sequential list of every user turn in the current conversation. Clicking any entry in the index smoothly scrolls the main chat flow to the selected turn, which flashes for 1.6 seconds to help you quickly locate your target. The index automatically highlights the current turn as you scroll through the chat history, and you can install it via a single DSH CLI command before a quick restart of the dsh web process.

It is designed for users who often work with long chat sessions and need to quickly jump back to previous questions. The typical workflow is straightforward: after installation, you just open any existing long conversation, and the sidebar will automatically generate the turn index for you. For conversations with unloaded older history, you can click the “Load earlier turns” button at the top of the sidebar to load more pages incrementally. If you click an index entry while in the trajectory view, the plugin will automatically prompt you and switch you back to the conversation view.

The plugin is released under the open source MIT license, and it only reads the current conversation snapshot from the DSH host without any extra Node.js runtime logic on the host side. It does not make any outbound network requests, collect user data, or include third-party tracking scripts. The only data it stores locally is UI preference data saved to the browser’s localStorage, which is harmless even after uninstallation. The plugin is currently verified to work with DSH version 0.1.0-rc.6, and may require minor adaptation if DSH core changes its DOM contract in a future major release.

这是专为 DeepSeek Harness 网页版 GUI 开发的原生侧边栏插件,作用是为对话会话生成用户轮次索引。它会按顺序列出每一轮用户提问,支持点击任意轮次平滑滚动到对应位置并闪烁高亮,滚动阅读时也会同步高亮当前轮次。你可以通过 DSH CLI 执行 dsh plugin --profile web add dsh-turn-index 完成安装,安装后重启 dsh web 刷新页面即可使用。

该插件适合需要在长对话会话中快速定位历史提问的用户,典型使用流程是安装后打开已有长对话,即可在右侧看到自动生成的轮次索引。遇到需要找回的历史提问,直接点击对应条目就能跳转;未加载完的历史可以点击「加载更早的轮次」逐页加载,切换到轨迹视图时点击索引会自动提示并切回对话视图。

该插件遵循 MIT 许可证开源,仅依赖 DSH web 宿主的标准客户端服务,不包含额外 Node 侧运行逻辑,也不会发起网络请求或收集用户数据。唯一持久化数据是存在浏览器 localStorage 中的 UI 偏好,卸载后也仅留无害残留。当前兼容 DSH 0.1.0-rc.6 版本,未来大版本更新可能需要适配 DOM 契约变更。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 1 warning1 项注意
  • Only 2 stars - very few users, little community feedback星标只有 2,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项

Compatibility兼容性

  • DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
  • External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
  • Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册

Security安全性

  • Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
  • Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
  • curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
  • Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
  • Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
  • Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式

Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile web add dsh-turn-index

把 Simon314620/dsh-turn-index 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dsh-turn-index

对话轮次索引:在 DeepSeek Harness Web GUI 右侧挂一条侧边栏,按顺序列出每一轮「你问过的话」。点击任意一条,聊天流平滑滚动到那一轮并闪烁高亮;滚动阅读时侧边栏同步高亮当前轮次。

A turn-index sidebar for the DeepSeek Harness web GUI: one entry per user turn, click to jump, scroll-spy keeps the current turn highlighted.

┌──────────────────────────────┬───────┐
│  聊天流                       │ 轮次 2│
│                              │ ─────│
│  ▸ #1 帮我查一下……(点击跳转) │  #1   │
│                              │  #2 ▸ │
└──────────────────────────────┴───────┘

功能

  • 逐轮索引:每条索引 = 一轮用户提问的开场消息;轮次内穿插的补充提问(steering)以 ↳ 缩进显示,不打断轮次编号。
  • 点击跳转:直接定位聊天流里对应的消息行,平滑滚动 + 1.6 秒闪烁高亮(尊重系统的减少动效偏好)。
  • 阅读联动:滚动阅读时索引自动高亮当前轮次,展开态的列表自动跟随,当前轮次始终可见。
  • 历史分页:会话历史窗口未加载完时,顶部出现「加载更早的轮次」,点一下继续向前加载。
  • 轨迹视图兜底:停留在轨迹视图时点击索引,给出提示并一键切回对话。
  • 避让右侧详情面板:工具详情(details)打开时索引栏自动左移避让。
  • 响应式:视口 ≤1024px 自动收成 44px 窄条(只留轮次圆点);1280px 以下面板收窄;面板高度贴合聊天流区域(不遮 Session log、不压输入框);偏好记忆在 localStorage。
  • 双语文案:通过 harness 的 locale 服务提供 中文 / English 文案,跟随界面语言。

Compatibility

项 值
支持版本 DSH 0.1.0-rc.6(web profile,mainline)
最后验证 2026-08-14 · Windows 11 · Node 24 · pnpm 11
依赖 宿主标准 web bundle(slots / sessions / locale 客户端服务 + shell.overlay 槽位);react 为可选 peer

安装

# npm(推荐,已发布 v0.1.1)
dsh plugin --profile web add dsh-turn-index

# GitHub tag tarball
dsh plugin --profile web add https://github.com/Simon314620/dsh-turn-index/archive/refs/tags/v0.1.1.tar.gz

# 本地目录(开发调试)
dsh plugin --profile web add file:D:/path/to/dsh-turn-index

安装后重启 dsh web,刷新页面即可在右侧看到索引栏。默认的 dsh web profile 已具备全部所需服务。

卸载

dsh plugin --profile web remove dsh-turn-index

移除后重启 dsh web 并硬刷新(Ctrl+Shift+R)。回滚方式同上:卸载后重装旧版本即可(如 dsh plugin --profile web add dsh-turn-index@<旧版>)。浏览器侧偏好(折叠状态等)仅存于 localStorage,卸载后是无害残留,可在开发者工具中清除。

实现原理

纯客户端插件:宿主侧(Node)无运行时逻辑,浏览器半边通过 shell.overlay 槽位(AppFrame 的加性浮层席位)挂载面板。会话数据取自 ctx.sessions.binding(currentId).session(ConversationSnapshot 的可观察快照),索引条目从 chat.order 中筛出 kind 为 user / steering 的可见节点;跳转时按节点 key 查找聊天流里带 data-chat-anchor-key 属性的 DOM 行(聊天流无虚拟化,行都在 DOM 里),因此跳转天然可靠。面板几何(上下界、details 避让)动态测量 [data-conversation-scroll]、[data-composer-seat] 与 AppFrame 的 grid 第三轨。

配置

无配置项。开箱即用;面板偏好(收起状态、窄条模式)仅存于浏览器 localStorage。

权限与数据

  • 宿主侧(Node)零运行时逻辑:不读写文件系统、不发起网络请求、不访问凭据。
  • 会话数据只读:仅订阅当前会话的可观察快照(ctx.sessions.binding(currentId).session)用于渲染轮次索引,不上传、不外发。
  • 浏览器持久化:唯一落盘数据是 localStorage 中的 UI 偏好。
  • 无遥测、无埋点、无第三方脚本。

开发

pnpm add -D jsdom     # 测试依赖
node tests/edge.mjs   # 24 项边界单测(120 轮渲染、跳转命中/未命中、响应式、空态等)
node smoke.mjs        # 装配冒烟测试

已知限制

  • 面板悬浮在聊天区右侧:宽屏下覆盖的是消息流的空白区,窄窗口下请用头部按钮收起(自动窄条在 ≤1024px 生效)。
  • 跳转依赖 harness 聊天流的 DOM 契约(data-chat-anchor-key / data-conversation-scroll 等);harness 大版本升级若改动这些属性需要适配。
  • 索引只覆盖当前已加载的历史窗口,更早的轮次通过「加载更早」逐页加载。

License

MIT

安全问题请通过 GitHub Issues 联系维护者私下报告,避免公开披露。

← 上一个 Prev dsh-reasoning-translator 下一个 Next dsh-xhs-collector →