# C2-003 undo_redo_save_invariants 状态:done 计划:`BLENDER_WASM_CORRECTIVE_TASK_PLAN` 阶段:P2 Gate:G2 依赖:`C2-002` lifecycleStatus:`done` blockedBy:`none` writeScope:`production_pilot` queueMutationAllowed:`false` ## 目标 为 atomic Main mutations 增加 bounded undo/redo history、dirty tracking 和 save/reopen invariant。undo/redo 必须恢复完整 snapshot 与 revision,save 清除 dirty 状态,reopen 必须恢复最后保存的 snapshot;失败命令不得创建 history entry。 ## 输入 - `web/protocol/corrective-main-transaction.ts` - `web/protocol/corrective-command-registry.ts` - `tests/golden/corrective/C2-002/manifest.json` - `tests/golden/corrective/C1-002/result-schema.json` - `tests/golden/corrective/C1-002/error-status-table.json` ## 交付 - bounded history store with undo/redo/save/reopen operations。 - focused positive/negative/persistence tests and deterministic receipts。 - protected-hash, typecheck, governance, manifest and status evidence。 - 不修改旧 M16 queue、manifest、registry、catalog、index 或历史 evidence。