Skip to content

Releases

v1.2.0 — 永久删除 + 多选批量

Choose a tag to compare

@kaelorvyn kaelorvyn released this 16 Sep 12:26

新增「永久删除」

把会话文件从磁盘上删掉(整目录),并报告这次释放了多少空间。

  • DSH 没有会话索引数据库(列表是扫磁盘得来的),所以删掉目录就彻底消失
  • 同一个 id 可能在多个分组目录下各有一份(会话移动过分组时会发生),会把所有同名目录都删掉,不留残留
  • 磁盘上已经没有的条目按「幽灵条目」处理:只移出归档列表,不报错

新增多选与批量

顶部「多选」→ 每行出现复选框 → 上方提供「全选 / 批量恢复 / 永久删除」。

批量是一条命令带多个 id,不是循环调 N 次 —— 宿主侧一次校验、一次事务、汇总一个总体积。

安全设计(删除不可逆)

  • id 白名单 ^session-[A-Za-z0-9._-]+$,从根上杜绝目录穿越
  • 解析后的绝对路径必须仍在会话根目录内(二次防线)
  • 只允许删归档集合里的会话 —— 正在使用的会话结构上就删不到
  • 界面里当前会话不参与多选,也不给删除按钮
  • 删除按钮要点两次(「永久删除」→「确认删除」),中途可取消
  • 批量时一个 id 非法即整批拒绝,不做「删一半」
  • 单次上限 1000 个 id

测试

新增 test/,两个不依赖测试框架的纯 Node 脚本,共 65 项断言:

node test/purge.test.mjs     # 36 项:原子性 / 去重 / 目录穿越 / 幽灵条目 / 批上限
node test/client-smoke.mjs   # 29 项:真求值 bundle 并渲染多选模式做断言

dsh-archived-sessions v1.0.0

Choose a tag to compare

@kaelorvyn kaelorvyn released this 10 Sep 10:34

DSH 客户端插件:设置面板新增「已归档会话」页,列出全部已归档会话并一键恢复。

适用环境:DSH Desktop(静态客户端插件,dsh.bundle.patch 注入 + 客户端 lib/client.js)

安装

# 解压后指向插件目录安装(DSH 会自动挂 bundle 行)
dsh plugin --profile desktop add <解压出的目录>
# 装完重启一次 DSH Desktop(bundles 只在启动时读取)

文件

文件 说明
dsh-archived-sessions-v1.0.0.zip 插件源码包(含 package.json / cordis.patch.yml / lib/),解压即用

源码以对应 tag 的提交为准。