🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

输入历史 liumorrisclaw/dsh-composer-input-history

DeepSeek Harness
liumorrisclaw27 天前有提交已提供中文文档扫描:未发现敏感能力

用上下方向键翻回本会话已发消息与草稿

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/9 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add liumorrisclaw/dsh-composer-input-history
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
数据截至 2026/11/04·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 27 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
  • 发起网络请求
    client.js:562
    fetch('http://127.0.0.1:19399/ih', {
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 上下键翻查已发消息
  • 恢复输入草稿

给 DeepSeek Harness 网页输入框加上 Shell 风格的输入历史:按 ArrowUp 调出会话里已发送的消息,按 ArrowDown 恢复你的草稿。

README

由 DeepSeek 最新模型翻译生成
dsh-composer-input-history(输入历史) 给 DeepSeek Harness Web 输入框加上终端式的历史输入——就是 opencode 里那种手感。 在输入框按 ↑,把本会话里已经发出去的消息调回来;按 ↓ 向后翻,翻过最新一条之后,你原来正在写的草稿会恢复。 行为 | 操作 | 结果 | | 草稿为空时按 ↑ | 调出最新一条已发送消息 | | 再按 ↑ | 每次向前翻一条 | | 单行草稿(或光标在首行)按 ↑ | 调出历史,并记住你原来的草稿 | | 多行草稿且光标不在首行时按 ↑ | 交给编辑器,光标照常上移 | | 浏览历史时按 ↓ | 向后翻一条 | | 翻过最新一条后再按 ↓ | 恢复浏览前的草稿 | | 浏览历史时手动输入 | 退出浏览,输入内容成为新草稿 | 历史就是本会话自己的消息,从旧到新。它直接取自 Chat 视图渲染用的节点存储(snapshot.nodes,按 anchor 序号排序):普通用户消息、中途引导(steer)消息、以及唤醒一轮的那条消息。被隐藏的节点(压缩或中断)、纯附件消息、以及注入的上下文(指令、技能、目录)都会被跳过。 为什么用键盘观察器 Harness 的 composer 明确把 ↑/↓ 留给它自己持有的 Lexical 编辑器,没有 slot 或命令 seam 接管这对按键。
展开完整文档(README 剩余 1 节)
dsh-composer-input-history(输入历史)

给 DeepSeek Harness Web 输入框加上终端式的历史输入——就是 opencode 里那种手感。

在输入框按 ↑,把本会话里已经发出去的消息调回来;按 ↓ 向后翻,翻过最新一条之后,你原来正在写的草稿会恢复。

行为

| 操作 | 结果 |
| 草稿为空时按 ↑ | 调出最新一条已发送消息 |
| 再按 ↑ | 每次向前翻一条 |
| 单行草稿(或光标在首行)按 ↑ | 调出历史,并记住你原来的草稿 |
| 多行草稿且光标不在首行时按 ↑ | 交给编辑器,光标照常上移 |
| 浏览历史时按 ↓ | 向后翻一条 |
| 翻过最新一条后再按 ↓ | 恢复浏览前的草稿 |
| 浏览历史时手动输入 | 退出浏览,输入内容成为新草稿 |

历史就是本会话自己的消息,从旧到新。它直接取自 Chat 视图渲染用的节点存储(snapshot.nodes,按 anchor 序号排序):普通用户消息、中途引导(steer)消息、以及唤醒一轮的那条消息。被隐藏的节点(压缩或中断)、纯附件消息、以及注入的上下文(指令、技能、目录)都会被跳过。

为什么用键盘观察器

Harness 的 composer 明确把 ↑/↓ 留给它自己持有的 Lexical 编辑器,没有 slot 或命令 seam 接管这对按键。因此本插件:

- 在 conversation.composer.dock 注册一个不可见的 Session 级占位组件;
- 用标准 useChat 钩子读取本会话的 Chat 节点(snapshot.nodes),用标准 useInput 钩子读取草稿;
- 用标准 inputActions.setDraft 写回,使这次替换仍属于 composer 自己的草稿历史;
- 用两条通道盯住按键:document 级 keydown 监听,以及 shortcuts 服务的 observeFixedInput seam。document 监听在 composer 自己的 keymap 之后运行,所以已打开斜杠菜单或输入法先处理过的按键仍然让行;observeFixedInput 则覆盖 Desktop 原生键盘适配器接管 DOM 输入的组合。因为先处理的一方会取消事件,所以实际只有一条通道生效。

以下情况一律放行:斜杠/引用菜单已消费该按键、输入法正在组合、按住了修饰键、事件不在 composer 编辑器内、composer 正在提交或裁决。插件不 import 任何 Harness 客户端包,也不做任何样式。

安装

从仓库直接安装(现在即可用):

dsh plugin --profile web add https://github.com/liumorrisclaw/dsh-composer-input-history

发布到 npm 之后可以用短名:

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

也可以在 Web 界面的 Plugins 页安装,或用插件管理器直接选择本地包目录。默认关闭,需要由 profile 选中后启用。

本地 checkout 可按路径安装:

dsh plugin --profile web add /绝对/路径/dsh-composer-input-history

与已有插件的关系

npm 上的 dsh-input-history 已被另一个社区插件占用,它同样用 ↑/↓ 调回提示词。两者的机制和行为不同:

| | dsh-composer-input-history(本插件) | dsh-input-history |
| 历史来源 | Chat 界面已经加载的本会话 transcript | 单独在本地保存已提交提示词 |
| 非空草稿 | 可调回,并记住原草稿,翻过最新一条后恢复 | 仅在空输入框时调回 |
| 附件 | 不随调回的文本恢复 | 会保存并重新附上 |
| 菜单/输入法 | 让开已打开的斜杠/引用菜单与输入法组合 | — |

如果你希望历史来自你眼前这段会话、并且从正在输入的草稿里也能调回,就选本插件。

兼容性

针对 @deepseek-ai/dsh 0.2.0-rc.2 开发并验证。只使用有文档的 seam:ctx.slots、Session 标准 props(useChat、useInput、inputActions)与 ctx.shortcuts.observeFixedInput。dsh.client.inject 声明了 dsh-client-ui-conversation、dsh-client-ui-chat、dsh-client-shortcuts,保证激活顺序确定。

已验证

- 26 项单测覆盖纯历史读取与浏览状态机(npm test),并由 .github/workflows/ci.yml 在每次 push 时于 Node 20 与 22 上运行。
- 组合后的 profile 含该 bundle row(dsh --profile <name> --dump-config)。
- 浏览器启动图带 inject 列表与 immediately: true 公告该 bundle,Web 宿主按字节原样提供 bundle。

尚未用自动化浏览器验证:页面内的实际交互。在运行中的 composer 里按 ↑ 就是验收动作。

限制

- 历史按 Session 隔离,暂不支持跨会话调取"最近会话"的输入。
- 历史取自当前已加载的 transcript 窗口;被压缩隐藏的消息不会被调出。
- 调回的是纯文本:原消息里的引用 chip 与附件不会恢复。
- 假定每个 Web 页面只有一个常驻 composer,与宿主自身的实现一致。

许可

MIT
预览分享卡片长什么样 ↓liumorrisclaw/dsh-composer-input-history
分享 · DeepSeek Harness Hub
liumorrisclaw/dsh-composer-input-history

用上下方向键翻回本会话已发消息与草稿

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部