DeepSeek Harness 插件

dsh-plugin-edit-message

DSH web plugin: edit the last user message back into the composer after stopping a turn(英文原文)

跳到安装方式

来源信息

GitHub 仓库
WyxBUPT-22/dsh-plugin-edit-message
最近更新
2026年8月18日
分类
工具与能力
GitHub stars
1
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/WyxBUPT-22/dsh-plugin-edit-message
插件名:dsh-plugin-edit-message
作者:WyxBUPT-22

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.zh.md来源说明 · 只读预览
README 语言

dsh-plugin-edit-message

English · 中文

DSH(DeepSeek Harness)Web GUI 插件:智能体回复被中断后,一键把最后一条用户消息文本载回输入框,改完直接发送——不用再重新打一遍。

为什么做这个

发出一条消息、停止回复、想稍微改一下再重新问,目前只能把整段提示词重新打一遍。本插件在输入框工具行加了一个「编辑上一条消息」按钮:点击后把最后一条用户消息的文本原样载入输入框并聚焦,直接修改、发送即可。

它是纯客户端插件——会话日志保持只追加(append-only)。发送编辑后的文本会作为新的一轮追加(原消息和被中断的回复仍保留在记录里)。它完全不触碰 host、会话日志或 agent 循环。

安装

插件以 dsh.bundle + dsh.client 包形式发布,适用于任何能加载第三方 bundle 的 DSH 环境(源码 dsh web、DSH Desktop、自定义 profile)。

从 npm 安装(已发布,推荐)

dsh plugin --profile web add dsh-plugin-edit-message

装完后完全退出并重新打开 GUI——客户端插件 bundle 在启动时注册。

DSH Desktop 用户:Desktop 的 DSH_HOME 位于 %APPDATA%\dsh-desktop\harness,需显式指定:

DSH_HOME="${APPDATA}/dsh-desktop/harness" \
dsh plugin --profile web add dsh-plugin-edit-message

然后退出重开 DSH Desktop。

从 GitHub 或本地源码安装(未发布版本)

# GitHub 仓库
dsh plugin --profile web add git+https://github.com/WyxBUPT-22/dsh-plugin-edit-message.git

# 本地 checkout(先 pnpm install && pnpm run build)
dsh plugin --profile web add /path/to/dsh-plugin-edit-message

从源码构建安装

仓库完全自包含:devDependencies 从 npm 解析官方 harness 客户端包,不需要任何 deepseek-harness checkout。

pnpm install     # 从 npm 拉取官方客户端包
pnpm run build   # 产出 lib/index.js + lib/client.js + lib/types
dsh plugin --profile <profile名> add /path/to/dsh-plugin-edit-message
dsh --profile <profile名>

卸载:dsh plugin --profile <profile名> remove dsh-plugin-edit-messagedsh plugin 的完整用法参见官方 checkout 的 docs/user/develop/basic/publish.md

工作原理

  • 注册一个客户端插件(dsh.client manifest,platform: web),向官方 conversation.input.left(输入框工具行左侧,一个文档化的多插件 list 插槽)贡献一个条目——官方代码零改动
  • 按钮仅在以下条件同时成立时显示:会话空闲、存在最后一条用户/steering 消息、且该消息为纯文本(草稿图片是浏览器 File 引用,无法从持久化日志中复活,因此含图片的消息保持仅复制)。
  • 点击行为:inputActions.setDraft(text) 恢复文本并聚焦输入框。当部署的运行时暴露 inputActions.focus 时优先使用它,否则回退到 composer 文本框(GUI 中只有这一个)。
  • 卸载插件(dsh plugin remove dsh-plugin-edit-message)后,功能完全消失,工具行恢复官方原样。

与"原处替换编辑"(Codex 风格)的差异

在原处替换并截断日志尾部属于更大的设计(日志截断语义、压缩检查点、会话日志格式、双 SDK 投影),有意不在此范围。本插件提供交互价值——编辑文本、重新发送——且零副作用。

开发

pnpm run typecheck   # tsc --noEmit(strict)
pnpm run test        # vitest(逻辑矩阵 + 组件行为)
pnpm run build       # tsdown → lib/client.js + 类型声明

pnpm publish 会先自动执行 prepublishOnly(typecheck + test + build)。

License

MIT