聚焦 Windows 多盘场景下「扫得了却操作不了」的彻底修复:围绕清理 / 归档 / 冷备 / 恢复 / 打开整条链路,统一了路径安全准入策略,去掉对用户家目录(os.homedir())的硬编码假设;同步加固 Windows 下深层目录的删除鲁棒性,让 Android 开发者常见的 D:\workspace\...、E:\code\... 类工作区彻底成为一等公民。
修复
- Windows 多驱动器场景全面兑现:跨盘项目(如
D:\workspace\hf-android-palm\...)此前因 cleaner / archiver / bundler 各自硬卡 home 目录,操作一律被拒;现已统一改为「家目录 ∪ 历史扫描根」的并集准入,跨盘符场景全部放行cleaner:清理动作改为「项目根 + 白名单目录名」双重准入,跨盘项目可正常释放空间archiver/bundler:归档、打包冷备、从冷备恢复三条主流程同步统一准入ipc.openWithEditor/openWithTerminal:跨盘项目可正常一键打开编辑器与终端
- Windows 清理鲁棒性升级:补齐
node_modules/.gradle/build等深层目录在 Windows 上的删除短板,解决"显示已清理但磁盘没动"的体感问题- 自动应用
\\?\长路径前缀,绕过 MAX_PATH=260 限制 - 首次失败时递归清除只读属性(Gradle / npm 缓存常见)后重试一次
fs.rm启用maxRetries/retryDelay,缓解被 IDE / 杀软短暂占用导致的 EBUSYfreedBytes改为「删除前后实测差值」,避免「显示已清理但磁盘没动」的错觉
- 自动应用
scanner改用os.homedir()替代process.env.HOME,让「扫描入口为家目录时自动跳过系统目录」在 Windows 上也能正确生效(Windows 走的是USERPROFILE,原本一直未触发)
重构
- 新增
src/main/core/path-safety.ts集中维护路径准入逻辑,cleaner / archiver / bundler / ipc 复用同一套实现,杜绝多模块各写一套、漏改一处即埋雷的情况
完整变更见 CHANGELOG.md