安全与恢复
Cleanr 的目标是让清理可审阅、可恢复,但“移动到回收站”并不等于永久备份。 这一页说明它的安全边界。
清理时会发生什么
对于每一个已选条目,Cleanr 会:
- 先为已选条目创建 pending 执行清单;
- 确认路径位于扫描根目录内;
- 拒绝文件系统根目录、符号链接和受保护的 Cleanr 路径;
- 在适用时检查条目类型、修改时间、文件大小和目录指纹是否仍与扫描时一致;
- 将条目移动到操作系统回收站;
- 把结果和恢复定位信息写回执行清单。
每个条目都会在移动前立即校验。目标在扫描后发生变化时,该条目会安全失败并 保留在原处。
受保护路径
Cleanr 会排除:
- 作为整体清理目标的主目录;
- 当前 Cleanr 可执行文件和配置文件;
- Cleanr 状态目录,包括清理与恢复历史;
- 已配置的插件和语言目录。
主目录下的内容仍然可以扫描。这里的保护是为了避免把主目录本身或其他受保护 子树当成一个清理条目。
自动选择规则
只有同时满足以下条件时,条目才可能被预选:
- 规则置信度为
High; - 规则声明
default_selected = true; - 规则来自 Cleanr 内置包或显式信任的插件。
- 观测到的修改时间年龄满足共享的
[recommendations].preselect_after_days策略 (默认 90 天,设为0时关闭年龄门槛); - 扫描证据完整,且时间不在未来。
执行前仍然可以取消任何选择。下载文件、日志、临时文件、中等置信度条目和
未信任插件的匹配都需要手动选择。TUI、cleanr analyze、cleanr plan 和
cleanr dry-run 应用相同的推荐策略。
清单与历史
Cleanr 会保存:
- 每次清理的执行清单;
- 每次恢复尝试的恢复清单;
- 每个条目的成功、失败和回滚信息。
这些文件位于平台状态目录下的 cleanr 文件夹中。Cleanr 的恢复历史依赖它们,
如果之后可能需要撤销清理,请不要删除该目录。
恢复支持
目前支持程序化恢复:
- macOS 废纸篓;
- Windows 回收站;
- 兼容 Freedesktop 回收站规范的 Linux 桌面。
恢复是尽力而为。系统回收站清空后无法找回条目;原路径重新出现时也不会覆盖。 外部工具修改回收站元数据后,Cleanr 也可能无法定位原条目。
如果恢复失败,请先检查系统回收站和对应清单,再决定下一步。
确认与外部本地自动化
清理仍是 Cleanr 内部的本地审阅和确认流程。唯一面向外部 Agent 的集成契约是
cleanr analyze;Cleanr 不会通过这个契约暴露外部 Agent 清理端点或 CLI。
cleanr analyze 是只读操作:它扫描并输出证据,但不会创建清理计划或移动文件。
外部 Agent 的建议不会改变 Cleanr 的清理流程。
设置 cleanup.require_confirm = false 只会取消本地 /clean 的交互确认框,
不会把 analyze 变成执行接口。
实用安全清单
- 从范围较小的项目目录开始。
- 对不熟悉的候选项阅读风险说明。
- 用版本控制或备份保护源码和不可替代的数据。
- 确认清理正确前,不要清空系统回收站。
- 仍需恢复历史时,保留 Cleanr 状态目录。