Adam Perry @ OpenAI and GitHub
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.
2026-06-12 16:58:42 -07:00
..
2026-06-12 13:50:04 -07:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-06-08 14:21:28 +02:00
2026-03-27 19:00:44 -07:00
2026-05-27 11:09:33 -07:00
2026-06-12 00:10:06 -07:00
2026-06-12 16:37:14 -07:00
2026-06-08 13:55:15 -07:00
2026-06-10 20:42:55 -07:00
2026-06-10 12:19:26 -07:00
2026-06-11 13:42:09 -07:00
2026-06-12 21:23:50 +00:00
2026-06-12 02:49:17 -07:00
2026-05-14 16:15:56 -07:00
2026-06-08 13:55:15 -07:00
2026-06-11 19:28:47 +00:00
2026-06-12 18:11:13 +00:00
2026-06-08 13:55:15 -07:00
2026-06-12 00:10:06 -07:00
2026-05-14 18:04:26 -07:00
2026-06-08 13:55:15 -07:00
2026-05-28 15:26:55 -07:00
2026-06-11 16:32:52 -07:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-06-12 00:10:06 -07:00
2026-05-29 10:22:27 -07:00
2026-06-11 10:07:19 +00:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-05-22 16:58:14 +00:00
2026-06-12 09:06:58 -07:00
2026-06-11 16:32:52 -07:00
2026-05-18 21:03:51 -07:00
2026-06-11 23:23:44 -07:00
2026-06-10 20:42:55 -07:00
2026-06-12 00:10:06 -07:00
2026-06-10 20:42:55 -07:00
2026-06-08 13:55:15 -07:00
2026-05-15 01:26:50 +00:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-06-02 12:10:14 +02:00
2026-06-10 20:42:55 -07:00
2026-06-12 13:31:11 -07:00
2026-06-11 19:28:47 +00:00
2026-06-11 19:28:47 +00:00
2026-06-08 13:55:15 -07:00
2026-06-12 15:05:37 -07:00
2026-06-12 16:58:42 -07:00
2026-06-10 20:42:55 -07:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-05-19 14:45:37 -07:00
2026-06-11 22:30:41 -07:00
2026-06-08 13:55:15 -07:00
2026-06-11 10:07:19 +00:00
2026-06-11 04:11:26 +00:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-06-12 16:37:14 -07:00
2026-06-01 04:33:20 +00:00
2026-06-08 13:55:15 -07:00
2026-06-12 20:17:12 +02:00
2026-05-14 16:15:56 -07:00
2026-05-18 09:57:54 -07:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-06-11 18:44:18 +00:00
2026-06-12 20:17:12 +02:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-06-12 13:50:04 -07:00
2026-06-11 15:10:29 -07:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-03-11 12:33:09 -07:00
2026-06-08 13:55:15 -07:00
2026-06-12 16:37:14 -07:00
2026-06-01 23:33:42 +00:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-06-12 16:37:14 -07:00
2026-04-28 23:01:40 +00:00
2026-06-08 13:55:15 -07:00
2026-06-08 13:55:15 -07:00
2026-06-03 15:33:34 -07:00