jif
612e6491d5
Prewarm shell snapshots for eligible turns ( #42137 )
...
## Why
Shell Snapshot V2 previously captured the login-shell environment lazily when a
command started, adding that work to the command path.
## What changed
- Start one asynchronous snapshot capture after turn hooks accept the turn, so
eligible local `exec_command` calls can reuse it without blocking the model.
- Use the turn's resolved tools, permissions, sandbox, environment, and shell
configuration, and skip prewarming for unsupported or network-managed cases.
- Cancel outstanding prewarming during shutdown. Keep failed speculative
captures retryable by real commands without consuming their retry budget.
## Testing
Added coverage for non-blocking capture and reuse, failure recovery, sandbox and
permission isolation, shutdown cancellation, hook-stopped turns, eligibility
gates, and concurrent capture retries.
GitOrigin-RevId: ff24a4f0328c06653e09d03fd0a3db1eccd65030
2026-09-01 21:16:12 +00:00
..
2026-07-29 13:53:15 +00:00
2026-07-23 19:19:35 +00:00
2026-07-21 22:44:43 +00:00
2026-08-24 22:40:35 +00:00
2026-09-01 07:32:54 +00:00
2026-07-29 13:53:15 +00:00
2026-09-01 21:03:30 +00:00
2026-08-18 23:05:52 +00:00
2026-07-21 08:50:21 +00:00
2026-09-01 19:19:52 +00:00
2026-07-30 19:47:30 +00:00
2026-08-25 03:08:33 +00:00
2026-08-24 21:39:48 +00:00
2026-08-20 08:10:08 +00:00
2026-08-31 13:44:12 +00:00
2026-08-31 13:44:12 +00:00
2026-08-24 21:39:48 +00:00
2026-09-01 00:30:55 +00:00
2026-08-11 03:39:02 +00:00
2026-08-14 05:03:39 +00:00
2026-08-17 22:37:14 +00:00
2026-09-01 16:58:54 +00:00
2026-08-25 16:38:46 +00:00
2026-08-28 19:44:50 +00:00
2026-08-28 19:44:50 +00:00
2026-08-29 02:52:58 +00:00
2026-09-01 17:17:45 +00:00
2026-09-01 01:00:50 +00:00
2026-09-01 01:00:50 +00:00
2026-09-01 05:17:11 +00:00
2026-08-18 23:47:00 +00:00
2026-08-13 23:13:37 +00:00
2026-08-25 21:20:51 +00:00
2026-09-01 20:26:57 +00:00
2026-08-29 02:46:06 +00:00
2026-09-01 17:09:13 +00:00
2026-08-31 21:27:51 +00:00
2026-09-01 13:43:27 +00:00
2026-08-23 18:53:15 +00:00
2026-09-01 21:16:12 +00:00
2026-08-25 21:20:51 +00:00
2026-09-01 18:35:00 +00:00
2026-08-07 11:30:17 +00:00
2026-08-13 00:00:16 +00:00
2026-09-01 12:23:20 +00:00
2026-09-01 21:16:12 +00:00
2026-08-27 21:05:40 +00:00
2026-08-17 04:37:50 +00:00
2026-09-01 15:54:18 +00:00
2026-09-01 16:58:54 +00:00
2026-09-01 20:26:57 +00:00
2026-09-01 16:49:16 +00:00
2026-07-31 21:37:56 +00:00
2026-08-27 20:44:47 +00:00
2026-08-25 21:34:05 +00:00
2026-09-01 15:54:18 +00:00
2026-09-01 14:33:58 +00:00
2026-09-01 18:02:27 +00:00
2026-08-17 00:09:44 +00:00
2026-09-01 15:12:53 +00:00
2026-08-26 23:41:18 +00:00
2026-07-22 04:17:34 +00:00
2026-08-25 21:08:22 +00:00
2026-08-28 01:14:02 +00:00
2026-09-01 20:41:32 +00:00
2026-08-28 01:14:02 +00:00
2026-08-26 14:36:48 +00:00
2026-08-31 22:08:44 +00:00
2026-08-25 18:41:03 +00:00
2026-07-30 04:26:36 +00:00
2026-08-25 22:46:49 +00:00
2026-09-01 17:17:45 +00:00
2026-09-01 18:02:27 +00:00
2026-08-25 15:50:19 +00:00
2026-09-01 19:19:52 +00:00
2026-08-31 19:44:44 +00:00
2026-08-26 17:45:42 +00:00
2026-08-21 16:45:05 +00:00
2026-09-01 20:26:57 +00:00
2026-09-01 14:33:58 +00:00
2026-08-28 01:14:02 +00:00
2026-09-01 16:40:05 +00:00
2026-08-10 15:43:10 +00:00
2026-09-01 18:24:56 +00:00
2026-08-08 16:58:26 +00:00
2026-09-01 17:47:29 +00:00
2026-08-31 21:15:38 +00:00
2026-08-04 03:49:53 +00:00
2026-09-01 17:09:13 +00:00
2026-09-01 21:03:30 +00:00
2026-08-28 21:40:23 +00:00
2026-09-01 19:51:05 +00:00
2026-09-01 20:41:32 +00:00
2026-07-22 16:18:08 +00:00
2026-08-31 19:44:44 +00:00
2026-08-20 14:55:08 +00:00
2026-09-01 17:47:29 +00:00
2026-08-15 14:31:04 +00:00
2026-08-25 21:44:43 +00:00
2026-09-01 20:41:32 +00:00
2026-09-01 20:41:32 +00:00
2026-07-28 20:49:22 +00:00
2026-07-29 13:53:15 +00:00
2026-09-01 16:40:05 +00:00