Review found four ways Remove could delete the wrong thing: - A replays or cache folder that is a link or junction into Valorant's folder passed the lexical check. Folders are now resolved before the check, and Remove refuses when they overlap each other or Valorant's. - The dialog promised Valorant still had a copy from the last listing. Remove now rechecks right before deleting; if that changed, it deletes nothing and the tile asks again with the right text. - Keep and Remove ran beside adds. All three now run one at a time, and Remove refuses a file whose size or time changed since the dialog. - Cache deletion matched by prefix. It now parses the cache name and matches the whole key. Also waits for the first listing's slow read before adding in the listing-race test; it could deadlock when the add's read came first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Dara Adedeji committed on 10/13/2026, 8:39:51 PMparentbbbd5ed
Checks
- SuccessfulCodeRabbitGitHub
Review rate limited
- Skippedwindows-buildGitHub
- Skippedwindows-testGitHub
- Skippedclient-contractGitHub
- Skippedlinux-buildGitHub
- SkippedconvexGitHub
- Skippednative-bridgeGitHub
- Skippedpresence-workerGitHub
- Skippednative-replayGitHub
- Successfultest (shard 0)GitHub
- SuccessfulanalyzeGitHub
- Successfultest (shard 1)GitHub
- SuccessfulwebGitHub
- SuccessfulchangesGitHub
5 files changedLine totals unavailable