Skip to content

v0.2.0

Choose a tag to compare

@Motues Motues released this 14 Oct 10:40
· 6 commits to main since this release

新增

  • 侧边栏会话行 hover 卡片补一节属于本插件的磁盘事实:体积 / 文件数 / 原目录 / 是否在回收站(宿主新增
    describe 端点,30 秒 TTL 缓存 + 并发去重)。
  • 行内「移入回收站」按钮:会话行 hover 时直接删,不必点开 ⋯ 再点一次;形状与官方归档 / 置顶按钮一致
    (16×16 朴素按钮、透明底,只换前景色)。
  • 删除后的「撤销」提示:软删除成功给 5 秒撤销机会,撤销走 restore;失败只把原因写在同一条提示里。
  • ⋯ 菜单新增复制路径 / 在资源管理器中显示(新增 open 端点;路径只能由宿主算,客户端不传路径)。
  • 会话面板新增搜索框与时间过滤(全部 / 最近 7 天),只影响显示 —— 计数、勾选与批量动作仍按整个页签算。
  • 分组标题新增**「整个工作区」菜单**:一次归档 / 移入回收站的范围跨三个页签;工作区里有正在跑的会话时危险项禁用。
  • 「运行中」胶囊:宿主用官方 workspace/session-activity 判定,快照里给出 activeSessionIds,正在跑的会话
    在列表与工作区动作里都预先禁用危险项(不用等点下去才回一句"请先停止它")。
  • 新增磁盘占用页签(usage 端点,只读):整机聚合 + 按工作区横条 + 「最占地方的会话」/「最久没打开的会话」
    两个榜单,榜单每行可直接归档;页签自带只重拉这一份数据的刷新按钮。
  • 回收站保留策略:保留天数下拉(7 / 30 / 90 天,或 1–3650 的自定义值)+ 「将删除 N 个会话 · X MB」预览
    (trash-stats)+ 「清理 N 天前」(purge-older-than)。永不自动执行:每次都要先看预览、再过一道
    需要勾"我明白这无法撤销"的确认弹窗。

变更

  • 会话面板从 3 个页签扩成 5 个:已归档 / 已置顶 / 回收站 / 磁盘占用 / 配置。
  • 配置页的排序从分段控件改成下拉(5 档:原顺序 / 标题 / 体积 / 创建时间 / 删除时间);下拉的选中
    对勾由 Menu 画在行尾,与 DSH 自己的菜单一致。
  • 「已归档」页签每行 ⋯ 菜单的第三项:原来的"永久删除"走的是 purge,而归档会话不在回收站 ——
    点下去只会报"回收站里没有这个会话";现在改成真正可用的「移入回收站」(trash,随时能恢复)。
  • 端点从 9 条涨到 14 条(新增 describe / trash-stats / purge-older-than / usage / open)。
  • 包管理器从 npm 换成 pnpm 11:pnpm-lock.yaml 与 pnpm-workspace.yaml 进 git,package-lock.json 删除;
    贡献者命令相应改成 pnpm install / pnpm run build。

修复

  • 磁盘占用榜单上已归档的会话右侧按钮仍然是「归档」—— 归档集合是幂等的,再点一次既不报错也不改变任何东西,
    只能被当成"点了没反应";现在改成「取消归档」,并在动作完成后重拉一次占用视图(usage 不在快照里,
    不重拉那行的状态胶囊还是旧的)。
  • 每次进设置页都会先空白、闪一下"读取中…"才出现会话:设置外壳每次进来都是重新挂载,快照从 null 起步。
    现在有一份模块级缓存(src/client/snapshot.ts),首帧直接画上一份,后台照常刷新;变更端点的回包也顺手写进缓存。
  • 下拉的选中对勾画在文字前面(MenuItemButton 的 icon 位置固定),与 DSH 其它菜单不一致 —— 改到行尾。

内部

  • 新增 CI(.github/workflows/ci.yml):pnpm install --frozen-lockfile → pnpm run check → pnpm test
    → git diff --exit-code -- lib/。最后一道是"改了 src/ 忘了重新构建 lib/"这个静默事故唯一的自动闸
    (构建是确定性的:同输入同字节)。runner 上没有 DSH,activation.mjs 会打印 SKIP —— 那一项只在真机上有效。
  • scripts/smoke.mjs 在 <DSH_HOME>/storages/workspace.json 不存在时降级成空表(CI runner / 没装过 DSH
    的机器),别的错误照旧抛;本仓库的断言不依赖真实数据。
  • 引入 Prettier(pnpm run format / format:check,后者纳入 pnpm run check):Tab 缩进、双引号、
    无尾逗号、printWidth 140、忽略 lib/ 与 *.md。
  • 新增 CHANGELOG.md 与 scripts/release.mjs(校验干净树 + 跑自检 + 比对 registry 上的 shasum → 打 tag
    并推送 → 用 GITHUB_TOKEN 调 REST 建 Release)。发布包不再带上 scripts/(files 白名单收细)。
  • __trash.json 补上正式 schema 说明与 version 迁移约定(src/host/trash.ts 头部注释)。