Commit Graph

2 Commits

  • [codex] add io PathUri native conversion APIs (#27280)
    ## Why
    
    Discovered some rough edges in the API while making use of it more
    widely within exec-server. It would be a lot more convenient for
    existing users of `AbsolutePathBuf` if `PathUri` conversion methods
    returned `std::io::Result`s.
    
    ## What
    
    * `PathUri::to_native_path()` -> `PathUri::to_abs_path()`
    * `PathUri::from_file_path()` -> `PathUri::from_abs_path()`
  • Add typed file URIs (#26840)
    ## Why
    
    Codex needs stable `file:` URI identifiers that can cross process and
    operating-system boundaries without eagerly interpreting them as native
    paths. Existing fields also need to keep accepting absolute path strings
    during migration.
    
    ## What changed
    
    - Add `codex-utils-path-uri` with a validated, immutable `PathUri`
    wrapper that currently accepts only `file:` URLs.
    - Expose URI-level `basename`, `parent`, and `join` operations that
    preserve authorities and percent encoding without guessing the source
    operating system.
    - Keep native conversion explicit through `AbsolutePathBuf` and the
    current host rules.
    - Serialize as canonical URI text while accepting both URI text and
    legacy absolute native paths during deserialization.
    - Add adversarial coverage for Windows-looking and POSIX paths, UNC
    authorities, encoded metadata characters, non-UTF-8 POSIX paths, URI
    hierarchy operations, and legacy serde round trips.