Repository navigation
Releases
Releases · cyh3436332528/dsh-plugin-session-purge
v1.0.0 — 永久删除 DSH 会话,级联清理四类关联数据
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 Desktop0.1.x系列上开发并实测,但尚未以字段形式固化兼容区间。- 删除路径没有自动化测试覆盖。
plugin/_smoke.mjs是只读冒烟脚本,只验证/list路由。
安装
本项目尚未发布到 npm,请按 README 里的「从源码安装」方式安装。
完整变更
见 CHANGELOG.md。