🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

VioletScar-Hui/dsh-chat-history

DeepSeek Harnessspec-screened扫描:中风险在 GitHub 查看 ↗
⚠ 装前注意

给 DSH 聊天输入框加上 CLI 风格历史记忆:上下键召回之前发送过的内容纯客户端插件,重启不丢

基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/2 · 已提供中文文档

给 DSH 聊天输入框加上 CLI 风格历史记忆:上下键召回之前发送过的内容(纯客户端插件,重启不丢)

综合分
28.9
GitHub 分
28.9
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add VioletScar-Hui/dsh-chat-history
未发布到 npm registry,仅可从源码安装,改用 GitHub 源安装
信任档位:仅索引本站尚未对其实装验证,仅收录元数据
是什么
dsh 原生插件 · chat
装得上吗
静态安装检查有提示项,装前建议看一眼 README
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 23 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包@violet/dsh-chat-history(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

未发布到 npm registry,仅可从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/24 00:04:33

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-chat-history

给 DeepSeek Harness (DSH) 聊天输入框加上 CLI 风格的历史记忆:在输入框里按 ↑ 召回上一条发过的内容、按 ↓ 前进或还原草稿,就像在 shell 里翻历史命令一样。

license
version
dsh-plugin
build

纯客户端插件(无宿主副作用),装上之后重启不丢。

使用示意

dsh-chat-history 使用示意

插件本身没有可见按钮(组件只挂副作用、返回 null),所以这是一张「使用示意」图:左侧正常输入发送,右侧光标停在行首按 ↑ 逐条召回历史、按 ↓ 前进或还原草稿。

✨ 特性

- 上下键历史召回 —— ↑ 回到更早的消息,↓ 回到更新的消息,翻到最新再按 ↓ 还原你正在编辑的草稿
- 启动即预填 —— 打开会话时自动把当前会话里你之前发过的消息载入历史,马上就能翻
- 新消息自动记入 —— 发送后自动追加到历史,连续重复去重、上限 200 条
- 不打扰输入 —— 光标不在行首时不抢 ↑/↓(不影响编辑中文本);输入法合成、斜杠命令菜单里也不触发
- 纯内存 —— 不写磁盘、每会话独立,重启宿主后从会话历史重新预填
- 消息定位 —— 会话头部点 定位,左侧浮出面板按会话顺序列出你发过的所有消息,点任意一条直接滚到它在会话里的位置(短暂高亮)

📦 安装

dsh plugin --profile web add github:VioletScar-Hui/dsh-chat-history

装完刷新页面即可(浏览器刷新生效,无需重启宿主)。发布到插件市场后,也可直接在侧边栏「插件市场」里搜索安装。

🚀 使用

1. 打开任意会话,点击聊天输入框。
2. 光标在行首时按 ↑:召回你上一条发过的消息;继续按 ↑ 往前翻。
3. 按 ↓:往后翻;翻到最新时再按 ↓,还原成你本来在编辑的草稿。
4. 直接改文字即可退出浏览状态,正常发送。

消息定位:点击会话头部右上区域的 定位 按钮 → 左侧浮出面板列出本会话发送过的消息 → 点任意一条跳转到对应位置(Esc 或点击外部关闭)。

🔧 实现

- 注册 conversation.input.left(list 槽,工具行内,additive),组件返回 null 只挂副作用,绝不做 DOM hack。
- 键盘监听在 document 捕获阶段,只认 textarea[data-phase](composer 文本域唯一稳定属性)。
- 历史来源:ConversationSnapshot.nodes 里 kind === 'user' 节点;发送检测靠 InputState.phase 的 submitting → plain 迁移。
- 纯逻辑(trim、连续去重、上限 200、提取用户文本)抽在 src/client/history.js,附单测。
- 消息定位注册 conversation.session.header.actions(list 槽),用 useSession 读 chat.order / chat.nodes,DOM 定位走 [data-conversation-scroll] + data-chat-anchor-key;面板为 position:fixed 悬浮层,不动会话 DOM。

更详细的架构说明见 docs/architecture.md。

❓ FAQ

为什么看不到任何按钮?
历史召回是纯键盘交互,输入框左侧不新增 UI 元素——这正是「不打扰输入」的设计:功能就在 ↑/↓ 上,没有可见入口。

历史存在哪里?会不会跨会话串?
历史只保存在浏览器内存里,每个会话独立 seed。切换会话会重新从当前会话的历史消息预填,不会串。

重启宿主的会丢吗?
不会。宿主重启后浏览器重新加载插件,会再次从当前会话已发送的消息里预填历史。唯一「丢」的是你尚未发送的草稿,那本就不属于历史。

为什么按 ↑ 没反应?
只有光标在行首(selectionStart === 0)时才触发;输入法合成中、斜杠命令菜单打开时也不会触发。先点一下输入框开头再按 ↑。

🤝 Contributing

bun install        # 仅需 bun 作为构建/测试工具,无运行时依赖
bun test           # 单测
bun scripts/build.js  # 重新生成 lib/

改动 src/ 后记得跑一次构建,lib/ 是提交的预构建产物(安装端免 bun、免构建)。

📄 License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(VioletScar-Hui)的其他插件

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群