Skip to content

Moeblack/dsh-message-edit

233Last commit Aug 14, 2026

dsh-message-edit DSH plugin

dsh-message-edit lets you edit user messages, assistant reasoning, and response texts after they are settled. It supports reroll from the last assistant turn and retry any historical turn, with cascade strategies (truncate/preserve). All changes create new session versions, leaving the original history intact and accessible via undo/redo.

How to install the dsh-message-edit DSH plugin

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

Copying does not run this command. Review the repository and version before installing the dsh-message-edit DSH plugin.

dsh-message-edit DSH plugin data source

dsh-message-edit DSH plugin snapshot date: Aug 16, 2026

discovered

What the dsh-message-edit DSH plugin can do

  • Edit user messages, assistant.reasoning, and assistant.response blocks
  • Reroll: regenerate the last assistant response from a previous branch
  • Retry any historical turn with cascade strategies (truncate or preserve)
  • Version switching via undo/redo buttons and a Timeline tab displaying the full branch tree
  • Timeline tab registered at conversation.view with order: 15, between Trajectory and Prompt Studio

Where the dsh-message-edit DSH plugin fits

  • Correct a typo in a user message after it was sent
  • Regenerate an assistant response that was unsatisfactory
  • Rerun a specific turn with the same original input to explore different tool outcomes
  • Compare multiple versions of a conversation by switching between branches
  • Undo an accidental edit and restore the previous version

Who the dsh-message-edit DSH plugin is for

  • DSH users who want fine-grained control over conversation history
  • Developers building complex workflows that require branching and versioning

dsh-message-edit DSH plugin limitations

  • Only available for the 'web' profile (install command uses --profile web)
  • All UI text is in Chinese; code comments are in English
  • Does not modify workspace files, external effects, or existing artifacts
  • Requires a running DSH instance with the plugin installed via npm

dsh-message-edit DSH plugin: from the repository README

Quoted from the Moeblack/dsh-message-edit README, the upstream source of the dsh-message-edit DSH plugin. Copyright remains with the original authors.

`dsh-message-edit`([npm](https://www.npmjs.com/package/dsh-message-edit) · [GitHub](https://github.com/Moeblack/dsh-message-edit))为 DeepSeek Harness 补充基于事件溯源的「消息编辑与重生成」能力。插件不改写历史事件,也不修改 DSH 引擎内部;每次编辑、重生成或重试都会从目标回合之前创建一个新会话版本,原会话始终保留并可随时切回。 ```bash dsh plugin --profile web add dsh-message-edit ``` ## 功能 - **编辑消息**:可编辑已落定的用户文本、`assistant.reasoning` 思考块与 `assistant.response` 回复文本。 - **重生成**:从最后一条已落定助手回复所属回合之前分支,使用原用户输入重新生成。 - **重试任意回合**:在 Timeline 中选择任意历史回合重新执行。 - **级联策略**: - `truncate`(默认):只重新执行目标输入,删除该点之后的旧后续。 - `preserve`:保留后续用户输入,并在新分支中依次重新执行;助手输出与工具链全部重新生成。 - **版本切换**:会话标题栏的 `←` 撤销当前原子效果,`→` 重施加最新直接子效果;Timeline 展示完整已知分支树、操作时间、编辑前后内容与当前版本。 - **Timeline 标签页**:注册到 `conversation.view`,`order: 15`,位于 Trajectory(10)与 Prompt Studio(20)之间。 ## 设计 ### 时间可组合性 插件把**完整回合**作为效果原子。目标回合的 `turn/start`、模型请求、工具调用、工具结果与 `turn/end` 不会被局部复制后拼接;新版本从该回合之前的闭合边界分支: 1. 用户消息编辑、Reroll 与 Retry:回退整个目标回合,再把目标用户输入作为新回合交给 Agent。 2. 助手块编辑:回退整个目标回合,以原用户输入和编辑后的助手内容构造一个新的完整闭合回合;原工具链不进入新版本。选择 `preserve` 时,后续用户输入再依次交给 Agent,产生新的完整工具链。 3. 每个版本都追加一个不可拆分的 `message-edit/version` 效果对:`effect` 记录正向效果,`inverse` 记录恢复目标。父版本链自动导出组合逆;恢复不是删除事件,而是沿逆链切换到仍然存在的版本。 4. 消息历史变换彼此不交换,因此撤销遵循 LIFO:一次只撤销当前原子效果并保留更早效果;各后继分支始终保留,可从父版

Read the full READMEThe repository declares no license. Check with the authors before using it.

dsh-message-edit DSH plugin questions

How do I install dsh-message-edit?

Run 'dsh plugin --profile web add dsh-message-edit' in your terminal. This will add the plugin to your web profile. After installation, restart DSH to activate the plugin. You can also use a local development link with 'dsh plugin --profile web add -w link:path/to/dsh-message-edit'.

Can I edit a message after the assistant has already responded?

Yes. You can edit any settled user message, assistant.reasoning, or assistant.response block. The plugin creates a new session version from the point of the edit, preserving the original history. You can undo the edit later to revert to the previous version.

What is the difference between 'truncate' and 'preserve' cascade strategies?

With 'truncate' (default), only the target input is re-executed; all subsequent messages after that point are deleted. With 'preserve', the subsequent user inputs are kept and re-executed sequentially in the new branch, generating new assistant outputs and tool calls. Preserve strategy is useful when you want to keep the conversation flow while changing the earlier part.

How do I undo a version change?

Use the ← button in the session title bar to undo the latest atomic effect (e.g., an edit or reroll). The → button reapplies the latest direct child effect. You can also switch to another version in the Timeline tab, which shows the full branch tree and allows you to open any version.

Does this plugin modify the original DSH engine?

No. The plugin only uses public DSH services (sessions, agents, etc.) and does not modify DSH internals, apiproxy, or official UI packages. All history is append-only and deep-frozen; changes are stored as new versions rather than in-place edits.