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

StabCut/dsh-edit-regenerate

DeepSeek Harnessspec-screened扫描:低风险在 GitHub 查看 ↗
未验证

在对话历史中编辑用户输入:点击用户气泡下的「✎…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/19 · 已提供中文文档

DSH 插件:在对话历史中编辑用户消息,并在分叉会话中基于修改后的提示重新生成。

综合分
26.7
GitHub 分
26.7
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add StabCut/dsh-edit-regenerate
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:仅索引本站尚未对其实装验证,仅收录元数据
是什么
dsh 原生插件 · chat
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
更新放缓:最近一次提交在 37 天前

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

数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-typert-protocol
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-edit-regenerate

English · 简体中文

在对话历史中编辑用户输入:点击用户气泡下的「✎ 编辑」修改内容,确认「确定修订」后,系统删除该消息之后的所有内容,并以修订后的提示词重新生成。

演示

下面的截图展示了核心的「编辑并重新生成」流程:用户气泡上的「✎ 编辑」按钮(与官方「⧉ 复制」并排保留),以及以修订提示词重新生成的回复。

行为语义

- 非首条消息:在原会话的上一轮次结束处分支出一个新会话(sessions.fork + prompt + 打开),原会话保持不变;
- 首条消息:在同一工作区新建空白会话,以修订文本作为开场重新生成;
- 含图片等附件的消息修订后以纯文本重新发送(附件不保留,界面会提示);
- 用户气泡保留原有的复制操作:⧉ 复制 按钮与 ✎ 编辑 按钮并排共存(插件渲染器遮蔽了官方渲染器,因此自行实现了复制而不是丢弃它);
- 会话存储为 append-only 日志,不支持原地截断,分支即平台原生的「编辑并重新生成」。

架构

一个 DSH 插件包同时声明:

- dsh.bundle.patch —— 指向 cordis.patch.yml,作为 bundle 被 profile 组装;
- dsh.client —— 声明浏览器侧模块(./client),由 dsh-client-modules 注入 window.__DSH_BOOT__;
- main —— 主机侧入口 lib/index.js。

主机侧(Host,lib/index.js + lib/typert.host.js)

EditRegenerateService extends TypertRemoteService 注册 Cordis 服务 editRegenerate,通过 ./typert 的 TYPERT 清单由 @deepseek-ai/dsh-typert-loader 自动注册为可被客户端调用的 Remote:

- resolve(sessionId, seq) —— 读取会话事件日志,定位用户消息,计算前一个 turn/end 作为 fork 边界;首条消息则解析所属工作区。

浏览器侧(Client,lib/client.js)

- 挂载 TYPERT_REMOTE,把 remote.editRegenerate 装进运行时;
- 以 priority: -1 接管 conversation.chat.node 槽位的 user 键渲染器(官方 user 渲染器被遮蔽,steering 等其它键不受影响),渲染可编辑的用户气泡,并保留复制操作(⧉ 复制 与 ✎ 编辑 并排),不丢失任何官方功能。

安装(持久化)

插件按 profile 安装,先确定你用的是哪个版本:

| 版本 | Profile | Windows | macOS | Linux |
| --- | --- | --- | --- | --- |
| DSH Desktop 桌面版 | desktop | C:\Users\\.dsh\profiles\desktop | /Users//.dsh/profiles/desktop | /home//.dsh/profiles/desktop |
| 官方原版启动版(命令行 dsh web) | web | C:\Users\\.dsh\profiles\web | /Users//.dsh/profiles/web | /home//.dsh/profiles/web |

DSH Desktop 桌面版
dsh plugin --profile desktop add file:./dsh-plugin-edit-regenerate
官方原版启动版(命令行)
dsh plugin --profile web add file:./dsh-plugin-edit-regenerate

或手动安装:在对应 profile 的 package.json(如 Windows 的
C:\Users\\.dsh\profiles\desktop\package.json,或 macOS/Linux 的
~/.dsh/profiles/desktop/package.json)的 dsh.profile.bundles
追加 dsh-plugin-edit-regenerate、在 dependencies 追加
"dsh-plugin-edit-regenerate": "file:",然后在该 profile 目录执行 pnpm install。

重启 DSH 后生效。两个 profile 相互独立——装到其中一个不会影响另一个。

拉取更新后的更新流程

由于 pnpm 会把 file: 依赖拷贝到每个 profile 的 node_modules(hoisted 布局下是浅拷贝),执行 git pull 更新源码后,不会自动同步到已安装的 profile。当你拉取到新变更时,先检查目标 profile 在系统中是否还保存着该插件的副本:

- 查看该 profile 的 node_modules,例如 C:\Users\\.dsh\profiles\desktop\node_modules\dsh-plugin-edit-regenerate(如果 web 也装了,同样的路径再查一份);
- 只要某个 profile 还留有副本,它的副本就需要刷新。

然后判断是否确实需要更新并拷贝。如果当前运行的 DSH 还没有加载该插件(例如从未启动,或你改动的是一个当前未使用的版本),可以跳过拷贝,直接用新源码 pnpm install / 重启即可;如果该 profile 已存在副本、且当前 DSH 运行依赖它(或你希望本次 pull 立即生效),则按以下任一种方式刷新副本:

把整个插件目录镜像覆盖到目标 profile 的副本(排除 VCS 元数据):
robocopy "F:\路径\dsh-plugin-edit-regenerate" "C:\Users\\.dsh\profiles\desktop\node_modules\dsh-plugin-edit-regenerate" /MIR /XD .git
或强制 pnpm 刷新 / 重新解析(在 profile 目录下执行):
pnpm install --force

一旦判定确实需要更新,拷贝步骤可交由工具自动执行(例如由 AI 在更新流程中自动完成拷贝)。刷新副本后,重启 DSH 使变更生效。

故障排查

分叉会话在重启 DSH 后无法重新加载(SessionFormatUnsupportedError: ... unknown to this harness and not marked ignorable)

分叉会原样复制父会话的事件日志。如果父会话含有本 harness 构建不认识、且事件信封未标记 ignorable 的其他插件事件——例如 @loserfox/distill 在 #5 修复之前写入的 session/distill-review-request 事件——分叉日志在重启后会被拒绝加载(父会话本身同样受影响)。写入这些事件的插件版本已停止写入,但已经含有这些事件的日志仍需要一次性迁移:为相关事件补上 ignorable: true。

运行仓库自带的修复脚本(请先停止 DSH):

node scripts/repair-session-logs.mjs

该脚本扫描 $DSH_HOME/sessions(默认为 ~/.dsh/sessions)下的所有 session.jsonl.zstd,在逐字节保留日志其余部分的同时为遗留事件补上 ignorable 标记,并把每个文件备份为 .bak。可传入具体日志路径进行定向修复,或用 --dry-run 预览将要修改的内容。

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

同作者(StabCut)的其他插件

💬 加入社群

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

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