Commit Graph

5 Commits

  • fix: move inline codex-rs/core unit tests into sibling files (#14444)
    ## Why
    PR #13783 moved the `codex.rs` unit tests into `codex_tests.rs`. This
    applies the same extraction pattern across the rest of `codex-rs/core`
    so the production modules stay focused on runtime code instead of large
    inline test blocks.
    
    Keeping the tests in sibling files also makes follow-up edits easier to
    review because product changes no longer have to share a file with
    hundreds or thousands of lines of test scaffolding.
    
    ## What changed
    - replaced each inline `mod tests { ... }` in `codex-rs/core/src/**`
    with a path-based module declaration
    - moved each extracted unit test module into a sibling `*_tests.rs`
    file, using `mod_tests.rs` for `mod.rs` modules
    - preserved the existing `cfg(...)` guards and module-local structure so
    the refactor remains structural rather than behavioral
    
    ## Testing
    - `cargo test -p codex-core --lib` (`1653 passed; 0 failed; 5 ignored`)
    - `just fix -p codex-core`
    - `cargo fmt --check`
    - `cargo shear`
  • Fixed symlink support for config.toml (#9445)
    We already support reading from `config.toml` through a symlink, but the
    code was not properly handling updates to a symlinked config file. This
    PR generalizes safe symlink-chain resolution and atomic writes into
    path_utils, updating all config write paths to use the shared logic
    (including set_default_oss_provider, which previously didn't use the
    common path), and adds tests for symlink chains and cycles.
    
    This resolves #6646.
    
    Notes:
    * Symlink cycles or resolution failures replace the top-level symlink
    with a real file.
    * Shared config write path now handles symlinks consistently across
    edits, defaults, and empty-user-layer creation.
    
    This PR was inspired by https://github.com/openai/codex/pull/9437, which
    was contributed by @ryoppippi
  • chore: prefer AsRef<Path> to &Path (#8249)
    This is some minor API cleanup that will make it easier to use
    `AbsolutePathBuf` in more places in a subsequent PR.