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-12 13:50:04 -07:00
2026-04-21 10:22:36 -07:00
2026-04-07 00:32:41 +00:00
2026-06-12 16:58:42 -07:00
2026-06-12 13:31:11 -07:00
2026-06-11 04:11:26 +00:00
2026-06-12 15:50:30 -07:00
2026-06-12 13:31:11 -07:00
2026-06-12 11:38:01 -07:00
2026-06-12 16:58:42 -07:00
2026-06-12 11:20:34 +02:00
2026-06-12 13:50:04 -07:00
2026-06-12 16:58:42 -07:00
2026-06-11 18:16:39 -07:00
2026-03-24 18:10:53 -07:00
2026-06-12 16:58:42 -07:00
2026-06-12 16:58:42 -07:00
2026-04-07 21:20:22 +00:00
2026-05-11 16:33:44 -07:00
2026-05-08 12:36:02 -07:00
2026-06-10 20:43:03 -07:00
2026-06-12 13:50:04 -07:00
2026-06-11 13:42:09 -07:00
2026-06-12 18:11:13 +00:00
2026-06-11 22:30:41 -07:00
2026-06-11 22:30:41 -07:00
2026-06-12 11:20:34 +02:00
2026-04-01 23:06:24 -07:00
2026-06-11 13:42:09 -07:00
2026-06-11 13:42:09 -07:00
2026-06-11 04:11:26 +00:00
2026-06-11 13:42:09 -07:00
2026-06-10 12:54:21 +02:00
2026-06-12 09:06:58 -07:00
2026-06-12 22:03:51 +00:00
2026-06-12 16:58:42 -07:00
2026-06-11 11:28:16 +02:00
2026-06-11 11:28:16 +02:00
2026-04-26 15:10:53 -07:00
2026-04-26 15:10:53 -07:00
2026-06-05 11:20:52 -07:00
2026-06-05 11:20:52 -07:00
2026-06-05 11:20:52 -07:00
2026-06-03 10:41:41 -07:00
2026-06-12 16:58:42 -07:00
2026-05-13 11:31:27 +02:00
2026-06-08 21:32:46 -07:00
2026-06-12 13:50:04 -07:00
2026-06-10 19:21:24 -07:00
2026-06-10 19:21:24 -07:00
2026-04-28 13:03:28 +02:00
2026-04-28 19:43:44 -07:00
2026-06-11 13:42:09 -07:00
2026-05-13 11:15:25 -07:00
2026-06-12 22:03:51 +00:00
2026-05-26 20:59:47 -07:00
2026-06-12 22:03:51 +00:00
2026-06-11 22:30:41 -07:00
2026-05-28 10:24:03 -07:00
2026-06-10 04:41:06 +00:00
2026-06-12 11:20:34 +02:00
2026-05-19 11:24:09 +02:00
2026-03-25 11:05:35 -07:00
2026-04-02 23:00:02 -07:00
2026-04-09 10:53:06 -07:00
2026-05-20 17:10:37 -07:00
2026-06-11 18:16:39 -07:00
2026-04-24 17:49:29 -07:00
2026-05-11 11:32:40 -07:00
2026-06-02 12:10:14 +02:00
2026-05-26 10:34:43 +02:00
2026-06-12 13:50:04 -07:00
2026-06-09 00:38:35 +00:00
2026-06-12 13:50:04 -07:00
2026-05-20 16:03:51 -07:00
2026-06-12 15:05:37 -07:00
2026-06-01 18:45:07 +00:00
2026-06-11 13:42:09 -07:00
2026-05-26 11:01:18 +02:00
2026-04-01 23:06:24 -07:00
2026-06-01 23:33:42 +00:00
2026-05-19 11:03:47 -07:00
2026-05-07 11:33:47 +02:00
2026-05-15 10:58:50 -07:00
2026-05-15 10:58:50 -07:00
2026-04-20 22:39:17 -07:00
2026-04-03 00:33:34 -07:00
2026-06-11 16:55:01 -07:00
2026-05-04 11:46:03 -07:00
2026-06-04 22:36:25 -07:00
2026-03-27 19:00:44 -07:00
2026-06-11 20:35:28 -07:00
2026-06-03 15:38:30 +02:00
2026-06-03 10:41:41 -07:00
2026-05-04 11:46:03 -07:00
2026-06-10 14:31:09 +02:00
2026-06-12 11:57:22 -07:00
2026-06-11 13:42:09 -07:00
2026-06-12 11:38:01 -07:00
2026-06-11 20:35:28 -07:00
2026-06-12 13:50:04 -07:00
2026-06-12 13:50:04 -07:00
2026-06-10 17:17:44 -07:00
2026-06-10 17:17:44 -07:00
2026-06-11 13:42:09 -07:00
2026-06-11 13:42:09 -07:00
2026-06-05 11:27:10 -07:00
2026-06-05 11:27:10 -07:00
2026-04-20 22:39:17 -07:00
2026-04-20 22:39:17 -07:00
2026-05-14 16:54:59 -07:00
2026-05-14 16:54:59 -07:00
2026-05-28 15:26:55 -07:00
2026-05-28 15:26:55 -07:00
2026-05-22 12:13:52 +02:00
2026-05-29 11:01:44 -07:00