mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
Fix thread/list cwd filtering for Windows verbatim paths (#17414)
Addresses #17302 Problem: `thread/list` compared cwd filters with raw path equality, so `resume --last` could miss Windows sessions when the saved cwd used a verbatim path form and the current cwd did not. Solution: Normalize cwd comparisons through the existing path comparison utilities before falling back to direct equality, and add Windows regression coverage for verbatim paths. I made this a general utility function and replaced all of the duplicated instance of it across the code base.
This commit is contained in:
committed by
GitHub
Unverified
parent
a9796e39c4
commit
e9e7ef3d36
@@ -16,6 +16,19 @@ pub fn normalize_for_path_comparison(path: impl AsRef<Path>) -> std::io::Result<
|
||||
Ok(normalize_for_wsl(canonical))
|
||||
}
|
||||
|
||||
/// Compare paths after applying Codex's filesystem normalization.
|
||||
///
|
||||
/// If either path cannot be normalized, this falls back to direct path equality.
|
||||
pub fn paths_match_after_normalization(left: impl AsRef<Path>, right: impl AsRef<Path>) -> bool {
|
||||
if let (Ok(left), Ok(right)) = (
|
||||
normalize_for_path_comparison(left.as_ref()),
|
||||
normalize_for_path_comparison(right.as_ref()),
|
||||
) {
|
||||
return left == right;
|
||||
}
|
||||
left.as_ref() == right.as_ref()
|
||||
}
|
||||
|
||||
pub fn normalize_for_native_workdir(path: impl AsRef<Path>) -> PathBuf {
|
||||
normalize_for_native_workdir_with_flag(path.as_ref().to_path_buf(), cfg!(windows))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user