上周五下午,本来准备提交代码,突然想起昨天让AI助手改的一个配置好像不对劲。手一抖,git push出去了。三分钟后,测试环境直接挂了。老板的消息弹窗像定时冲击波一样跳出来:"线上怎么502了?"
那一刻,恨不得给自己一个"后悔药"按钮,一键回到改代码之前的状态。
巧了,这周Qwen Code 0.16.0更新的几个新特性,简直就是程序员的"数字后悔药"。今天不聊那些高大上的架构设计,就聊四个让人直呼"早该这样"的小功能:Auto Approval、Worktree Isolation、/rewind 文件恢复,还有 /stuck + /doctor 诊断套装。

一、Auto Approval:终于不用当"确认按钮点击员"了
以前用AI写代码,有个很魔幻的体验:你让它"把项目里的console.log换成logger.info",它每改一个文件都要问你:"确定要写这个文件吗?"
我就奇了怪了——明明是你让它改的,它还得反问你一句。这么来回个几十次,手指都快抽筋了。
Auto Approval的精髓:用一个小模型当"风险审核员"。读数文件、跑测试、小范围修改?自动通过。删库、执行未知脚本、改核心配置?弹窗确认。
# 开启低风险自动批准 /settings auto-approval=low-risk # 然后让它干活 /goal "把所有单元测试从 Jest 迁移到 Vitest"

这时候可以去泡杯咖啡,回来一看:197个文件改完了,3个高风险操作等着确认。效率提升不是一点半点。
这倒让人想起边沁的"圆形监狱"理论——监控不是为了压制,而是为了让系统更高效运转。Auto Approval也是同理:不是取消审核,而是把审核智能化、分层化。
二、Worktree Isolation:给代码加了个"平行宇宙"
有没有过这种经历:让AI帮你重构一个大模块,结果它改着改着方向跑偏了,主分支被改得面目全非,想回退都不知道从哪下手。
Worktree Isolation就是为了解决这个痛点来的。简单说,它让AI在一个独立的Git worktree里折腾,改好了再merge,改崩了直接丢弃,主分支稳如老狗。

上周刚实测了一个场景:迁移一个中型项目的测试框架。
# 1. 创建实验分支 /branch experiment/vitest-migration # 2. 进入 worktree 模式(自动创建隔离环境) /worktree enable # 3. 让 AI 放手去改 /goal "迁移所有测试到 Vitest" # 4. 验收结果 # ✅ 满意:/worktree merge # ❌ 不满意:/worktree discard + /rewind 重来
整个过程,main分支连一个字符都没变。这种"大胆试错、随时回滚"的安全感,确实让人上瘾。
三、/rewind 文件恢复:时间机器,程序员版
如果说Worktree是"空间隔离",那/rewind就是"时间旅行"。
以前的/rewind只能回滚对话历史,现在升级后,连文件内容都能一起恢复。想象一下:AI改了5个文件,你发现第三步的逻辑有问题,直接/rewind到第三步之前,代码和对话一起回到那个时间点。
# 回滚到第 3 轮操作,同时恢复文件 /rewind --to=3 --restore=both # 只恢复对话,保留代码修改 /rewind --to=3 --restore=conversation # 只恢复代码,保留对话历史 /rewind --to=3 --restore=code
最贴心的是,它会告诉你"这次回滚会影响 +12 -8 行代码,涉及 3 个文件",让你心里有数再操作。

海德格尔说"向死而生",程序员大概是"向 bug 而生"。既然出错不可避免,那就让"后悔"变得简单一点。
四、/stuck + /doctor:当AI"卡住"时,不再靠玄学排查
用过AI编程工具的都知道,有时候它会突然"沉默"。是网络问题?token用完了?还是它真的在思考人生?
以前只能靠猜,现在两个命令解决问题:
| 命令 | 作用 | 适用场景 |
|---|---|---|
/stuck | 会话级诊断:检查rate limit、MCP连接、内存压力 | AI突然没反应时 |
/doctor | 内存级诊断:查看记忆文件健康度、识别异常大文件 | 长期运行后响应变慢 |
上周遇到一个案例:AI在处理一个大项目时越来越慢。/doctor一查,发现有个记忆文件膨胀到了200MB,清理之后秒回血。
# 检查会话状态 /stuck # 输出:⚠️ 检测到 MCP 服务响应超时,建议重启或检查网络 # 检查内存健康 /doctor # 输出:
