Sora-bluesky
10ee9819f9
fix(checkpoints): do not feed container paths into host checkpoint storage
...
With a container terminal backend (docker, singularity, modal, daytona,
vercel_sandbox, container plugins) file-tool paths keep container semantics,
but the checkpoint hook handed them to the host-side CheckpointManager: a path
that does not exist on the host produced a useless snapshot attempt, one that
happens to exist on the host snapshotted the wrong tree, the destructive
terminal branch did the same with the container cwd, and the post-write ledger
hashed the container path on the host so safe restore could trust unrelated
host content. Every failure was swallowed, so a docker user saw "No checkpoints
found for /home/admin" with nothing behind it.
Classify the task's backend the way the file tools do (_uses_container_paths)
and, for container-backed tasks, take no checkpoint and record no ledger entry;
/rollback prints the reason and refuses diff and restore for that session (a
host checkpoint that predates it belongs to another tree), and the
rollback.restore RPC returns the same reason as a failed restore. The refusal
classifies the session's configured backend directly (in the gateway under the
session's own identity and profile scope, as a turn binds them), so it holds
before the first mutation of the session. Local and ssh backends are untouched. This stops the
false protection; it does not add rollback support for containers (translating
bind mounts is a separate contract).
Tests: eight cases in tests/agent/test_tool_executor_checkpoint_paths.py through
the production classifier (a fake docker environment registered for the task, or
the configured backend): missing host path, colliding host tree (POSIX),
destructive terminal command, post-write ledger on a real host file, /rollback
and rollback.restore refusal in a fresh session, the local session still
restoring, and unchanged local behavior. Five fail on main on Windows, where the
collision case is skipped.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
(cherry picked from commit 97a5709e4980c8f85a5a640e6e5e11fe8f94affa)
2026-09-18 10:38:08 -07:00
..
2026-09-13 09:40:44 -07:00
2026-09-18 09:19:04 -07:00
2026-09-15 21:46:37 -07:00
2026-09-17 11:21:42 -07:00
2026-09-18 10:32:15 -07:00
2026-09-14 09:02:28 -07:00
2026-09-15 04:11:11 -07:00
2026-09-18 09:50:52 -07:00
2026-09-18 09:49:46 -07:00
2026-09-15 04:11:11 -07:00
2026-09-18 10:32:48 -07:00
2026-09-15 03:58:44 -07:00
2026-09-15 03:58:44 -07:00
2026-09-17 00:02:09 -07:00
2026-09-17 12:28:25 +05:30
2026-09-11 03:45:33 +05:30
2026-09-15 20:44:42 +05:30
2026-09-15 04:57:29 -07:00
2026-09-18 10:00:29 -07:00
2026-09-16 14:34:59 -07:00
2026-09-15 20:44:42 +05:30
2026-09-15 04:12:13 -07:00
2026-09-15 04:12:13 -07:00
2026-09-18 10:17:59 -07:00
2026-09-16 14:34:59 -07:00
2026-09-12 22:07:41 -07:00
2026-09-15 03:38:29 -07:00
2026-09-12 22:07:41 -07:00
2026-09-16 14:34:59 -07:00
2026-09-18 10:17:59 -07:00
2026-09-17 00:34:50 -05:00
2026-09-15 18:26:38 -07:00
2026-09-15 19:06:54 -07:00
2026-09-16 16:53:40 -07:00
2026-09-08 03:06:30 -07:00
2026-09-15 18:24:22 -07:00
2026-09-12 08:25:54 -07:00
2026-09-18 10:24:15 -07:00
2026-09-12 08:25:54 -07:00
2026-09-15 04:12:13 -07:00
2026-09-18 01:43:35 +05:30
2026-09-18 10:38:08 -07:00
2026-09-15 06:29:50 -07:00
2026-09-15 04:12:13 -07:00
2026-09-15 14:52:26 +05:30
2026-09-17 14:24:53 -04:00
2026-09-15 18:25:46 -07:00
2026-09-18 01:43:35 +05:30
2026-09-17 09:06:59 -07:00
2026-09-12 22:00:02 -07:00
2026-09-18 01:43:35 +05:30
2026-09-08 13:39:17 -07:00
2026-09-15 04:08:53 -07:00
2026-09-18 09:55:21 -07:00
2026-09-15 04:12:13 -07:00
2026-09-17 18:36:22 +05:30
2026-09-13 20:50:10 -07:00
2026-09-15 19:05:29 -07:00
2026-09-15 19:05:29 -07:00
2026-09-15 06:29:50 -07:00
2026-09-12 08:25:36 -07:00
2026-09-13 20:41:41 -07:00
2026-09-12 16:17:04 -07:00
2026-09-18 10:36:11 -07:00
2026-09-15 06:29:50 -07:00
2026-09-15 21:47:48 -07:00
2026-09-15 05:25:39 -07:00
2026-09-15 00:41:13 +05:30
2026-09-18 09:41:02 -07:00
2026-09-18 10:15:43 -07:00
2026-09-17 09:06:59 -07:00
2026-09-16 08:57:18 -07:00
2026-09-13 05:07:11 -07:00
2026-09-13 05:09:06 -07:00
2026-09-18 17:10:12 +02:00
2026-09-15 05:38:31 -07:00
2026-09-18 09:38:01 -07:00
2026-09-13 05:07:11 -07:00
2026-09-13 09:18:02 -07:00
2026-09-16 23:13:20 -04:00
2026-09-10 01:25:45 -07:00
2026-09-15 04:12:13 -07:00
2026-09-18 09:56:28 -07:00
2026-09-13 05:09:06 -07:00
2026-09-16 17:02:34 -07:00
2026-09-16 23:19:45 +05:30
2026-09-18 21:47:13 +05:30
2026-09-15 12:06:08 -07:00
2026-09-17 19:00:40 -04:00
2026-09-06 05:41:46 -07:00
2026-09-13 20:51:06 -07:00
2026-09-12 21:39:10 -07:00
2026-09-14 08:10:36 -07:00
2026-09-18 15:40:37 +05:30
2026-09-15 04:12:13 -07:00
2026-09-16 08:57:18 -07:00
2026-09-16 00:33:03 -07:00
2026-09-16 08:57:18 -07:00
2026-09-16 08:57:18 -07:00
2026-09-15 03:44:36 -07:00
2026-09-15 04:07:13 -07:00
2026-09-18 09:57:38 -07:00
2026-09-18 10:24:59 -07:00
2026-09-18 10:01:01 -07:00
2026-09-16 16:43:08 -07:00
2026-09-07 00:51:41 -07:00
2026-09-18 10:00:29 -07:00
2026-09-17 20:56:27 +05:30
2026-09-16 00:32:15 -07:00
2026-09-18 15:40:37 +05:30
2026-09-16 16:58:43 -07:00
2026-09-18 10:21:42 -07:00
2026-09-07 14:16:57 -07:00
2026-09-14 16:14:33 -07:00
2026-09-16 16:51:45 -07:00
2026-09-18 10:34:31 -07:00
2026-09-18 09:48:41 -07:00
2026-09-18 09:29:44 -07:00
2026-09-15 18:35:32 -07:00
2026-09-07 04:46:54 -07:00
2026-09-15 18:34:40 -07:00
2026-09-07 04:46:54 -07:00
2026-09-07 04:46:54 -07:00
2026-09-15 18:33:43 -07:00
2026-09-09 12:18:58 -07:00
2026-09-18 09:50:19 -07:00
2026-09-16 16:56:22 -07:00
2026-09-17 20:56:27 +05:30
2026-09-15 04:12:13 -07:00
2026-09-18 10:10:05 -07:00
2026-09-15 04:12:13 -07:00
2026-09-17 09:19:19 -07:00
2026-09-15 18:35:59 -07:00
2026-09-12 08:25:54 -07:00
2026-09-18 15:40:37 +05:30
2026-09-15 04:12:13 -07:00
2026-09-16 16:18:17 -05:00
2026-09-18 10:11:46 -07:00
2026-09-18 09:38:34 -07:00
2026-09-17 08:44:33 -07:00
2026-09-16 15:16:09 -05:00
2026-09-18 10:01:01 -07:00
2026-09-18 10:11:46 -07:00
2026-09-15 19:06:54 -07:00
2026-09-18 09:23:13 -07:00
2026-09-15 03:38:29 -07:00
2026-09-17 09:03:29 -07:00
2026-09-16 17:11:01 -07:00
2026-09-15 05:34:29 -07:00
2026-09-13 05:07:11 -07:00
2026-09-10 04:22:38 -07:00
2026-09-13 20:54:50 -07:00
2026-09-15 04:12:13 -07:00
2026-09-15 03:39:45 -07:00
2026-09-18 15:40:37 +05:30
2026-09-18 15:40:37 +05:30
2026-09-18 10:20:32 -07:00
2026-09-18 15:40:37 +05:30
2026-09-10 09:11:00 -07:00
2026-09-07 08:08:04 -07:00
2026-09-12 01:35:05 -07:00
2026-09-12 01:35:05 -07:00
2026-09-15 18:58:02 -07:00
2026-09-18 15:40:37 +05:30
2026-09-14 22:01:32 +00:00
2026-09-11 03:45:31 +05:30
2026-09-10 18:11:25 -07:00
2026-09-16 18:12:34 -07:00
2026-09-16 00:32:15 -07:00
2026-09-18 09:43:19 -07:00
2026-09-16 17:15:38 -07:00
2026-09-17 00:11:27 -07:00
2026-09-17 00:11:27 -07:00
2026-09-17 00:11:27 -07:00
2026-09-18 09:43:19 -07:00
2026-09-18 10:01:01 -07:00
2026-09-15 18:48:59 -07:00
2026-09-17 09:03:29 -07:00
2026-09-16 17:08:25 -07:00
2026-09-17 00:11:27 -07:00
2026-09-17 00:11:27 -07:00
2026-09-17 18:36:20 -07:00
2026-09-11 03:45:31 +05:30
2026-09-16 00:32:15 -07:00
2026-09-13 14:33:11 -07:00
2026-09-16 14:21:14 -07:00
2026-09-16 14:34:59 -07:00
2026-09-06 05:34:01 -07:00
2026-09-18 10:01:01 -07:00
2026-09-16 14:34:22 -07:00
2026-09-18 10:18:40 -07:00
2026-09-13 05:08:29 -07:00
2026-09-18 15:40:37 +05:30
2026-09-18 15:40:37 +05:30
2026-09-13 05:07:50 -07:00
2026-09-13 05:07:11 -07:00
2026-09-18 09:52:03 -07:00
2026-09-15 06:36:19 -07:00
2026-09-18 10:29:13 -07:00
2026-09-14 19:49:12 +05:30
2026-09-15 03:44:36 -07:00
2026-09-13 05:07:50 -07:00
2026-09-13 05:07:50 -07:00
2026-09-18 10:24:15 -07:00
2026-09-15 04:12:13 -07:00
2026-09-18 10:11:14 -07:00
2026-09-15 18:30:05 -07:00
2026-09-11 06:24:54 -07:00
2026-09-11 06:24:54 -07:00
2026-09-11 06:24:54 -07:00
2026-09-17 21:17:15 +05:30
2026-09-16 17:02:13 -07:00
2026-09-11 06:37:27 -07:00
2026-09-09 13:30:28 -07:00
2026-09-11 06:24:54 -07:00
2026-09-15 18:25:46 -07:00
2026-09-13 05:32:38 -07:00
2026-09-15 04:12:13 -07:00
2026-09-18 21:47:13 +05:30
2026-09-18 09:47:06 -07:00
2026-09-12 08:25:54 -07:00
2026-09-15 04:12:13 -07:00
2026-09-07 22:25:12 -07:00
2026-09-15 04:12:13 -07:00
2026-09-12 08:25:54 -07:00
2026-09-13 05:08:29 -07:00
2026-09-18 09:38:34 -07:00
2026-09-11 03:45:31 +05:30
2026-09-12 21:47:53 -07:00
2026-09-13 05:21:02 -07:00
2026-09-14 08:10:36 -07:00
2026-09-16 17:58:25 +00:00
2026-09-15 03:53:13 -07:00
2026-09-15 18:55:47 -07:00
2026-09-16 00:32:15 -07:00
2026-09-15 14:52:26 +05:30
2026-09-11 06:24:54 -07:00
2026-09-08 19:52:26 +05:30
2026-09-15 04:12:13 -07:00
2026-09-12 08:34:43 -07:00
2026-09-16 16:42:47 -07:00
2026-09-16 16:42:47 -07:00
2026-09-12 08:25:54 -07:00
2026-09-18 17:09:28 +02:00
2026-09-17 00:02:09 -07:00
2026-09-17 20:35:22 -07:00
2026-09-13 05:08:20 -07:00
2026-09-18 17:09:28 +02:00
2026-09-16 17:44:36 -07:00
2026-09-18 10:15:11 -07:00
2026-09-16 17:13:56 -07:00
2026-09-17 00:11:27 -07:00
2026-09-18 10:15:11 -07:00
2026-09-17 00:02:09 -07:00
2026-09-18 17:09:28 +02:00
2026-09-15 04:12:13 -07:00
2026-09-18 17:09:28 +02:00
2026-09-18 17:09:28 +02:00
2026-09-10 11:48:01 -07:00
2026-09-13 19:19:32 -07:00
2026-09-09 21:16:40 +05:30
2026-09-15 03:40:26 -07:00
2026-09-16 08:57:18 -07:00
2026-09-18 09:43:19 -07:00
2026-09-07 07:11:36 -07:00
2026-09-15 04:37:41 -07:00
2026-09-17 00:34:50 -05:00
2026-09-17 00:34:50 -05:00
2026-09-14 08:10:36 -07:00
2026-09-18 09:20:07 -07:00
2026-09-12 18:35:21 -07:00
2026-09-15 20:44:42 +05:30
2026-09-18 10:18:40 -07:00
2026-09-11 06:37:27 -07:00
2026-09-16 17:11:08 -07:00
2026-09-13 21:30:02 -07:00
2026-09-13 20:55:29 -07:00
2026-09-15 18:27:06 -07:00
2026-09-16 16:43:08 -07:00
2026-09-09 02:36:00 -07:00