freemo
0ca1303927
feat(sandbox): add checkpoint and rollback hooks
...
Introduce a lightweight checkpoint/rollback system for sandbox state
during plan execute and apply flows. CheckpointManager snapshots
the sandbox working directory before each phase and can restore it
on failure, giving the execution engine a reliable undo mechanism.
Key changes:
- SandboxCheckpoint model, Checkpointable protocol, and
CheckpointManager in infrastructure/sandbox/checkpoint.py
- PlanExecutor gains optional checkpoint_manager with pre/post
execute hooks and automatic rollback on failure
- PlanApplyService gains optional checkpoint_manager with pre-apply
checkpoint and rollback helper
- 12 BDD scenarios (features/sandbox_checkpoints.feature)
- 5 Robot Framework smoke tests (robot/sandbox_checkpoint_smoke.robot)
- ASV benchmarks for creation, rollback, and listing operations
- Reference documentation in docs/reference/sandbox.md
ISSUES CLOSED : #183
2026-02-27 23:08:55 +00:00
..
2025-10-31 16:18:53 -04:00
2026-02-22 15:02:19 +00:00
2026-02-14 12:16:39 -05:00
2026-02-13 19:01:55 +05:30
2026-02-24 19:12:01 +00:00
2026-02-24 17:57:18 +00:00
2026-02-18 10:49:26 +00:00
2026-02-25 10:30:42 +00:00
2026-02-19 11:29:34 +00:00
2026-02-22 14:18:24 -05:00
2026-02-22 14:18:24 -05:00
2026-02-17 13:54:27 +00:00
2026-02-26 09:10:35 +00:00
2026-02-25 10:48:05 -05:00
2026-02-25 10:01:57 +00:00
2026-02-20 15:57:21 +00:00
2026-02-22 10:19:43 +00:00
2026-02-22 14:18:24 -05:00
2026-02-20 15:57:21 +00:00
2026-02-22 14:18:24 -05:00
2026-02-21 16:27:40 +00:00
2026-02-18 03:27:00 +00:00
2026-02-26 02:47:14 +00:00
2026-02-12 22:01:51 +00:00
2026-02-22 14:18:24 -05:00
2025-12-11 13:55:55 -05:00
2026-02-18 12:18:03 +00:00
2026-02-25 19:38:43 -05:00
2026-02-24 20:11:42 +00:00
2026-02-20 15:57:21 +00:00
2026-02-20 21:46:46 +00:00
2026-02-25 10:48:05 -05:00
2026-02-20 22:19:26 +00:00
2026-02-23 10:44:58 +00:00
2026-02-25 12:08:01 -05:00
2026-02-16 21:35:54 +00:00
2026-02-13 13:05:20 -05:00
2026-02-13 13:05:20 -05:00
2026-02-20 15:57:21 +00:00
2026-02-22 16:40:06 +00:00
2026-02-22 11:07:35 +00:00
2026-02-27 09:47:10 -05:00
2026-02-23 22:19:19 +00:00
2026-02-26 16:13:44 +00:00
2026-02-26 16:13:44 +00:00
2026-02-25 10:02:38 +00:00
2026-02-20 20:38:53 +00:00
2026-02-25 10:04:31 +00:00
2026-02-25 10:48:05 -05:00
2026-02-21 10:18:26 -05:00
2026-02-21 18:11:31 +00:00
2026-02-20 08:50:08 -05:00
2026-02-22 14:18:24 -05:00
2026-02-20 15:57:21 +00:00
2026-02-22 10:15:25 +00:00
2026-02-25 04:50:43 +00:00
2026-02-25 19:38:43 -05:00
2026-02-25 21:26:19 +00:00
2026-02-26 02:01:47 +00:00
2026-02-25 13:17:26 +00:00
2026-02-21 10:19:45 -05:00
2026-02-20 21:46:46 +00:00
2026-02-20 15:57:21 +00:00
2026-02-23 09:47:00 -05:00
2026-02-21 10:18:26 -05:00
2026-02-20 15:57:21 +00:00
2026-02-20 15:57:21 +00:00
2026-02-22 00:43:08 -05:00
2026-02-22 15:13:43 +00:00
2026-02-27 09:47:10 -05:00
2026-02-17 02:24:35 +00:00
2026-02-17 02:24:35 +00:00
2026-02-22 14:18:24 -05:00
2026-02-17 02:35:20 +00:00
2026-02-20 15:57:21 +00:00
2026-02-25 14:00:04 -05:00
2026-02-16 23:56:55 -05:00
2026-02-18 03:27:00 +00:00
2026-02-18 03:27:00 +00:00
2026-02-17 02:35:20 +00:00
2026-02-22 00:43:08 -05:00
2026-02-27 09:47:10 -05:00
2026-02-23 03:11:12 +00:00
2026-02-16 16:46:54 -05:00
2026-02-20 08:48:33 -05:00
2026-02-22 14:18:24 -05:00
2026-02-23 22:20:44 +00:00
2026-02-23 22:20:44 +00:00
2026-02-17 02:35:20 +00:00
2026-02-18 00:10:15 +00:00
2026-02-16 16:46:54 -05:00
2026-02-15 10:44:14 -05:00
2026-02-18 03:27:00 +00:00
2026-02-15 15:19:09 +00:00
2026-02-15 15:19:09 +00:00
2026-02-27 23:08:55 +00:00
2026-02-20 03:31:43 +00:00
2026-02-21 10:18:26 -05:00
2026-02-26 14:30:43 +00:00
2026-02-22 00:43:08 -05:00
2026-02-21 16:32:03 +00:00
2026-02-25 10:05:57 +00:00
2026-02-26 20:33:20 +00:00
2026-02-13 19:24:24 +00:00
2026-02-19 11:15:18 +00:00
2026-02-25 10:06:27 +00:00
2026-02-20 01:10:19 +00:00
2026-02-14 03:50:40 +00:00
2026-02-22 14:18:24 -05:00
2026-02-26 10:57:07 +00:00
2026-02-22 14:18:24 -05:00
2026-02-24 17:57:18 +00:00
2026-02-20 08:50:08 -05:00
2026-02-26 12:29:49 +00:00
2026-02-21 16:30:40 +00:00
2026-02-27 20:09:26 +00:00
2026-02-14 03:54:14 +00:00
2026-02-17 10:13:19 +00:00
2026-02-19 22:07:56 +00:00
2026-02-16 21:35:54 +00:00
2026-02-20 08:49:30 -05:00
2026-02-14 18:55:48 +00:00
2026-02-22 14:18:24 -05:00
2026-02-17 20:28:20 +00:00
2026-02-21 10:23:31 -05:00
2026-02-22 14:18:24 -05:00
2026-02-20 15:57:21 +00:00
2026-02-25 10:03:21 +00:00
2026-02-20 02:54:08 +00:00
2026-02-25 10:48:05 -05:00