Add DiffRunner.SettleDelete to withdraw a pending delete - #876
Merged
Merged
Conversation
A delete is raised for a file that looked stale, and waits in the tray or the viewer for someone to accept it. Nothing could withdraw one when the file came back into use - a target that came back, or a snapshot that moved inline and then back to its file - so accepting it removed a file a passing test depends on. The owners already drop a tracked delete on a settle for its key; there was just no way for a test run to send one. SettleDelete sends that settle to the queue owner, as SettleDiff does for a pending move. It reaches the delete in a viewer, and in a tray that owns the queue, which keeps the deletes that arrived over the piper port in the same tracked files. Nothing is deleted. It answers to DiffRunner.Disabled, and nothing owning the queue is silent, with the unowned port remembered like every other settle. A tray that does not own the queue keeps its own deletes and cannot be reached, the same limit SettleDiff has: the piper format is frozen at moves and deletes. Pinned at each end. The client sends the tracked delete key, sends nothing while disabled, and is silent with no owner. A tray that owns the queue drops the delete it tracked from the raw path when the settle names the folded key, and leaves the file on disk. The viewer's session drops the delete and keeps the rest of the queue.
This was referenced Sep 22, 2026
Merged
Merged
Merged
This was referenced Sep 23, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A delete is raised for a file that looked stale, and waits in the tray or the viewer for someone to accept it. Nothing could withdraw one when the file came back into use - a target that came back, or a snapshot that moved inline and then back to its file - so accepting it removed a file a passing test depends on. The owners already drop a tracked delete on a settle for its key; there was just no way for a test run to send one.
SettleDelete sends that settle to the queue owner, as SettleDiff does for a pending move. It reaches the delete in a viewer, and in a tray that owns the queue, which keeps the deletes that arrived over the piper port in the same tracked files. Nothing is deleted. It answers to DiffRunner.Disabled, and nothing owning the queue is silent, with the unowned port remembered like every other settle.
A tray that does not own the queue keeps its own deletes and cannot be reached, the same limit SettleDiff has: the piper format is frozen at moves and deletes.
Pinned at each end. The client sends the tracked delete key, sends nothing while disabled, and is silent with no owner. A tray that owns the queue drops the delete it tracked from the raw path when the settle names the folded key, and leaves the file on disk. The viewer's session drops the delete and keeps the rest of the queue.