用方向键翻查已发送内容并恢复未发送草稿
28.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/6 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add HandsYe/dsh-input-history该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
装得上吗[实装验证]—
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →数据截至 2026/10/06·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 方向键切换历史记录
- 恢复未发送草稿
- 本地持久化存储
为 DSH 提供持久化输入历史,可用上下方向键切换历史记录,恢复未发送草稿,自动去重并保存到本地。
README
由 DeepSeek 最新模型翻译生成dsh-input-history
为 DeepSeek Harness 的对话框提供持久化输入历史:发送过的内容会保存下来,用 ↑ / ↓ 随时回溯,重启应用也不丢。
功能
- 发送过的内容保存到本地存储,重启后仍在
- 输入框为空时按 ↑ 回溯更早的记录
- 按 ↓ 回到更新的记录,走到末尾时恢复未被改动的草稿
- 连续按 ↑ / ↓ 可以一直回溯,不需要每次重新把光标移到开头
- 手工修改回溯出来的内容后,方向键立即交还给编辑器(不再拦截)
- 自动忽略空白内容;重复内容只保留最新的一条;最多保留 200 条
- 输入法组合输入期间不拦截按键
- 不拦截带 Shift、Ctrl、Alt、Meta 修饰键的方向键
- 斜杠命令、@ 引用等弹窗打开时,方向键仍归弹窗使用
工作原理
Harness 的输入框是 Lexical 驱动的 contenteditable,不是 。
展开完整文档(README 剩余 1 节)
dsh-input-history
为 DeepSeek Harness 的对话框提供持久化输入历史:发送过的内容会保存下来,用 ↑ / ↓ 随时回溯,重启应用也不丢。
功能
- 发送过的内容保存到本地存储,重启后仍在
- 输入框为空时按 ↑ 回溯更早的记录
- 按 ↓ 回到更新的记录,走到末尾时恢复未被改动的草稿
- 连续按 ↑ / ↓ 可以一直回溯,不需要每次重新把光标移到开头
- 手工修改回溯出来的内容后,方向键立即交还给编辑器(不再拦截)
- 自动忽略空白内容;重复内容只保留最新的一条;最多保留 200 条
- 输入法组合输入期间不拦截按键
- 不拦截带 Shift、Ctrl、Alt、Meta 修饰键的方向键
- 斜杠命令、@ 引用等弹窗打开时,方向键仍归弹窗使用
工作原理
Harness 的输入框是 Lexical 驱动的 contenteditable,不是 。因此本插件不做 DOM 文本替换,而是接入 Harness 自身的接口:
| 用途 | 接口 |
| 读取当前草稿 | 会话输入 shell 的 snapshot.draft |
| 写入草稿 | shell 的 setDraft(text)(官方 programmatic write,会把光标置于末尾) |
| 跟踪输入框元素 | shell.editor.registerRootListener(...) |
| 让出弹窗按键 | shell.arbitrate(key, composing),只有返回 "pass" 时才处理 |
| 挂载会话桥梁 | conversation.input.left / conversation.input.right(list 类型、按会话作用域) |
按键监听装在 document 的捕获阶段,因此先于编辑器自身的键位处理运行;命中时调用 stopPropagation(),避免光标同时移动。
历史记录在输入框被清空时写入 —— 发送按钮、回车、排队插话都会清空草稿,这是各条发送路径共用的信号。
兼容性
| 项目 | 值 |
| 开发环境 | DSH Desktop 2.0.13(Windows) |
| 客户端核心 | @deepseek-ai/dsh@0.1.5-rc.2 |
| 客户端界面 | @deepseek-ai/dsh-client-ui-conversation@0.1.5-rc.2 |
| 平台 | web(桌面端与网页端共用同一套客户端) |
| Node | >= 22 |
插件依赖上表列出的输入框接口(conversation.input、setDraft、registerRootListener、arbitrate)。较旧的 Harness 构建如果没有这些接口,插件会静默不生效而不会报错。
安装
1. 把插件挂到 profile
编辑 %USERPROFILE%\.dsh\profiles\<profile>\package.json,分两处:
{
"dependencies": {
"dsh-input-history": "link:/absolute/path/to/dsh-input-history"
},
"dsh": {
"profile": {
"bundles": [
"dsh-input-history"
]
}
}
}
2. 安装依赖
cd "$env:USERPROFILE\.dsh\profiles\desktop"
把 <DSH 安装目录> 换成你自己的安装位置
node "<DSH 安装目录>\resources\app\node_modules\pnpm\bin\pnpm.cjs" install
桌面端自带的 pnpm 就在安装目录下的 resources\app\node_modules\pnpm\bin\pnpm.cjs。
3. 重启 DSH Desktop
用 link: 而不是 file:
这一点很关键:
| 协议 | 行为 | 改源码后 |
| file: | pnpm 复制一份到 node_modules | 需要重新 install,否则改动不生效 |
| link: | 创建 Junction 指向源码目录 | 直接生效,重启即可 |
用 file: 时,node_modules/dsh-input-history 是一个真实目录副本。改了源码却没重新安装,应用加载的仍然是旧代码 —— 表现为「改了半天没反应」。
不要用 npm 安装
DSH Desktop 的 profile 由 pnpm 管理(nodeLinker: hoisted)。用 npm install 会按 npm 的规则重写 node_modules 目录结构,删除其它插件依赖的共享包,导致重启报错。
请始终使用桌面端自带的 pnpm(路径见上方第 2 步)。
作为发布包安装
npm pack
生成的 .tgz 可以分发给其他人。注意包内是快照,不是实时链接。
使用
1. 在会话输入框输入内容并发送。
2. 把光标放回输入框。
3. 按 ↑ 依次回溯更早的内容。
4. 按 ↓ 回到更新的内容。
5. 走到末尾后再按 ↓,会恢复回溯前尚未发送的草稿。
数据存储
历史记录仅保存在当前应用 WebView 的本地存储中:
dsh-input-history:v1
不会上传到网络,也不需要任何服务端能力(lib/index.js 是空的运行时入口)。清除站点数据会一并删除历史记录。
故障排查
方向键完全没反应 先确认 profile 里加载的是新代码,而不是 file: 留下的旧副本:
$t = "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dsh-input-history"
Get-Item $t -Force | Select-Object LinkType, Target
Select-String -LiteralPath "$t\lib\client.js" -Pattern 'registerRootListener'
- LinkType 应为 Junction,且 Target 指向你的源码目录;为空说明是副本
- registerRootListener 应有命中;找不到说明加载的是旧版本
↑ 能回溯但第二次按没反应
确认版本 >= 0.2.0。0.1.0 针对 编写,在 Lexical 输入框上永远不会触发。
重启报错
检查是否误用 npm 安装过。正常状态下这些应成立:
cd "$env:USERPROFILE\.dsh\profiles\desktop"
Test-Path package-lock.json # 期望 False Test-Path node_modules\.package-lock.json # 期望 False
如果存在,删除后重新用 pnpm 安装。
开发
npm test
测试覆盖三层:
1. 历史存储与回溯决策 —— 纯函数,无需浏览器
2. 光标边界探测 —— 使用 Range 替身(证明探测算术,不代表真实浏览器 Range 行为)
3. 完整按键链路 —— 从桥接挂载、registerRootListener、keydown 到 setDraft,通过插件真实安装在 document 上的监听器驱动
实现位于 lib/client.js,全部行为都在网页客户端侧。
许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
HandsYe/dsh-input-history
用方向键翻查已发送内容并恢复未发送草稿
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,269已汉化DSH
70.8
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。