dsh-session-input-history: 会话隔离的输入历史导航插件

在 DeepSeek Harness (DSH) 的使用场景中,开发者经常需要在不同的对话会话间切换,或者快速重用之前的输入。如果依赖全局的历史记录,切换会话时旧的输入内容往往会干扰当前会话,导致输入污染。dsh-session-input-history 解决了这一问题。

这是一个由 czhzz 维护的纯客户端插件,旨在为当前会话提供 Shell 风格的输入历史导航能力。

核心功能

该插件主要提供以下能力:

  • 会话隔离的输入历史导航:历史记录严格限定在当前会话内,不受其他会话或工作区输入污染。切换会话后,历史记录自动重置为新会话的内容。
  • Shell 历史式交互:在对话输入框中,使用 ↑ 和 ↓ 方向键即可遍历当前会话发送过的消息。
  • 纯客户端实现:无后端交互,无 UI 常驻组件。
  • 不落盘存储:历史数据仅存在于内存中,关闭页面即清空。

安装与配置

安装该插件需要通过 DSH 的命令行工具执行。

dsh plugin --profile web add dsh-session-input-history

安装完成后,插件会自动挂载到输入框左侧的插槽 conversation.input.left,并依赖 @deepseek-ai/dsh-client-ui-conversation 组件。

交互方式

插件接管方向键的逻辑如下:

  • ↑(上箭头):在草稿为空时,载入最新的一条历史消息。再次按下则继续向前(更旧)。
  • ↓(下箭头):在浏览历史时向后翻页。当浏览到最新一条消息后再次按下,将清空输入框并退出浏览状态。
  • 编辑与发送:在浏览历史的过程中,可以直接编辑当前消息内容,或直接发送当前载入的消息。发送或编辑操作会立即退出浏览状态。

技术实现与注意事项

  • 依赖关系:插件依赖 @deepseek-ai/dsh-client-ui-conversation,需确保该依赖已正确安装。
  • 键盘事件:插件仅在输入框获得焦点时接管方向键,且不处理任何组合键(如 Ctrl、Alt、Shift 等),保证编辑器的原生功能不受影响。
  • 实现架构:插件分为 Host 侧(空 apply,无额外行为)和 Client 侧。Client 侧包含一个纯逻辑的历史提取模块和一个状态机,负责处理键盘输入与输入框草稿的读写。
  • 卸载:如需移除,可执行:
dsh plugin --profile web remove dsh-session-input-history

结语

dsh-session-input-history 提供了一种轻量级、无状态的方式来管理 DSH 中的输入历史,特别适合需要频繁切换会话的开发者。通过命令行即可完成安装,无需额外的配置文件。

羽毛球分组比赛记分
小程序二维码

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

小夜