DeepSeek Harness Plugin

shuanzhe/dsh-turn-hard-delete

Stars ★ 1 Downloads (30d) 786 Category Sessions & Messages Added 2026-09-19 npm dsh-turn-hard-delete

Delete a complete closed turn (question + answer + tool calls) from a DeepSeek Harness session, without deleting the session.

Install

# from npm (prebuilt)

dsh plugin --profile web add dsh-turn-hard-delete

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:shuanzhe/dsh-turn-hard-delete

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

This plugin publishes its README in Chinese only.

Delete one complete closed turn (question + answer + tool calls) from a DeepSeek Harness session, without deleting the session. The deletion is recorded in the session log, so the turn stays gone after reloading.

删除 DeepSeek Harness 会话中的一整轮对话(提问 + 回答 + 工具调用),不影响会话本身。删除结果写入会话日志,刷新后不会复活。

Install / 安装

dsh plugin --profile web add dsh-turn-hard-delete

Requires the plugin to be registered in the profile's dsh.profile.bundles (the add command does this automatically). Restart the web service afterwards.

需要重启 dsh web 服务后生效(dsh plugin add 会自动写入 bundles 登记)。

Usage / 用法

  1. Hover over a message in the chat. / 鼠标悬停到对话消息上。
  2. Click the Delete this turn / 删除这一轮 button in the turn tail. / 点击轮次尾部的"删除这一轮"按钮。
  3. Confirm in the dialog. / 在弹出的确认框里确认。

The whole turn disappears from the UI immediately; the tombstone written to the session log keeps it hidden on reload. Only fully closed turns can be deleted; a running turn must finish first.

删除后整轮立即从界面消失;写入会话日志的墓碑标记保证刷新后依然隐藏。仅支持已关闭的轮次,运行中的轮次需先结束。

How it works / 原理

  • Backend: writes a user/message tombstone event (empty content, source.kind: "plugin") and replaces the turn's event range in the session log via a surfaceOp replace. / 后端在会话日志中写入空的 user/message 墓碑事件,并用 surfaceOp replace 替换掉该轮的事件区间。
  • Frontend: a small slot component exposes the delete button and hides the turn's DOM rows by their data-chat-turn marker. / 前端通过 slot 注入删除按钮,按 data-chat-turn 标记隐藏该轮的所有消息行。
  • Self-contained and decoupled: the plugin adds no persistent state of its own and can be removed by uninstalling the package and dropping the bundle entry. / 自包含、解耦,拔除插件不残留状态。

Notes / 注意

  • Deletion is permanent for the turn's content; there is no undo. / 删除是彻底的,无撤销。
  • This plugin deletes a single turn; it does not delete whole sessions. For session-level management, use a session manager plugin. / 本插件删除的是单轮对话,不删除整个会话;会话级管理请使用会话管理插件。
  • Built against the turn/step surface model of @deepseek-ai/dsh-session >=0.1.0-rc.6. / 基于 @deepseek-ai/dsh-session >=0.1.0-rc.6 的 turn/step 界面模型构建。

License / 许可

MIT

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.