Introduction¶
The DeepSeek Harness (DSH) Web GUI currently lacks standard operations for editing, retrying, and deleting session messages. The dsh-more-message-actions plugin aims to restore these interactions found in mainstream AI clients, making conversations in DSH equally easy to edit and retry.
Installation and Enablement¶
This plugin is not published to npm and is distributed only via GitHub.
dsh plugin --profile web add github:suzuran520yyz/dsh-more-message-actions
After installation, restart dsh web and refresh any open pages to activate it.
Core Features¶
The plugin adds buttons to the message action bar and supports the following operations:
- Edit Message: Opens an editor to modify message text; supports user messages and AI messages.
- Modify and Retry: Resends the request using the modified user text; supports user messages only.
- Retry: Regenerates the response using the original user message; supports AI messages only.
- Advanced Retry: First enters requirements for the AI response, then truncates in place and regenerates based on “original message + requirements”; supports AI messages only.
- Delete Message: Deletes the corresponding message; supports user messages and AI messages.
How It Works¶
The plugin uses a “dual-side” collaboration model:
- Host side (
lib/index.js): Rewrites the persisted log (edits and deletions are point rewrites; retry operations are turn truncations), resets the coordinator cursor, and triggers Agent replay; provides read-only RPC to prefill the original text. - Browser side (
lib/client.js): Injects icon buttons into the message action bar, calls Host interfaces, and resynchronizes the history window; handles the conversion from user message DOM key to persisted id.
Caveats and Limitations¶
Because the plugin modifies DSH engine internal structures, the following limitations apply:
- Operations are only allowed when the session is idle: The Host rejects operations while a turn is running.
- Retry, Advanced Retry, and Modify and Retry support only the beginning of a pure-text turn: Turns containing image attachments cannot be safely replayed.
- Deletion behavior: Deletion removes only the target message itself.
- Deleting an AI response also removes its chain of thought / thinking process / tool calls, but does not delete the corresponding user question.
- Deleting a user message does not delete its AI response.
- After deleting a mid-conversation message and continuing the session, the model request no longer includes the deleted content. This may result in “a question with no answer” or adjacent messages from the same role, which is expected behavior.
- Editing behavior: If “Edit (Save)” only changes the text and keeps the old AI response, the old response may be inconsistent with the new text. If you want the AI to answer based on the new text, use “Modify and Retry”.
- Dependency: Depends on the internal structures of the current DSH rc version; it may need to be updated after engine upgrades.
Conclusion¶
The plugin provides fine-grained message-level control for DSH Web users and is suitable for developers who need to fine-tune text or clean up history within sessions. The source code is on GitHub. Please review the code and make a backup before use.