DeepSeek Harness 插件:输入历史回填与会话彻底删除

前言

DeepSeek Harness (DSH) 采用插件化架构,但在会话管理和消息回溯方面,现有功能往往停留在基础层面。例如,快速找回上一条发送的消息、在工作区左侧列表中彻底删除不再需要的会话记录,通常需要额外的操作或依赖不完善的归档机制。

heeweelee/dsh-session-plugin 旨在解决这两个具体痛点:通过键盘快捷键在输入框回填历史消息,以及通过右键菜单提供文件级的会话彻底删除能力。该插件由 Heeweelee 维护,开源协议为 MIT,适合需要在本地持久化会话数据并精细化管理的开发者使用。

核心功能

输入框历史回填

插件会在输入框聚焦时监听键盘事件,支持快速回填和切换已发送的消息。

  1. 基础回填:在输入框聚焦时按 ↑ 键,会回填上一条你发过的消息。继续按 ↑/↓ 可以在历史记录中上下切换。
  2. 草稿处理:如果输入框中有草稿,按 ↑ 会先暂存草稿,然后回填上一条历史消息;按 ↓ 走到底后恢复进入回填前的草稿内容(无草稿则清空输入框)。
  3. 历史列表与搜索:在会话标题栏的“↑ 历史 N”按钮旁点击 ▾,可以打开可搜索的历史列表。点击列表中的条目即可回填,点击条目右侧的 × 可以隐藏该条目(仅隐藏回填提示,不改变会话记录)。

会话右键彻底删除

DSH 官方通常只提供归档(隐藏)接口,而本插件提供了文件级的删除能力。

  1. 触发方式:在工作区左侧的会话列表中,右键点击某个会话,选择“删除该会话…”。
  2. 执行逻辑:二次确认后,插件会永久删除该会话的本地日志文件(session.jsonl 或 session.jsonl.zstd 及其空父目录),并从工作区列表中彻底移除该行(0.1.9 版本起不再留下可点击的幽灵行)。
  3. 状态检查:如果会话正在生成中(agent.status === 'running')或存在未完结的后台任务,删除操作会被拒绝(返回 409 错误)。此时无需切换会话,等待当前任务完成后即可再次尝试删除。
  4. 注意事项:删除是永久性的,不可恢复。如果删除的是当前正在查看的会话,请务必在确认后切换到其他会话,否则继续发送消息会重建该会话的记录。

安装与启用

使用官方 CLI 安装指定版本:

dsh plugin add @heeweelee/dsh-session-plugin@0.1.11

或在 DSH Desktop 的 设置 > 插件 市场中搜索安装。安装后必须重启 DSH 使插件生效。

配置

插件支持通过配置文件调整行为。在 DSH 的主目录(默认 ~/.dsh)下创建 dsh-session-plugin.json 文件:

{ "historyLimit": 100, "maxCharsPerEntry": 4000, "disableDiskCache": false }

配置项说明:

  • historyLimit(默认 100,上限 10000):每会话保留最近 N 条用户消息。修改后需重启 DSH 生效。调大后旧缓存会被视为过期并自动重读补满窗口。
  • maxCharsPerEntry(默认 4000,上限 20000):单条回填文本的截断长度,防止超大粘贴撑爆内存或磁盘。超长文本会在末尾添加“…(已截断)”。
  • disableDiskCache(默认 false):设为 true 则不写磁盘缓存(仅内存 1s TTL),适合不希望明文落盘的机器。开启后启动时会自动删除旧缓存文件。

技术实现与安全

API 接口

插件通过 Host 提供三个同源、无鉴权的进程内接口:

  • GET /api/dsh-session-plugin/history?sessionId=:只读获取指定会话的用户消息文本历史。
  • GET /api/dsh-session-plugin/sessions:只读获取会话列表({id, title})。
  • POST /api/dsh-session-plugin/delete:彻底删除本地会话记录(不可恢复)。

安全与权限

  • 防 CSRF:删除路由要求请求携带自定义头 x-dsh-csrf: 1,且 Origin 为空或与本机同源,以防止跨站页面发起简单 POST 请求导致误删。
  • 文件校验:删除前会对文件路径进行严格校验,仅允许删除符合会话产物形态(session.jsonl 或 session.jsonl.zstd)的文件,防止误删系统文件。
  • 本地权限:插件以本地用户权限运行,没有运行期 npm 依赖。

依赖与环境

  • DSH 版本:依赖 DSH 运行时 >=0.1.0-rc.7。
  • Node 版本:需要 Node.js 版本 ^22.19.0 || >=24(与 DSH Desktop 内置运行时一致)。
  • 兼容性:插件支持 DSH 2.0.4 引入的 Lexical 编辑器形态以及旧版的 <textarea> 形态,输入框回填功能在两种形态下均可正常工作。

结语

heeweelee/dsh-session-plugin 通过提供精细化的输入历史管理和文件级会话删除能力,增强了 DSH 的本地数据控制力。对于需要频繁清理历史记录或需要严格管理本地会话日志的开发者,该插件是一个实用的工具。

  • 插件目录页:https://www.skillhub.cn/plugins/Heeweelee/dsh-session-plugin
  • GitHub 仓库:https://github.com/Heeweelee/dsh-session-plugin
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜