删除对话中某个已完成的轮次,保留会话与后续记录
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:npm 同名包「dsh-turn-delete」归属 hanshenmesen/dsh-turn-delete,装到的可能不是本插件。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add TiJun-Prime/dsh-turn-delete该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · chat
装得上吗
静态安装检查有提示项,装前建议看一眼 README
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 34 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意npm 同名包「dsh-turn-delete」归属 hanshenmesen/dsh-turn-delete,装到的可能不是本插件
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-turn-delete @ 0.1.0
✓Node 引擎要求 >=22.19 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/15 09:45:26
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
- 发起网络请求lib/client.js:424
const response = await fetch(TURN_DELETE_PATH, {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-llm@deepseek-ai/dsh-session给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 删除已完成对话轮次
- 移除问题回复及工具记录
- 保留会话与后续轮次
展开完整介绍(142 字)↓
从 DSH 会话里删掉一轮已完成的对话,会话本身保留。垃圾桶按钮会把这一轮的问题、回复和工具记录从对话和模型上下文中移除,会话、后续轮次和只追加日志都不动。hanshenmesen/dsh-turn-delete 的独立续作(DSH 0.1.5-rc.2 + 0.2.0-rc.1)。
README
由 DeepSeek 最新模型翻译生成dsh-turn-delete
从 DeepSeek Harness 的对话中删除一个完整且已结束的 Turn(轮次),不删除也不替换整个 Session:该轮的提问、助手回复与工具记录会从后续模型上下文中移除,而 Session id、标题、工作区关联、之后的轮次以及原始 append-only 事件日志全部保留。每个已完成的顶层轮次,其最后一条助手回复旁会出现一个垃圾桶按钮。
本仓库是 hanshenmesen/dsh-turn-delete 的独立延续版。上游主分支暂未合并本仓库的兼容性修复,因此这里独立维护,并跟进 DeepSeek Harness 0.1.5-rc.2 的 surface 规则与 0.2.0-rc.1 的插件兼容性闸门。
演示
确认后删除中间轮次,同时保留原 Session 与后续轮次。演示录制于 DeepSeek Harness 0.1.0-rc.7,操作方式与当前版本一致。
删除单个轮次而不删除 Session
功能
- 删除按钮只出现在普通 Session 已完成的顶层轮次上,subagent 会话不显示。
- 删除前必须确认;Session 正在运行时按钮不可用。
- 立即生效:删除成功后该轮的行就地隐藏,不需要切换会话再切回来(持久 tombstone 会在之后任何一次整窗渲染时继续把它隐藏)。
展开完整文档(README 剩余 1 节)
dsh-turn-delete
从 DeepSeek Harness 的对话中删除一个完整且已结束的 Turn(轮次),不删除也不替换整个 Session:该轮的提问、助手回复与工具记录会从后续模型上下文中移除,而 Session id、标题、工作区关联、之后的轮次以及原始 append-only 事件日志全部保留。每个已完成的顶层轮次,其最后一条助手回复旁会出现一个垃圾桶按钮。
本仓库是 hanshenmesen/dsh-turn-delete 的独立延续版。上游主分支暂未合并本仓库的兼容性修复,因此这里独立维护,并跟进 DeepSeek Harness 0.1.5-rc.2 的 surface 规则与 0.2.0-rc.1 的插件兼容性闸门。
演示
确认后删除中间轮次,同时保留原 Session 与后续轮次。演示录制于 DeepSeek Harness 0.1.0-rc.7,操作方式与当前版本一致。
删除单个轮次而不删除 Session
功能
- 删除按钮只出现在普通 Session 已完成的顶层轮次上,subagent 会话不显示。
- 删除前必须确认;Session 正在运行时按钮不可用。
- 立即生效:删除成功后该轮的行就地隐藏,不需要切换会话再切回来(持久 tombstone 会在之后任何一次整窗渲染时继续把它隐藏)。
- 删除由一条持久记录承担:刷新页面或重启 profile 后,被删轮次依然不出现。
- Session 的 system prompt 节点永远不会被算进删除区间。
- 重复提交同一次删除是幂等的。
目标轮次尚未结束,或已与其他历史一起被折叠进 compaction 摘要时,插件会拒绝删除:摘要是整体替换,无法单独摘除其中某一轮。这种拒绝会如实说明原因;插件内部出错时会报告「删除失败」并附带原因,不会再误报成「任务正在运行」。
安装
从本地目录(开发调试):
dsh plugin --profile web add -w link:/absolute/path/to/dsh-turn-delete
从 GitHub 安装(私有仓库需要本机已有对应凭据):
dsh plugin --profile web add github:TiJun-Prime/dsh-turn-delete
从预构建的 GitHub Release 安装(发布 Release 之后可用):
dsh plugin --profile web add https://github.com/TiJun-Prime/dsh-turn-delete/releases/latest/download/dsh-turn-delete.tgz
安装后重启 dsh web(桌面版重启应用)。卸载:
dsh plugin --profile web remove dsh-turn-delete
与上游的差异(0.2.0)
1. 适配 DSH 0.1.5-rc.2:surface 替换操作改为 { op: 'replace', startSeq, endSeq };tombstone 载体由 assistant/message 改为空内容的 system/message——0.1.5 明令禁止在 assistant/message 上携带 sourceEventSeqs,而空 system 节点既声明来源、又不投影出任何模型消息。旧版本写入的 tombstone 仍会被识别。
2. system prompt 不再被算进删除区间:0.1.5 的 assertSystemHeadRewrite 保护 surface 节点 0,第一轮的区间曾在某些会话里包含该节点而直接失败。
3. 错误如实上报:内部异常(例如内核 API 变化)不再被包装成 AGENT_BUSY,新增 DELETE_FAILED;只有 Agent 确实非 idle 时才提示任务正在运行。
4. 删除后立即隐藏:聊天的 turn-tail 行在实时追加时不会重渲染,因此由删除动作直接就地隐藏被删轮次的行。
5. 工程化:构建/检查脚本在 Windows 上正常工作(.bin shim 问题),npm run check 增加「用真实内核经 HTTP 路由删除构建产物中的中间轮次」的 smoke 测试。
0.2.1:适配 0.2.0-rc.1 的插件兼容性闸门
DeepSeek Harness 0.2.0-rc.1 起,profile 启动时会用 evaluatePluginCompatibility() 检查每个插件的 peerDependencies:凡是名字等于 @deepseek-ai/dsh 或以其为前缀的 peer,都要求运行中的内核版本满足其 semver 范围(includePrerelease: true);不满足的插件不报错、也不加载——loader 条目停在 enabled: false,插件面板显示「已进入 profile bundle 层但本次未能热挂载;重启后生效」,而内核日志里没有任何相关行。
两个坑:
- 只声明测过的旧版本(例如 ^0.1.5-rc.2)在 0.2.0-rc.1 上判定为 false → 直接不加载。
- 预发布版本的区间写法很反直觉:>=0.1.5-rc.2 = 4 时写 { kind: 'system-prompt' }(即内核自己的空系统消息),v3 仍写 { kind: 'plugin', plugin: 'dsh-turn-delete' }——0.1.x 的 seed 校验器恰好相反(seed system/message … message must have plugin source),一刀切必然弄坏另一条内核线。
- 身份识别随之改为结构化:v4 上不再有生产者字段可用,所以「空内容的 system/message + surfaceOp: replace」本身就是 tombstone;旧日志里的 plugin 形状与更早的 assistant/message 形状继续被识别,历史删除不会复活。
0.2.5 验证证据(真实 0.2.0-rc.1 内核,全内存、不碰用户会话):删除中间轮 → receipt { turn: 2, seq: 18 },tombstone source { kind: 'system-prompt' },模型面 ["q1","a1","q3","a3"],并用 Session.create(id, seed, header, …) 重建整条日志成功(tombstone 仍在 seq 18、被删轮次仍不在模型面);三组负对照(legacy plugin、plugin:、runtime-context)全部被同一校验器拒绝。
被写坏的会话(内存里挂着一条无法落盘的 pending 事件)不需要修磁盘:关掉该会话重新打开、或重启应用即可恢复——磁盘上的日志从未被污染。
0.2.4:图标改名 —— 重启后按钮仍不出现的原因
0.2.3 修好 slot 注册后重新加载,删除按钮依然不出现:宿主半状态是 enabled: true, fiberPhase: "active",浏览器控制台里最初那条 requires options.id 也消失了,但动作行里什么都没有。第二个(也是最后一个)原因不在 slot,而在图标:
0.2.0-rc.1 把 @deepseek-ai/dsh-client-ui-primitives 里所有带尺寸后缀的图标改名成了「笔画粗细」变体。
| 0.1.x | 0.2.0-rc.1 |
| IconTrashOutline16 | IconTrashOutlineRegular(1px 描边)/ IconTrashOutlineMedium(1.3px) |
本插件此前直接 import { IconTrashOutline16 };在 0.2.0-rc.1 上这个导出不存在,而构建产物是 CJS interop(x = __toESM(require(...))),读出来是 undefined。把 undefined 当组件渲染会让 React 抛 Element type is invalid,整条动作行渲染失败——注册是成功的、宿主侧没有任何报错,所以从外面看只是「按钮不见了」。
0.2.4 的改动:
1. 新增 src/client/trash-icon.tsx:按 IconTrashOutlineRegular → IconTrashOutline → IconTrashOutline16 → IconTrashOutlineMedium 的顺序在运行时解析当前内核真正导出的图标名,一份 bundle 同时服务两条内核线;一个都解析不到时渲染内置的 16px SVG 兜底——以后再改名最多是换图形,不会再让按钮消失。
2. 新增 3 个回归测试:解析优先级、未知/空模块返回 null、兜底图形可渲染。
Button / Modal / Tooltip 的 props 已在两条内核线上逐项核对一致,无需改动。
设计
Host 端注册 POST /dsh-turn-delete:取得目标 Agent 的维护租约 → 校验目标轮次是一个完整闭合、且仍可独立删除的 surface 区间 → 追加持久替换事件 → 等待 sessions.flush() 完成后才返回成功。
替换事件是一条空内容的 system/message,携带 surfaceOp: { op: 'replace', startSeq, endSeq } 以及它所遮蔽的 sourceEventSeqs。
浏览器端使用公开的 conversation.chat.assistant-actions 与 conversation.chat.turnTail slot:一个 Conversation definition 把持久 tombstone 投影到目标 Turn 的 Location data 上,标记组件据此隐藏相邻 Turn tail 之间的 Chat 行。DeepSeek Harness 目前还没有公开「整轮可见性」扩展点,所以这层呈现兼容被限制在行范围内;模型上下文的删除完全不依赖它。
兼容性
- DeepSeek Harness 0.1.5-rc.2 与 0.2.0-rc.1(surface 替换使用 { op: 'replace', startSeq, endSeq })
- Node.js 22.19 或更高版本
- Web profile 与基于 Web 的桌面套壳
peerDependencies 声明为 ^0.1.5-rc.2 || ^0.2.0-rc.1。内核升到未列出的版本时,0.2.0-rc.1 之后的 Harness 会拒绝加载本插件(见上一节);此时需要更新本包,或在插件面板里为该精确版本显式授予兼容豁免。
DeepSeek Harness 仍处于 developer preview,surface API 会在版本之间变化。升级 Harness 后,建议新建一个含三个短轮次的临时 Session,并删除中间轮次做一次验证。
开发
npm install
npm run check
dsh plugin --profile web add -w link:/absolute/path/to/dsh-turn-delete
npm run check 会:类型检查 → 构建 Host/Browser 两半 → 运行单元与 UI 测试(真实内核对象 + jsdom)→ 用构建产物经真实 HTTP 路由对真实内核做一次删除 smoke → 校验 npm 包内容。
安全
与所有 DSH 插件一样,本包以 Harness 进程的权限运行,安装前应审阅源码。删除只改变后续模型上下文,原始 append-only 事件会为审计与回放保留。
许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
TiJun-Prime/dsh-turn-delete
删除对话中某个已完成的轮次,保留会话与后续记录
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,487已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,894已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,379已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 5,084已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,778已汉化DSH
71.1
这是你的仓库?认领条目