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:
Eric Traut
2026-04-10 23:08:02 -07:00
committed by GitHub
parent a9796e39c4
commit e9e7ef3d36
9 changed files with 58 additions and 47 deletions

View File

@@ -1342,13 +1342,7 @@ async fn select_resume_path_from_db_page(
}
fn cwd_matches(session_cwd: &Path, cwd: &Path) -> bool {
if let (Ok(ca), Ok(cb)) = (
path_utils::normalize_for_path_comparison(session_cwd),
path_utils::normalize_for_path_comparison(cwd),
) {
return ca == cb;
}
session_cwd == cwd
path_utils::paths_match_after_normalization(session_cwd, cwd)
}
#[cfg(test)]