變更邊界
文件與行數上限限制進化變更的規模。路徑約束、驗證命令和恢復策略分別控制“改哪裏”“是否有效”和“失敗後怎麼辦”,不能互相替代。
全局硬上限
| 配置 | 默認值 | 作用 |
|---|---|---|
EVOLVER_HARD_CAP_FILES | 60 | 單輪觸及文件數的全局上限。 |
EVOLVER_HARD_CAP_LINES | 20000 | 單輪變更行數的全局上限。 |
環境變量接受正整數;缺失或無效值回退到默認值。無論有沒有選中 Gene,全局硬上限都參與檢查。Gene 的 max_files 和禁止路徑在此基礎上增加約束;全局上限不是日常任務的目標規模。
例如,小範圍修復可以收緊為:
text
EVOLVER_HARD_CAP_FILES=12
EVOLVER_HARD_CAP_LINES=1200
同時在任務中明確允許文件、禁止目錄和驗證命令。12 個錯誤文件仍然是錯誤變更,數量合規不能證明路徑和內容正確。
運行前保留基線
記錄 Git HEAD、已跟蹤差異、未跟蹤文件和本次允許觸碰的範圍。在獨立工作副本中執行,並明確生成物、依賴安裝和格式化是否屬於任務。驗證命令也會執行代碼,必須審查其文件與網絡影響。
EVOLVER_ROLLBACK_MODE 在 v2 已失效。不能用舊的 hard、stash、none 值推斷當前執行器的恢復行為,也不要用舊 EVOLVE_GIT_RESET 作為恢復保障。
區分恢復方式
普通執行按對應 worktree、快照與 recovery 策略處理。恢復前檢查實際週期和文件狀態,不把進程退出當作恢復完成。
autoexec --solo 是另一個顯式選擇:失敗週期的恢復會使用 git reset --hard 與 git clean -fd,丟棄目標工作區的修改和未跟蹤文件。只在乾淨、有備份且專門用於該任務的工作副本使用,不在共用或已有未提交工作的目錄中使用。
超限或驗證失敗
- 停止繼續執行,保存週期 ID、日誌和 diff。
- 對照基線,分清已有工作、本輪變更與外部副作用。
- 檢查是否發生部分執行、提交或遠端寫入。
- 只恢復本輪擁有的改動,獨立處理遠端補償。
- 重新驗證原問題和恢復後的狀態,再決定是否重試。
頻繁超限時拆分任務或修正選擇策略,不通過提高上限掩蓋範圍失控。Git 恢復不能撤銷已經發送的消息、發佈或積分交易。