mirror of
https://github.com/openai/codex.git
synced 2026-05-24 04:54:52 +00:00
## Why `TurnDiffTracker` computes a display root so turn diffs can be rendered repo-relative. For remote exec-server turns, the selected turn `cwd` may exist only inside the selected environment, but `run_turn` was discovering the git root through the local host filesystem. When that lookup failed, nested remote-session diffs fell back to the nested `cwd` and showed `/tmp/...`-prefixed paths instead of repo-relative paths. ## What changed - Resolve the diff display root from the primary selected turn environment when one exists, using that environment's filesystem and `cwd`. - Add `codex_git_utils::get_git_repo_root_with_fs(...)` so git-root discovery can run against an `ExecutorFileSystem`, including remote environments. - Reuse that helper from `resolve_root_git_project_for_trust(...)` and add coverage for `.git` gitdir-pointer detection. ## Validation - Devbox Bazel: `//codex-rs/core:core-unit-tests --test_filter=get_git_repo_root_with_fs_detects_gitdir_pointer` - Devbox Docker-backed remote-env repro: `//codex-rs/core:core-all-test --test_filter=apply_patch_turn_diff_paths_stay_repo_relative_when_session_cwd_is_nested`
42 lines
1.3 KiB
Rust
42 lines
1.3 KiB
Rust
mod apply;
|
|
mod baseline;
|
|
mod branch;
|
|
mod errors;
|
|
mod info;
|
|
mod operations;
|
|
mod platform;
|
|
|
|
pub use apply::ApplyGitRequest;
|
|
pub use apply::ApplyGitResult;
|
|
pub use apply::apply_git_patch;
|
|
pub use apply::extract_paths_from_patch;
|
|
pub use apply::parse_git_apply_output;
|
|
pub use apply::stage_paths;
|
|
pub use baseline::GitBaselineChange;
|
|
pub use baseline::GitBaselineChangeStatus;
|
|
pub use baseline::GitBaselineDiff;
|
|
pub use baseline::diff_since_latest_init;
|
|
pub use baseline::ensure_git_baseline_repository;
|
|
pub use baseline::reset_git_repository;
|
|
pub use branch::merge_base_with_head;
|
|
pub use codex_protocol::protocol::GitSha;
|
|
pub use errors::GitToolingError;
|
|
pub use info::CommitLogEntry;
|
|
pub use info::GitDiffToRemote;
|
|
pub use info::GitInfo;
|
|
pub use info::canonicalize_git_remote_url;
|
|
pub use info::collect_git_info;
|
|
pub use info::current_branch_name;
|
|
pub use info::default_branch_name;
|
|
pub use info::get_git_remote_urls;
|
|
pub use info::get_git_remote_urls_assume_git_repo;
|
|
pub use info::get_git_repo_root;
|
|
pub use info::get_git_repo_root_with_fs;
|
|
pub use info::get_has_changes;
|
|
pub use info::get_head_commit_hash;
|
|
pub use info::git_diff_to_remote;
|
|
pub use info::local_git_branches;
|
|
pub use info::recent_commits;
|
|
pub use info::resolve_root_git_project_for_trust;
|
|
pub use platform::create_symlink;
|