v0.4.16
DeskPet v0.4.16 — 🗑 删除走废纸篓 + AI tool chain 一气呵成 + 整理 macro
用户反馈两个痛点:① "把桌面文件移到我桌宠文件夹里" 要追多轮对话才能完成;② "删除文件的本质不是隐藏文件,而是移动到垃圾桶里"。这次三方诊断(架构师 + 审核官员 + tool 分析师并行)找到根因并一并修复。
🗑 删除文件 → macOS 废纸篓(可恢复)
- 之前:
fs.unlink/fs.rmdir永久删除,不可恢复,跟 macOS 用户对 "Delete" 的心智模型严重错位 - 现在:走
electron.shell.trashItem—— 跨平台 macOS Finder 废纸篓 / Windows 回收站 / Linux freedesktop trash - 文件可在 Finder → 废纸篓 → 右键放回 完整恢复
- 模态文案改为 "🗑 AI 想把这个移到废纸篓(可在 Finder 恢复)",不再宣称 "不可恢复"
- 副作用收益:非空目录现也能删 —— 整树进废纸篓,不再
ENOTEMPTY阻塞 - 废纸篓不可用时(Linux headless / 只读卷 / SMB)弹 fallback modal 让你选 "永久删 / 取消",绝不静默 fall-through 到 unlink
🚀 单轮 chain — AI 一气呵成不再追多轮
之前 AI 调一个 tool 就让出 control 等用户回话,把"移到桌宠文件夹"这种 3 步任务拆成 3 轮对话。这次:
- trust scope 扩展:
move_file现在跟write_file一样走 trust check —— 当 src + dest 都在默认信任范围(~/Documents、~/Downloads、~/Desktop、~/DeskPet、~/Projects等 HOME visible 顶级目录)时静默执行无 modal - system prompt 重写:删掉 "调之前在回复里先简短告知'我要删 X 你点确认'" 这条让 AI 中途让出 control 的引导;加 "一气呵成 (CRITICAL)" 段明确要求 AI 在单轮 response 内跑完整链
- batch 强制:≥2 个文件必须用
paths[]/moves[]/copies[]一次 modal 批准全部,禁止 loop 调 N 次
效果:"把桌面 X.png 移到 ~/DeskPet/assets/" → AI 单轮内 create_directory + move_file 跑完,0 个 modal,直接告知完成。
📋 新 tool: copy_file
move_file 的镜像但 src 保留。用途:复制模板 / 改前 snapshot / 把截图复制进项目目录但留底原文件。
- schema:
{ src, dest, overwrite? }单次 /{ copies: [{src, dest, overwrite?}, ...] }批量 - 实现:
fs.cp({ recursive: true, force: overwrite }) - 同
move_file的 trust 规则 —— 都在 trusted scope 内静默
🗂️ 新 macro tool: organize_files
整理类任务的一气呵成 —— 内部串 find_files + create_directory + 批量 move/copy,1 个 modal 解决。
- schema:
{ from, to, pattern?, action: 'move'|'copy', overwrite? } - 例:
"桌面所有 *.png 归档到 ~/Pictures/Screenshots/"→ AI 调一个organize_files而不是手动串 3 个 tool - AI 在 system prompt 里被显式鼓励 "整理类任务优先用这个 macro"
📦 总览
- AI 可用 tool 数:16 → 18(加
copy_file+organize_files) - 7 个相关文件改动,568 行新增 / 68 行删除
- 真实 user smoke test:5 个 case 全 pass
📥 下载
| 平台 | 文件 |
|---|---|
| Apple Silicon | DeskPet-0.4.16-arm64-mac.zip |
| Intel Mac | DeskPet-0.4.16-mac.zip |
| Windows | DeskPet-0.4.16-setup.exe |
| Linux AppImage | DeskPet-0.4.16-x86_64.AppImage |
| Linux deb | DeskPet-0.4.16_amd64.deb |
英文版加 -EN 前缀。一键装:
curl -fsSL https://raw.githubusercontent.com/Ice-teapop/desktop-pet/main/scripts/install.sh | bash🙏 鸣谢
感谢 @rullerzhou-afk 开源 pet-forge(MIT)工作流,本项目用它从零搭建 deskpet-cc 全套 21 个 sprite。