Skip to content
dsh.fish
Bundle

dsh-turn-hard-delete

Delete one complete closed turn from a DeepSeek Harness session without deleting the session. Self-contained, decoupled, removable.

Source
shuanzhe
License
MIT
Updated
Updated 9 days ago

Readme

# dsh-turn-hard-delete

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 / 安装

```sh
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

Install

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

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source