Skip to content

Releases

v1.0.0 — 永久删除 DSH 会话,级联清理四类关联数据

Choose a tag to compare

@cyh3436332528 cyh3436332528 released this 28 Sep 09:13

DSH 自带的「归档」只把会话从列表里隐藏,磁盘上的日志与投影缓存一个字节都不动。
1.0.0 补上的就是缺失的那一步:真删。

功能

  • 两个入口:设置页「会话管理」分区,以及对话头部的删除按钮。

  • 永久删除 + 级联清理:一次删除同时处理四类关联数据。

    关联数据 磁盘位置 处理方式
    会话日志 ~/.dsh/sessions/<工作区文件夹>/<会话ID>/ 递归删除整个目录
    投影缓存 ~/.dsh/storages/session_projcache/sessions/<会话ID>.json 删除文件
    工作区记账 ~/.dsh/storages/workspace.json 解除归属(域表 + 全局归档表)
    子会话(子代理) 同工作区文件夹下的子代理会话 可选一并删除
  • 子会话判定保守:与父会话同 workspace 文件夹、且不在任何 workspace 的 sessionIds 里。
    该规则保证不会误删别的正常会话。

  • 列表面板:按工作区分组,每行显示标题、会话 ID、体积、目录最后修改时间;
    带 打开中 / 已归档 / 子会话 N / 无工作区 状态标记;支持筛选、多选批量删除、
    以及独立的「删除全部已归档会话」卡片。

  • 误触防护:确认块出现在触发按钮下方的独立区块,取消是白色主按钮且佔住指针原来停留的位置,
    删除是整页唯一的红色按钮,两者之间隔着一整段空白。

  • 渲染隔离:面板整体包在 React error boundary 内,插件渲染失败不会影响设置面板的其他分区。

  • 跟随设计系统:普通按钮用官方 @deepseek-ai/dsh-client-ui-primitives,
    配色走 --dsw-alias-* CSS 变量,浅色 / 深色主题自动适配。

  • 无配置项、无运行时依赖、无构建步骤。

⚠️ 删除不可恢复

  • 删除不进入回收站,不提供撤销,不做二次备份。
  • 被删会话的对话记录、工具调用记录、上下文投影缓存与(勾选时的)子代理记录会一并消失。
  • 删之前请自行备份 ~/.dsh/sessions/<工作区文件夹>/<会话ID>/ 整个目录。
  • 只想保留归档、不想真删的话,请用 DSH 自带的归档功能,不要用本插件。

已知限制

  • 处于「打开中」状态的会话,其列表项要等 DSH 重启后才会消失。
    文件是实时删除的;插件刻意保留它的工作区归属,避免它在侧栏被踢进「未分组」。
    界面会明确提示这一点。
  • plugin/package.json 缺少 dsh.compatibility 字段。
    本项目在 DSH Desktop 0.1.x 系列上开发并实测,但尚未以字段形式固化兼容区间。
  • 删除路径没有自动化测试覆盖。
    plugin/_smoke.mjs 是只读冒烟脚本,只验证 /list 路由。

安装

见 README 的「安装」一节。

本项目尚未发布到 npm,请按 README 里的「从源码安装」方式安装。

完整变更

见 CHANGELOG.md。