dsh-dialogue-cleanup
English · 简体中文
在运行中的 DeepSeek Harness Web 界面里删掉会话 —— 不用重启,也不用离开当前窗口。
会话行 ... 菜单里一项做单条删除,另有一页批量管理面板挂在设置页里。
安装 ·
界面 ·
实现 ·
发布流程 ·
Releases
## 为什么会有它
**一句话定位:删会话就该真的删掉。** DeepSeek Harness 把一条会话同时放在四个地方 ——
内存 live 条目、工作区记录、注册表残留(pin / archive)、以及磁盘上的目录。只清掉其中一处,
留下的就是一行幽灵会话、一条过期的工作区记录,或者一个还在悄悄占磁盘的目录。
下面每一条,都是这个定位的具体落实:
- **一个不可逆操作,只实现一次。** 删除逻辑在宿主(`lib/service.js` 的 `deleteSession`),
由两个薄适配层通向它 —— HTTP 契约与 slot UI —— 因此单条删除与批量删除**不可能各自漂移**。
- **运行中的会话是「拒绝」,不是「猜」。** `deletable` 由宿主判定,UI 不去猜;宿主会拒的,界面根本不给选。
- **已归档默认仍然显示。** 归档**不等于**删除:归档会话照样占磁盘,默认藏起来恰好会藏掉你想清理的那些。
(官方侧栏默认隐藏;这里是三选一 —— `隐藏已归档` / `全部对话` / `仅显示已归档`,且**默认显示已归档**。)
- **子代理行明确标注。** 官方侧栏把 `origin: 'subagent'` 的行整个藏起来,所以一旦这些行出现
(kind = 子代理 / 全部),每一行都会显式打上徽标 —— 子代理会话绝不能看起来像普通对话。
- **它如实汇报做了什么。** 结果行给出 成功 / 失败 / 降级 / 删掉的目录数,每条失败原因**原样保留**。
摘不掉 live store 条目时,插件报 `detached: false`,而不是假装成功。
- **错误码是语义正确的。** 与上游包(永远回 `200`)不同,这里用真实状态码:
400 / 403 / 404 / 405 / 409 / 429 / 500。
## 界面速览
**确认框:不可逆,并且明说。** 只有两条关闭路径 —— 显式「取消」按钮,或 `Esc`。
点击遮罩**故意不关闭**:一次误点不该让你损失一次确认机会。
这个浮层是**原生 `