Adam Perry @ OpenAI
a45b8ccb01
Add streaming file replacement to filesystem abstractions ( #54505 )
...
## What changed
Add `write_file_stream` to `ExecutorFileSystem` and `EnvironmentAccess`, preserving the accessor's captured sandbox permissions. Local and streaming-capable remote filesystems replace files one bounded chunk at a time and return the byte count. Older executors buffer the input before sending a single `writeFile` request.
Close remote handles on completion or failure, perform best-effort cleanup after cancellation, and invalidate pending metadata lookups. Document that failure or cancellation can leave a truncated or partial file and that in-flight I/O may outlive cancellation.
## Testing
Add coverage for sequential writes, binary and empty files across local and remote filesystems, source failures, handle cleanup, metadata invalidation after cancellation, and compatibility with older executors.
GitOrigin-RevId: d3eb44e0ac2f0f336e9e157d686464f4d45a3f26
2026-10-16 04:42:32 +00:00
..
2026-10-09 23:28:38 +00:00
2026-10-13 20:40:38 +00:00
2026-10-13 18:15:50 +00:00
2026-10-06 23:20:40 +00:00
2026-09-26 23:17:41 +00:00
2026-08-15 03:00:35 +00:00
2026-10-15 16:47:55 +00:00
2026-10-07 21:52:20 +00:00
2026-10-13 18:15:50 +00:00
2026-07-21 08:59:41 +00:00
2026-09-23 00:48:53 +00:00
2026-10-13 18:15:50 +00:00
2026-09-23 22:20:34 +00:00
2026-09-03 20:01:07 +00:00
2026-10-09 19:22:21 +00:00
2026-09-22 21:07:20 +00:00
2026-09-22 21:07:20 +00:00
2026-08-20 18:48:17 +00:00
2026-09-23 00:48:53 +00:00
2026-10-13 18:15:50 +00:00
2026-10-09 23:28:38 +00:00
2026-09-04 23:06:00 +00:00
2026-10-09 23:28:38 +00:00
2026-10-09 23:28:38 +00:00
2026-10-16 04:42:32 +00:00
2026-10-15 00:00:57 +00:00
2026-10-05 18:54:17 +00:00
2026-10-05 18:54:17 +00:00
2026-10-07 00:29:04 +00:00
2026-10-07 00:29:04 +00:00
2026-10-05 18:54:17 +00:00
2026-06-17 17:20:53 -07:00
2026-06-17 17:20:53 -07:00
2026-10-05 18:54:17 +00:00
2026-10-13 17:22:34 +00:00
2026-10-02 03:31:52 +00:00
2026-10-02 04:25:52 +00:00
2026-09-02 21:58:58 +00:00
2026-08-18 18:15:21 +00:00
2026-10-02 04:25:52 +00:00
2026-10-02 04:25:52 +00:00
2026-10-09 11:08:24 +00:00
2026-10-07 21:52:43 +00:00
2026-10-13 20:40:38 +00:00
2026-08-20 08:10:08 +00:00
2026-09-30 18:18:03 +00:00
2026-10-02 04:25:52 +00:00
2026-10-16 04:42:32 +00:00
2026-10-15 22:25:58 +00:00
2026-07-25 16:03:00 +00:00
2026-07-25 16:03:00 +00:00
2026-06-15 17:39:00 -07:00
2026-07-21 13:39:33 +00:00
2026-10-15 14:41:16 +00:00
2026-10-15 22:25:58 +00:00
2026-09-23 22:10:28 +00:00
2026-09-13 06:07:03 +00:00
2026-08-18 13:36:16 +00:00
2026-10-02 04:25:52 +00:00
2026-09-26 23:17:41 +00:00
2026-06-15 17:39:00 -07:00
2026-10-06 23:07:25 +00:00
2026-10-06 23:07:25 +00:00
2026-10-06 23:07:25 +00:00
2026-10-01 00:43:55 +00:00
2026-10-16 02:39:49 +00:00
2026-10-16 04:42:32 +00:00
2026-07-30 19:23:33 +00:00
2026-10-15 16:47:55 +00:00
2026-07-20 13:45:29 +00:00
2026-09-04 23:06:00 +00:00
2026-09-29 18:34:48 +00:00
2026-09-22 21:07:20 +00:00
2026-09-22 21:07:20 +00:00
2026-09-23 22:10:28 +00:00
2026-09-29 18:34:48 +00:00
2026-10-07 00:29:04 +00:00
2026-09-17 18:20:28 +00:00
2026-10-02 04:25:52 +00:00
2026-09-26 23:17:41 +00:00
2026-10-07 21:52:43 +00:00
2026-09-26 23:17:41 +00:00
2026-10-15 22:25:58 +00:00
2026-09-25 12:23:15 +00:00
2026-09-25 12:23:15 +00:00
2026-10-01 00:48:08 +00:00
2026-10-15 22:25:58 +00:00
2026-10-15 22:25:58 +00:00
2026-10-06 11:43:45 +00:00
2026-06-25 13:42:40 -07:00
2026-08-17 20:36:10 +00:00
2026-07-01 14:15:34 -07:00
2026-07-01 14:15:34 -07:00