sunyuhuirong/shl-session-history 预览 preview

sunyuhuirong/shl-session-history

插件Plugin 原生Native ⭐ 3 Web 界面Web UI

DeepSeek Harness plugin: conversation history request rail (ZCode-style) - 会话历史请求迷你滑轨

项目介绍Project Overview

shl-session-history 是一款 DSH 插件,为 DeepSeek Harness 对话区左侧添加垂直迷你历史滑轨,每条短横线或圆点代表一次用户请求。核心能力是悬停弹出请求摘要、点击跳转到对应消息位置,并支持横线/圆点样式切换、尺寸微调、GitHub 一键更新。当目标轮次较旧时,插件会自动点击「加载更早」直至定位。注意事项:升级后需刷新页面(Cmd+R)使最新代码生效;滑轨与内容重叠时会自动隐藏,属于预期行为而非故障。

shl-session-history is a DSH plugin that adds a vertical mini-rail to the left side of the DeepSeek Harness conversation area, with each tick or dot representing a user request. Its core capability is hover-to-preview summaries, click-to-jump to the matching message, switchable line/dot styles, adjustable sizing, and a one-click GitHub update. When the target turn is older, it auto-clicks "Load earlier" until located. Caveat: after upgrading, refresh the page (Cmd+R) to load the new code; the rail auto-hides when overlapping content, which is expected behavior, not a bug.

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

命令行安装CLI Install

dsh plugin --profile web add github:sunyuhuirong/shl-session-history

sunyuhuirong/shl-session-history 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

shl-session-history

在 DeepSeek Harness 对话区左侧添加迷你历史滑轨:悬停显示摘要,点击跳转历史请求位置。

目录

功能

  • 左侧垂直居中的迷你滑轨,每条记录 = 一条短横线(或圆点)
  • 样式可切换:横线 ↔ 圆点(设置页「插件配置」卡片中修改),改完实时生效并本地持久化
  • 鼠标悬停:横线变长 + 以悬停处为轴心向两侧渐短渐淡(波浪渐变),弹出浮动窗口显示完整请求摘要
  • 点击跳转:滚动到对话中对应的用户消息位置;目标轮次未加载时自动点击「加载更早」直至定位
  • 高亮跟随悬停位置(非固定高亮当前消息)
  • 2 秒自动刷新,仅数据变化时重建 DOM(不打断悬停交互)
  • 仅显示真实用户请求(过滤系统注入消息)
  • 自动隐藏:滑轨与对话内容太近/重叠时自动隐藏,避免遮挡文字
  • 尺寸自助微调:间距 / 横线长度 / 圆点大小 / 悬停胶囊长度均可通过滑块调整
  • 更新入口:设置卡片自动检查 GitHub Releases,有新版本可一键拉取

截图

截图 说明
会话滑轨概览 侧边栏会话列表中滑轨以横线形式显示各历史请求,悬停变长并弹出摘要。
设置面板 插件配置卡片:开关 / 样式切换 / 间距与长度微调均在「设置 → 插件」页完成。
圆点模式 切换到圆点样式后,滑轨变为竖向圆点,大小随会话新旧渐淡;悬停时胶囊变长。

安装

在 DeepSeek Harness 桌面客户端中,打开「插件市场」选择「Browse folder / 安装本地文件夹」, 选择本仓库目录即可。

命令行方式:

dsh plugin --profile desktop add /path/to/shl-session-history

注意:本插件是 bundle 插件,@deepseek-ai/* peer 依赖由主应用运行时提供, 无需 npm install,请勿在插件目录手动重装依赖。

使用

安装完成后,设置页「插件 → 会话滑轨」卡片即出现。默认启用,滑轨会随会话内容同步出现。

  • 开启/关闭:拨动「启用滑轨」开关
  • 切换样式:点击「横线」或「圆点」按钮
  • 调整尺寸:拖动对应滑块,数值即时生效并持久化到本地
  • 跳转历史:点击滑轨任意条目,对话区滚动到对应请求位置

配置

所有配置项在设置页「插件配置 → 会话滑轨」卡片中完成:

选项 类型 默认值 说明
启用滑轨 开关 总开关,关闭后不渲染也不拉取历史
自动隐藏 开关 滑轨与内容重叠时自动隐藏
滑轨样式 单选 横线 横线 / 圆点两种样式
间距 滑块 6px 相邻条目之间的垂直间距(2–24px)
横线长度 滑块 8px 横线模式下的条目长度(4–28px)
圆点大小 滑块 6px 圆点模式下的直径(4–16px)
胶囊长度 滑块 18px 圆点模式悬停时的最大长度(8–48px)

常见问题

Q: 切换会话后间距/圆点大小设置失效?

A: v1.1.1 已修复。此前因内核重挂载机制导致新会话节点未继承尺寸变量,现已在挂载时立即写入。如仍复现,请确认已更新至 v1.1.1。

Q: 滑轨不显示或显示为默认尺寸?

A: 检查设置页「启用滑轨」是否开启;刷新页面(Cmd+R)让最新代码生效。

Q: 如何升级插件?

A: 设置页「会话滑轨」卡片底部有「检查更新」按钮,或运行:

dsh plugin --profile desktop update shl-session-history

架构

Host 端src/index.js):ShlService extends TypertRemoteService,注册三个远程方法 getHistory / navigateToTurn / getCurrentSession,数据源为 sessionQuery.readSession(), 同时注册 settings namespace shl-session-history 供设置卡片读取。

Client 端lib/client.js):__ModuleLoader__.load bundle 格式,通过 RPC 调用 Host, 纯 DOM 注入滑轨节点与悬浮窗,CSS 变量驱动尺寸(--shl-gap / --shl-dot / --shl-cap / --shl-bar)。 设置卡片通过 ctx.settingsScope 订阅 Host snapshot,变更时同步镜像到 localStorage。

文件结构

shl-session-history/
├── package.json           # bundle 元数据(dsh.bundle.patch + dsh.client)
├── cordis.patch.yml       # 注册行:- insert: - id / name
├── README.md
├── src/
│   └── index.js           # Host 端:TypertRemoteService + 手动 Remote 标记
├── lib/
│   └── client.js          # Client 端:__ModuleLoader__.load bundle 格式
└── docs/
    └── screenshots/       # 功能截图
        ├── 01-overview.png
        ├── 02-settings-panel.png
        └── 03-rail-dot-mode.png

版本历史

  • v1.1.2 — 修复设置卡片深色模式适配:选中按钮「白底白字」不可读、开关拇指反差丢失;改用内核配对 token(brand-primary + label-primary-foreground)随主题自动反转;修正错误提示色 token 名(state-error-primary
  • v1.1.1 — 修复切换会话后间距/圆点大小设置失效的 bug
  • v1.1.0 — 新增尺寸微调滑块、设置卡片版本号显示、一键更新入口
  • v1.0.0 — 初始版本,基础滑轨功能

参与贡献

欢迎提交 Issue 和 PR。开发前请先阅读 AGENTS.md 了解本仓库规范。

许可证

MIT

上一个 Prev dsh-industry-research 下一个 Next dsh-plugin-xquant