Adam Perry @ OpenAI
968a3ac9c1
[codex] make PathUri::from_abs_path infallible ( #27976 )
...
## Why
`PathUri::from_abs_path` can fail for absolute paths that do not have a
normal `file:` URI representation, forcing filesystem call sites to
handle a conversion error even though the original path can be preserved
losslessly.
## What
Make `from_abs_path` infallible and migrate its callers. Unrepresentable
paths use `file:///%00/bad/path/<base64>`, encoding Unix bytes or
Windows UTF-16LE; `to_abs_path` validates and decodes that fallback. The
leading encoded null reserves a namespace that cannot collide with a
real Unix or Windows path, and fallback URIs remain opaque to lexical
path operations.
## Validation
Added path-URI coverage for Unix null and non-UTF-8 paths, Windows
device/verbatim and non-Unicode paths, serialization, malformed
fallbacks, opaque lexical operations, invalid native payloads, and
literal `/bad/path` collision resistance.
History
..
2026-06-08 11:39:08 +02:00
2026-06-09 12:48:04 -07:00
2026-05-26 20:59:47 -07:00
2026-06-11 18:16:39 -07:00
2026-04-28 12:35:00 -07:00
2026-06-12 15:50:30 -07:00
2026-05-07 15:44:17 -07:00
2026-06-12 16:58:42 -07:00
2026-06-11 22:30:41 -07:00
2026-06-11 21:28:52 -07:00
2026-06-12 15:05:37 -07:00
2026-05-28 14:54:39 -07:00
2026-06-12 21:23:50 +00:00
2026-06-12 16:58:42 -07:00
2026-06-03 19:08:19 -07:00
2026-06-11 18:16:39 -07:00
2026-05-08 04:07:59 +00:00
2026-06-05 14:43:44 +00:00
2026-05-05 22:22:01 -07:00
2026-06-09 22:44:16 +02:00
2026-06-12 22:03:51 +00:00
2026-06-12 21:23:50 +00:00
2026-06-12 21:23:50 +00:00
2026-06-11 18:16:39 -07:00
2026-06-11 18:16:39 -07:00
2026-06-12 02:49:17 -07:00
2026-06-11 22:37:26 -07:00
2026-06-12 02:49:17 -07:00
2026-06-12 15:05:37 -07:00
2026-06-01 21:25:42 -07:00
2026-06-11 18:16:39 -07:00
2026-05-07 15:44:17 -07:00
2026-06-11 19:28:47 +00:00
2026-06-12 22:03:51 +00:00
2026-05-07 15:44:17 -07:00
2026-06-12 16:58:42 -07:00
2026-05-28 22:08:05 -07:00
2026-06-03 13:32:55 +02:00
2026-06-12 16:58:42 -07:00
2026-06-12 21:23:50 +00:00
2026-06-12 16:58:42 -07:00
2026-06-12 16:58:42 -07:00
2026-06-05 15:41:13 -07:00
2026-06-12 21:23:50 +00:00
2026-06-12 16:58:42 -07:00
2026-06-07 17:35:33 -07:00
2026-06-07 17:35:33 -07:00
2026-06-12 16:58:42 -07:00
2026-06-04 14:16:03 -04:00
2026-06-08 14:16:32 -04:00
2026-06-12 16:29:40 -07:00
2026-05-26 15:59:25 -07:00
2026-05-07 15:44:17 -07:00
2026-06-12 12:12:08 -07:00
2026-05-28 23:09:55 -07:00
2026-06-12 16:58:42 -07:00
2026-06-11 23:08:07 +00:00
2026-06-03 19:08:19 -07:00
2026-06-12 19:52:49 +00:00
2026-06-05 09:34:36 -07:00
2026-05-07 15:44:17 -07:00
2026-06-12 21:23:50 +00:00
2026-06-11 19:28:47 +00:00
2026-06-12 13:50:04 -07:00
2026-06-04 09:53:08 -04:00
2026-06-11 18:16:39 -07:00
2026-06-05 17:36:18 -07:00
2026-06-12 21:23:50 +00:00
2026-06-11 18:16:39 -07:00
2026-06-04 09:53:08 -04:00
2026-06-10 20:42:38 -07:00
2026-06-12 13:37:33 +02:00
2026-05-25 17:26:10 -03:00
2026-06-03 13:32:55 +02:00
2026-06-12 15:05:37 -07:00
2026-05-07 15:44:17 -07:00
2026-04-22 22:24:12 -07:00
2026-05-07 15:44:17 -07:00
2026-06-12 22:03:51 +00:00
2026-06-12 13:50:04 -07:00
2026-06-12 13:50:04 -07:00
2026-06-12 16:58:42 -07:00
2026-05-26 20:59:47 -07:00
2026-06-12 19:52:49 +00:00
2026-06-05 09:38:26 -07:00
2026-06-11 18:16:39 -07:00
2026-06-11 10:34:41 -07:00
2026-06-12 13:50:04 -07:00
2026-05-07 15:44:17 -07:00
2026-05-13 21:23:19 +00:00
2026-05-07 15:44:17 -07:00
2026-06-12 18:11:13 +00:00
2026-06-12 13:50:04 -07:00
2026-06-11 16:32:52 -07:00
2026-06-12 16:29:40 -07:00
2026-05-07 15:44:17 -07:00
2026-06-12 16:58:42 -07:00
2026-05-18 21:33:05 -07:00
2026-05-06 18:10:30 +00:00
2026-06-04 16:52:10 -07:00
2025-10-19 20:41:55 -04:00
2026-04-24 17:49:29 -07:00
2026-06-12 16:58:42 -07:00
2026-06-12 14:20:55 -07:00
2026-04-20 22:41:54 -07:00
2025-10-17 14:58:27 -07:00
2026-02-20 19:32:15 -08:00
2026-06-11 18:16:39 -07:00
2026-06-04 09:16:03 -07:00
2026-05-26 20:59:47 -07:00
2025-05-07 08:37:48 -07:00