ChisaAlter
dsh-plugin-message-edit
DSH消息撤回插件。Compatibility preview: edit and resend the latest DeepSeek Harness user message
- Stars
- 1
- Language
- TypeScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
dsh-plugin-message-edit
English | 中文
A DeepSeek Harness web plugin that adds Edit and resend to the latest user message. It creates a child session immediately before that message, opens the child, and restores the original text to the composer. The source session remains unchanged, and the old message and old assistant response are not included in the child.
[!IMPORTANT] This plugin requires the named host capabilities below. Compatible DSH hosts reject missing capabilities before activation. Legacy hosts that do not implement the compatibility manifest safely leave the browser plugin disabled, so they cannot create an incorrect full-history fork. The current public
0.1.0-rc.6host does not provide this feature.
Required host capabilities
The host must provide all of the following:
conversation.chat.user-actionssession.fork.beforeSeqsession.fork.blank
The manifest declares these exact feature IDs. Installation and browser composition fail closed on a compatible host when any requirement is missing; the browser half also checks the slot API before registering.
Behavior
- Only the newest committed user message shows the pencil action.
- Clicking the pencil does not send immediately.
- A child session is forked before the selected message's turn.
- The original text is restored to the child composer for editing.
- Running sessions and messages containing non-text blocks show an unavailable action with a reason.
- A pending fork locks the action against duplicate clicks.
- A failed fork leaves the source selected and reports a localized composer notice.
Installation
Install it from Settings > Plugins when your DSH build exposes all required host capabilities. Manual installation is equivalent to:
dsh plugin --profile web add github:ChisaAlter/dsh-plugin-message-edit#<commit-sha>
The repository commits lib/ and defines no lifecycle build scripts, so GitHub installation does not require an allowBuilds exception.
Development
Requires Node.js 22.19 or later and pnpm 11.7.0.
pnpm install --frozen-lockfile
pnpm verify
pnpm pack:check
pnpm verify runs strict TypeScript checking, 21 behavior tests, a clean production build, and release-artifact validation.
The v0.1.0 release candidate was installed from GitHub commit 0100468b17ffe838cbcb2facd250192476a28171 into an isolated compatible Web profile. The boot graph contained only the external plugin, editing the first user turn created an empty child with the original text as a draft, the source session stayed unchanged, and uninstall removed both the action and the boot entry.
Publishing
- Run
pnpm verifyandpnpm pack:checkfrom a clean checkout. - Commit the regenerated
lib/,pnpm-lock.yaml, and source changes. - Confirm CI passes on Node 22 and Node 24.
- Test install and uninstall by commit SHA on a host that exposes every declared capability.
- Tag and release the same version as
package.json.
The desktop marketplace installs by commit SHA and does not require a release asset.
See RELEASING.md for the blocking checklist.
Limitations
- Text-only messages can be edited. Image and other non-text messages are unavailable.
- Editing waits for the current response to finish.
- The action is available in Chat view only.
- The plugin requires host changes and cannot polyfill them from browser code.
License
MIT