HuanLinOTO/dsh-plugin-input-history

HuanLinOTO★ 0TypeScript最后同步: 2026-08-20

在 GitHub 打开

在 DSH prompt 输入框按上/下方向键切换最近发送过的消息(终端式历史导航),跨会话 localStorage 持久化。 | Terminal-style prompt history navigation for the DSH composer: ArrowUp/ArrowDown cycles through recently sent prompts, persisted across sessions.

README 摘要

dsh-plugin-input-history 终端式 prompt 历史导航:在 DSH 输入框按 ↑/↓ 切换最近发送过的消息。 在 DSH 的 prompt 输入框中按 ↑ 方向键,自动填入上一条已发送的 prompt;继续按 ↑ 向更旧的条目回溯,按 ↓ 向更新条目前进,按到最新条目之后再按 ↓ 恢复用户原本正在编辑的草稿。历史跨会话共享、持久化到 localStorage ,刷新浏览器后仍然保留。 功能 - ↑ / ↓ 切换历史 :在 DSH prompt 输入框(聊天页底部那个 textarea)按方向键,从最近一条 prompt 开始向旧回溯,或向新前进。 - 草稿保留 :切到历史预览后,按 ↓ 越过最新条目会自动恢复用户原本正在编辑的草稿——不会丢失在途文本。 - 跨会话全局持久化 :历史来自所有会话的 user + steering 消息,存到 localStorage (FIFO,500 条上限),刷新浏览器、新建会话、切换 workspace 都保留。 - 多行边界触发 :ArrowUp 仅在光标位于第一行任意位置时触发;ArrowDown 仅在最后一行任意位置时触发。多行编辑时方向键仍正常移动光标,不会被劫持。 - IME 安全 :中文/日文输入法候选词状态按方向键不会被劫持(遵循 DSH core InputBar 的 IME 守卫约定,issue 535)。 - 斜杠菜单兼容 :斜杠命令菜单打开时,方向键归菜单高亮导航使用,插件不动。 - 零源码 patch :纯插件,通过 conversation.composer.dock 隐藏条目挂载 document 级 keydown 监听器。不修改 DSH 源码任何文件。 架构 单 bundle 双入口(host . + 浏览器 ./client + invariant ./invariant ),仿照 dsh-spur / dsh-auto-blame 。 - 宿主半边 ( src/index.ts ):空 apply ——纯客户端插件。 - 浏览器半边 ( src/client/index.ts ): - 注册 conversation.composer.dock list slot(id dsh-plugin-input-history ,order 100)。dock 条目渲染一个 display: none 的不可见 anchor,仅负责 历史收集 (每次 render 读 session.nodes ,新 user/steering 文本 append 到 store)。 - 在 apply 里直接挂 document.addEventListener('keydown', ...) bubble-phase 监听器,负责 历史导航 。监听器放在 apply 而非 doc…

在 GitHub 查看完整 README →
终端/TUIdsh-pluginterminal

分类