dsh-fold-delete:长对话折叠与彻底删除会话

前言

用 DeepSeek Harness(DSH)做智能体或长任务调试时,单个会话里往往会堆很多轮消息:工具调用、思考块、用户来回确认。列表和视窗被拉得很长,定位「最近一轮在说什么」要反复滚动;不要的试验会话如果只从界面关掉,磁盘和 workspace 索引里可能还留着痕迹。社区插件 dsh-fold-delete(维护者 KunKun24)针对两件事:把较早消息折起来只看最近 N 条,以及从菜单里走二次确认后把会话从磁盘和索引里删掉。下面按功能、安装和用法说明。

这是什么

dsh-fold-delete 是 DSH 的 Web 端插件(dsh.client.platform: web),通过 Cordis patch 注入客户端 UI。MIT 许可;package.json 中版本为 1.1.0,要求 Node >= 22.13.0。在 SkillHub 社区目录中归类为「记忆」,目录页:dsh-fold-delete;源码与说明:GitHub - KunKun24/dsh-fold-delete。

折叠较早消息

打开长对话时,默认只展示最近 20 条可见消息(可在 5–200 范围内改配置);更早的内容收起,对话顶部会出现浮动按钮,点一次多展开一批,也可「全部展开」。

实现上有几点值得注意:

  1. 思考过程和工具调用不计入条数,计数更贴近「对话轮次」而不是 DOM 节点总数。
  2. 只隐藏、不删除:折叠通过给消息 DOM 加上插件自定义属性 data-dsh-fold-delete 完成,节点仍在,随时可展开。
  3. 切换会话或新消息到达后会自动重新计算,不需要手动刷新折叠状态。

彻底删除会话

在会话列表中:右键 →「删除会话」→ 勾选确认 → 永久删除。操作不可恢复,因此强制二次确认。

删除流程会做四步(按 README 描述):

  1. 停掉可能仍在运行的会话(flush + dispose)
  2. 删除会话目录(兼容 session-<uuid> 与裸 <uuid> 两种目录命名)
  3. 从 workspace 索引中移除
  4. 通知前端刷新列表

主题与弹窗

确认弹窗会按页面真实背景亮度选择亮/暗配色(浅色为白卡片、深色为深卡片)。作者说明:dsh 没有 --dsw-alias-bg-primary 变量,硬写该变量会永远落到深色兜底,插件侧据此做了适配。

安装与启用

插件以当前 dsh 进程权限 读写会话目录与 workspace,安装前建议浏览源码并确认 MIT 许可与行为是否符合预期。官方 README 给出三种方式:

方式一:插件市场(推荐)

在 dsh 的「插件市场」里搜索包名 dsh-fold-delete 直接安装。

方式二:Release 压缩包

dsh plugin --profile web add ./dsh-fold-delete-1.0.0.tgz

方式三:手动装到 profile

# 1. 复制到 profile 的 vendor 目录
cp -r dsh-fold-delete ~/.dsh/profiles/web/vendor/dsh-fold-delete

# 2. 在 profile 的 package.json 里加一条依赖(file: 指向 vendor)
#    "dependencies": { "dsh-fold-delete": "file:./vendor/dsh-fold-delete" }

# 3. 装依赖并重启
cd ~/.dsh/profiles/web && pnpm install && dsh web

社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,属于 DSH「一切皆插件」生态里的第三方收录,不是官方应用商店。

卸载

从 profile 的 package.json 的 dependencies 和 dsh.profile.bundles 中移除 dsh-fold-delete,执行 pnpm install 后重启 dsh web 即可。README 写明插件不写业务数据,卸载不留额外状态文件。

典型用法小结

  1. 日常长对话:保持默认或调小/调大「最近 N 条」,用顶部按钮按需展开历史。
  2. 清理试验会话:列表右键删除,勾选确认;删除前确认没有仍需保留的上下文或未导出内容。
  3. 开发环境:若不用市场,用 .tgz 或 vendor + file: 依赖装入 web profile,改代码后按 DSH 插件惯例重启 web 端验证。

适用场景与注意

适合经常单会话多轮、需要快速扫视最近内容的 DSH Web 用户,以及需要把废弃会话从磁盘和索引一并清掉的维护场景。折叠不替代「记忆/摘要」类插件的分类含义只是目录标签,本插件做的是 UI 折叠与物理删除,不做跨会话记忆抽取。

务必把「删除会话」当作不可逆操作;插件会在删除前要求确认。若你并行多个 profile,安装命令中的 --profile web 与路径 ~/.dsh/profiles/web 需与当前使用 profile 一致。

结尾

dsh-fold-delete 用较小改动解决「长对话可读性」和「会话真删除」两个实际问题:折叠靠 DOM 属性、可展开;删除覆盖进程、目录、索引与列表刷新。查阅说明与 issue 见 GitHub 仓库;在社区站可打开 SkillHub 目录页 查看收录信息。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜