Configuring dsh-message-edit
DeepSeek Harness loads the plugin for the web profile through the package’s dsh.bundle declaration. The README documents no user-facing configuration keys or environment variables. The Browser bundle provides the conversation.view contribution message-edit-timeline with order: 15, between Trajectory and Prompt Studio, plus conversation.session.header.actions with ID message-edit-controls.
Commands and HTTP API
DeepSeek Harness exposes two plugin routes:
GET /message-edit?sessionId=<id> reads editable messages, retryable turns, and the complete version tree.
POST /message-edit performs an edit, reroll, or retry operation and returns the newly published Session ID.
An operation can target a settled user message, an assistant.reasoning block, an assistant.response block, or a historical turn selected in Timeline. The documented cascade values are truncate and preserve; truncate is the default.
How dsh-message-edit behaves
Each operation creates a new Session version before the target turn. The source Session remains intact. A message-edit/version event has schemaVersion: 2 and records the operation, cascade, target turn and event sequence, optional block details, and before and after values. The Session header’s parentSession forms the version tree. Undo and redo switch between existing versions through inverse effects; they do not delete events.
preserve keeps later user inputs and re-executes them in order, regenerating assistant output and tool chains. Editing an assistant block starts a complete replacement turn, so the original tool chain is not copied into the new version.
Known limits of dsh-message-edit
The plugin does not modify DSH engine internals, ReactLoopAgent, AgentLoop private methods, apiproxy, or official UI packages. It also does not restore or change workspace files, external command effects, or existing artefacts. The build uses published @deepseek-ai/*@0.1.0-rc.6 types and generates index.mjs, client.js, and client.js.map.
Written from the project's own documentation and kept in sync with it. Where the two disagree, the source is authoritative — read the README on GitHub