审查时间墙与收尾预算
区分外层硬超时、轮次准入与验证余量,理解中断后的计时。
审查有多层时间约束。外层 qwen review run 超时会终止进程;内部计划时间墙只阻止新审计轮次或验证工作进入,留时间形成结果,不中断已经在运行的 agent。
默认时间墙
计划捕获时按 diff 规模记录小型 8 小时、大型 12 小时、巨大 16 小时。显式 --deadline 分钟值可用于 qwen review fetch-pr、capture-local、plan-diff;none 不记录时间墙,但轮数上限仍在。
/review 斜杠命令不接受 --deadline,会警告并丢弃它及可能的参数。不要写 /review --deadline 123 来选择 PR,数字可能作为被丢弃的 deadline 值。斜杠入口需通过运行环境提供时间约束。
环境覆盖
| 环境变量 | 用途 |
|---|---|
| QWEN_REVIEW_DEADLINE_EPOCH | 会被终止的 Unix 秒时间点,优先于计划时间墙 |
| QWEN_REVIEW_DEADLINE_RESERVE_SECONDS | 为末轮验证、compose 和提交预留;环境 deadline 的默认值 4800,0 只保留轮次估算 |
| QWEN_REVIEW_DEADLINE_COMPOSE_FLOOR_SECONDS | 验证准入的最小剩余量,默认 1200;0 完全关闭这一门槛 |
没有 reserve 覆盖时,计划时间墙保留自身三分之一,上限 4800 秒、下限为 compose floor。剩余时间装不下下一轮和预留量,就拒绝新反向审计;若只剩 compose floor 或更少,verify prompt 构建拒绝,返回退出码 4 和 VERIFY BUDGET 说明。
已有发现保留未验证标签,最终结果披露缺口,原本可 Approve 的结论降至 Comment。compose floor 的 0 会连过 deadline 后的此项门槛也关闭,不能理解为仍有默认二十分钟保护。
短 deadline 与巨大差异
捕获时会拒绝装不下两轮收敛和预留量的显式时间墙,默认参数下一般九十分钟及以下不够;环境覆盖可提高要求。即使刚超过门槛,前置发现和验证也可能消耗大部分时间,使第一轮审计无法进入。
巨大 diff 只有遇到显式 deadline(环境 epoch 或捕获参数)才把反向审计上限从五轮降至三轮;默认十六小时时间墙本身不触发该降级。记录值不会因恢复时移除环境变量就自动放大。
停顿也消耗预算
时间墙包括会话闲置;轮次估价还会参考之前两次准入的间隔,因此长时间停顿既减少余额,也可能提高下一轮所需预算。不能把“墙上还剩几小时”直接当作仍能启动下一轮。
新会话 --resume 重置中断尝试的时间墙和估价,同会话继续旧时钟。恢复时新的 --deadline 不改原计划墙;要重新捕获才记录新值。外层 run 的 --timeout-minutes 不会自动导出内部 deadline,所以可以先被硬超时杀掉,而来不及按内部墙收尾。
排障
先看实际使用的是环境 epoch 还是计划墙,再看 reserve、compose floor 和轮次估算。无效环境 deadline 回退计划;计划字段损坏可能使内部不再限时,外层超时仍独立生效。
已经构建中的任务不会被软门槛抢占。需要稳定 CI 退出时,应同时理解无头审查的进程超时和结果退出码,而不是只观察模型的进度文字。