dsh-message-rollback
Verifieddsh-message-rollback · v0.1.1 · MIT · Web UI
DeepSeek Harness plugin that adds per-message rollback controls.
Install
dsh plugin add dsh-message-rollback Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Readme
DeepSeek Harness 消息回滚插件
这个插件向每条已完成的助手消息的操作栏添加“↶ 回滚”按钮。点击后可以选择:
- 只回滚消息:创建一个从该消息之前截断的新会话,原会话保留。
- 同时回滚代码更改:调用 Host 提供的
messageRollback.rollback(),由 Host 在同一事务中恢复消息之后的工作区快照。
插件使用 Harness 的公开 UI slot:conversation.chat.assistant-actions。它通过当前 Session 的事件窗口把消息 ID 映射到 durable event sequence,避免依赖 DOM 结构。
安装
把本目录作为本地插件包加入 Loader 配置:
plugins:
- package: ./dsh-message-rollback
config: {}
构建:
pnpm install
pnpm run bundle
代码更改回滚的 Host 适配
Harness 当前公开的 SessionFace 提供 fork、队列和提示词控制,但不允许 UI 插件直接改写工作区。因此“同时回滚代码更改”需要 Host 注册 ctx.messageRollback,或者注册较小的 ctx.workspaceRollback:
ctx.workspaceRollback = {
async rollbackTurn({ sessionId, eventSeq }) {
// 在 Host 侧把工作区恢复到 eventSeq 对应 turn 开始时的快照。
},
};
如果需要让 Host 同时负责恢复工作区、创建回滚 Session 并切换当前页面,可以注册完整服务:
ctx.messageRollback = {
async rollback({ sessionId, messageId, includeWorkspaceChanges }) {
// 在 Host 侧定位消息和 turn 的快照。
// includeWorkspaceChanges 为 true 时恢复 turn 开始时的工作区。
// 然后切出/切换到回滚后的 Session。
},
};
未注册工作区回滚能力时,勾选代码更改会给出明确提示;未勾选时插件使用公开的 ctx.sessions.fork() 作为安全回退,原会话不会被删除。