[automated] Investigate renamed-file handling in selective PR CI
- Dominant language
- C#
- Stars
- 6.3k
- Forks
- 991
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 196
Description
[automated] PR #19486 showed that a same-commit rename can expose the old path as an unmatched deletion and safely fall back to `ALL`.
The investigation found that exempting unmatched old paths is unsafe: a directory rule can have consumers beyond the moved file, and the destination can be ignored or removed by prefiltering. Either case could silently under-select tests. The selector should therefore retain the run-all fallback.
PR #19790 contains adjacent safety fixes found during the investigation. Both selector layers now share NUL-delimited diff parsing, literal backslashes are preserved, raw paths are escaped for Markdown, and truncated diff streams fail loudly. It deliberately does not suppress the safe `ALL` result for PR #19486.
- [x] Reproduce the renamed-file fallback.
- [x] Evaluate whether old rename paths can be safely exempted.
- [x] Retain and document the safe run-all behavior.
- [ ] Land #19790.
Contributor guide
Research direction
Review PR #19790 and the rename reproduction described in this issue first. Confirm that unmatched old paths still produce the safe ALL result, then verify the documented safety fixes and truncated-diff failure behavior before considering the issue done.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- ci-cd, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100