deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
English · 中文
DSH (DeepSeek Harness) Web GUI plugin: edit the last user message back into the composer after stopping a turn — no more retyping from scratch.
Sending a message, stopping the reply, and wanting to re-ask with a small change currently means typing the whole prompt again. This plugin adds an "Edit last message" button to the composer tool row: it restores the tail user message text and focuses the input, ready to edit and send.
It is a client-side plugin — the conversation log stays append-only. Sending the edited text appends a new turn (the original message and the interrupted reply remain in the transcript). It never touches the host, the session log, or the agent loop.
The plugin bundles as a dsh.bundle + dsh.client package. It works on any
DSH setup that loads third-party bundles (source dsh web, DSH Desktop,
custom profiles).
dsh plugin --profile web add dsh-plugin-edit-message
Restart the GUI (fully quit and reopen) after installing — client plugin bundles register at startup.
DSH Desktop users: Desktop's DSH_HOME lives under
%APPDATA%\dsh-desktop\harness, so target that explicitly:
DSH_HOME="${APPDATA}/dsh-desktop/harness" \
dsh plugin --profile web add dsh-plugin-edit-message
Then quit and reopen DSH Desktop.
# GitHub repository
dsh plugin --profile web add git+https://github.com/WyxBUPT-22/dsh-plugin-edit-message.git
# local checkout (pnpm install && pnpm run build first)
dsh plugin --profile web add /path/to/dsh-plugin-edit-message
The repository is self-contained: devDependencies resolve the official
harness client packages from the npm registry, so no deepseek-harness
checkout is needed.
pnpm install # pulls the official client packages from npm
pnpm run build # emits lib/index.js + lib/client.js + lib/types
dsh plugin --profile <name> add /path/to/dsh-plugin-edit-message
dsh --profile <name>
Uninstall with dsh plugin --profile <name> remove dsh-plugin-edit-message.
See docs/user/develop/basic/publish.md in the harness checkout for the
dsh plugin workflow.
dsh.client manifest, platform: web) that
contributes an entry to the official conversation.input.left composer
tool-row slot (a documented multi-plugin list slot — zero official changes).inputActions.setDraft(text) restores the text and the composer
is focused. The plugin prefers inputActions.focus when the deployed
runtime exposes it, otherwise falls back to the composer textarea (the GUI
keeps exactly one).dsh plugin remove dsh-plugin-edit-message), the
surface disappears entirely — the tool row reverts to official chrome.In-place replacement with a rewind of the log tail is a larger design (log-truncation semantics, compaction checkpoints, session log format, dual SDK projections) and is intentionally out of scope. This plugin provides the interaction value — edit the text, resend — with zero blast radius.
pnpm run typecheck # tsc --noEmit (strict)
pnpm run test # vitest (logic matrix + component behavior)
pnpm run build # tsdown → lib/client.js + types
pnpm publish runs prepublishOnly (typecheck + test + build) first.
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。