Skip to content

Releases

v1.3.0 — 工作区批量删除与回收站

Choose a tag to compare

@MaYucong6 MaYucong6 released this 20 Oct 07:53

新增:工作区批量删除 + 回收站

设置页从单一页面改为三个标签页:插件 / 工作区 / 回收站。

工作区标签页

  • 列出所有 DSH 工作区(标题、路径、会话数)
  • 多选、全选、全不选后批量删除
  • 软删除:只取消工作区注册,并把会话目录移入回收站 —— 数据不丢失

回收站标签页

  • 列出被删除的工作区会话目录
  • 恢复选中项:把会话目录还原回 ~/.dsh/sessions/
  • 一键清空:永久删除回收站全部内容(红色二次确认)

删除是怎么实现的

删除工作区时执行两步,只移动、不删除:

  1. workspaceRegistry.delete(id) — DSH 移除该工作区注册(侧边栏消失)
  2. 把 ~/.dsh/sessions/<编码后的路径>/ 移到 ~/.dsh/.trash/<时间戳>__<编码>/

因此回收站里的条目可以原样恢复;只有点「一键清空」才真正 rm -rf。

会话目录名由工作区路径编码而来:分隔符 : \ / 折叠为单个 -,非 ASCII 字符转为 ~XXXX(前缀无后缀),整体包裹为 --…--。该规则已对着真实磁盘逐字节验证。

Host 新增 API

方法 路径
GET /dsh-batch-uninstall/workspaces.json
POST /dsh-batch-uninstall/workspaces/delete
GET /dsh-batch-uninstall/trash.json
POST /dsh-batch-uninstall/trash/restore
POST /dsh-batch-uninstall/trash/empty

保持不变

  • 插件批量卸载、核心插件锁定保护、风险分级、二次确认、实时进度
  • Client 半只注入 slots,样式内联,apply() 全程异常隔离 —— 插件失效不会影响 DSH 启动

安装

dsh plugin --profile <你的profile> add dsh-batch-uninstall

或

dsh plugin --profile <你的profile> add github:MaYucong6/dsh-batch-uninstall

安装后重启 DSH,在 设置 → 批量卸载 打开。

版本历史

版本 变更
v1.3.0 工作区批量删除(软删除到回收站)与回收站管理(本版)
v1.2.3 用 slots.inject 等待 settings.section 就绪再注册
v1.2.2 版本号对齐发布
v1.2.1 修复文字在浅色主题下隐形
v1.2.0 内置 DSH 设置页
v1.0.0 规范 DSH 插件形态

v1.2.3 — 修复重启后设置页需手动开关插件才显示

Choose a tag to compare

@MaYucong6 MaYucong6 released this 18 Oct 02:08

修复

问题:每次重启 DSH,都需要手动关闭再开启插件,「批量卸载」设置页才会出现。

根因:冷启动时 settings.section 这个 slot 尚未被设置界面声明。旧代码直接调用 slots.register(),在 slot 不存在时注册被静默丢弃,所以设置页不显示。手动开关插件之所以能生效,是因为重跑 apply() 时 slot 已就绪。

修复:改用 DSH 官方 API,等待 slot 就绪后再注册:

ctx.slots.inject('settings.section', function () {
  registerSection()
})

这与 dshmarket 的做法一致(它也通过 slots.inject 等待自己的座位)。

安装

dsh plugin --profile <你的profile> add dsh-batch-uninstall

安装后重启 DSH,在 设置 → 批量卸载 打开 —— 应该直接出现,无需手动开关插件。

完整功能

  • 内置设置页 — 不需要浏览器地址、Python 或任何外部文件
  • 多选批量卸载 — 逐个勾选、全选、全不选,一次卸载任意多个
  • 二次确认 — 红色确认框列出全部目标,防误删
  • 实时进度 — 进度条 + 逐条成功/失败日志
  • 核心保护 — @deepseek-ai/dsh-* 等系统 bundle 锁定置灰,无法勾选
  • 风险分级 — 高 / 中 / 低三档提示
  • 主题自适应 — 跟随 DSH 浅色 / 深色主题
  • 中英双语 — 跟随 DSH 语言设置

版本历史

版本 变更
v1.2.3 修复重启后设置页需手动开关插件才显示(本版)
v1.2.2 版本号对齐发布
v1.2.1 修复文字在浅色主题下隐形(改用 inherit,不再依赖主题变量名)
v1.2.0 内置 DSH 设置页;修正 inject 声明导致的 boot 失败
v1.0.0 规范 DSH 插件形态(npm + Cordis bundle + HTTP API)

相关

v1.2.1 — 内置设置页的批量卸载器

Choose a tag to compare

@MaYucong6 MaYucong6 released this 17 Oct 15:53

与 v1.2.1 功能完全相同 —— 这是一次版本号对齐发布。

为什么发这个版本

v1.2.1 打完 tag 之后,仓库又提交了 .gitignore 改动,但版本号没有 bump。
插件市场因此显示「有新提交(未发版)」——它检测到 commit 前进了、但
package.json 的 version 没变,无法确认这是不是正式发布。

本版把版本号推进到 1.2.2,市场即可正确识别为正式发布。

安装

dsh plugin --profile <你的profile> add github:MaYucong6/dsh-batch-uninstall

安装后重启 DSH,在 设置 → 批量卸载 打开。

功能

  • 内置设置页 — 不需要浏览器地址、Python 或任何外部文件
  • 多选批量卸载 — 逐个勾选、全选、全不选,一次卸载任意多个
  • 二次确认 — 红色确认框列出全部目标,防误删
  • 实时进度 — 进度条 + 逐条成功/失败日志
  • 核心保护 — @deepseek-ai/dsh-* 等系统 bundle 锁定置灰,无法勾选
  • 风险分级 — 高 / 中 / 低三档提示
  • 主题自适应 — 跟随 DSH 浅色 / 深色主题
  • 中英双语 — 跟随 DSH 语言设置

版本历史

  • v1.2.2 — 版本号对齐发布(本版)
  • v1.2.1 — 弃用会被解析成白色的主题变量,改用 inherit,修复文字隐形
  • v1.2.0 — 内置 DSH 设置页;修正 inject 声明导致的 boot 失败
  • v1.0.0 — 规范 DSH 插件形态

相关

v1.2.1 — 内置设置页的批量卸载器

Choose a tag to compare

@MaYucong6 MaYucong6 released this 17 Oct 05:06

dsh-batch-uninstall v1.2.1

Geek 风格的 DSH 批量插件卸载器 — 内置在设置页里,勾选多个插件一次性移除。

安装

dsh plugin --profile add github:MaYucong6/dsh-batch-uninstall

安装后重启 DSH,在 设置 → 批量卸载 打开。

功能

  • 内置设置页,不需要浏览器地址、Python 或任何外部文件
  • 多选批量卸载(逐个勾选 / 全选 / 全不选)
  • 二次确认 + 实时进度条 + 逐条日志
  • 核心保护:@deepseek-ai/dsh-* 系统 bundle 锁定置灰
  • 风险分级、主题自适应、中英双语

修复记录

  • v1.2.1 — 弃用会解析成白色的主题变量,改用 inherit,修复文字在浅色主题下隐形
  • v1.2.0 — 内置 DSH 设置页;修正 inject 声明(此前误将 client builtin styles 当作服务注入,导致 boot 失败)
  • v1.0.0 — 规范 DSH 插件形态(npm + Cordis bundle + HTTP API)

相关