Repository navigation
Conversation
There was a problem hiding this comment.
Ultimator's review of a60ddf2
Approved at a60ddf2: deleted files now emit an absent PATCH_FILE new path, matching the typed wire validator without changing content-read paths or records for files with a new side. The regression covers INDEX→WORKTREE deletion and typed encoding of the returned records; no issues found. Exact-head CI is not yet verified: package-crates is running and the other ten checks are queued; no local checks were run.
No issues found.
Reviewed in 1m 39s · Session · @ultimator-ai review reviews again · @ultimator-ai fix fixes the open issues
indent
Bot
force-pushed
the
fix/git-patch-deleted-file-path
branch
from
October 25, 2026 19:44
a60ddf2 to
de24760
Compare
indent
Bot
force-pushed
the
fix/git-patch-deleted-file-path
branch
from
October 25, 2026 20:47
de24760 to
6bfef1e
Compare
This branch has not been deployed
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 structured
PATCH(noPATCH_TEXT) that contains a deleted file ends the client's native session. The server logsreliable frame handler failed: class=Request family=49 kind=4and the client gets EOF. Any left endpoint with a file the right side lacks triggers it: commit→EMPTY, INDEX→commit, WORKTREE→INDEX after anrm, and so on.Cause: the engine's
PATCH_FILErecord takesnew_pathfromchange_new_path, which is the change's path whether or not a new side exists. A deletion therefore arrives asDELETEDwith both paths set.PatchFileRecord::validaterequiresnew_pathto be absent forDELETED, soencode_typed()fails inquery_git(crates/server/src/yas.rs) and itsmap_err(|_| ())?ends the session.record_new_pathmirrorsrecord_old_path: no new side, no new path. Additions and modifications are unchanged.structured_patch_of_a_deletion_encodes(server adapter) takes an INDEX→WORKTREE patch of a removed file. It expectsDELETEDwith onlyold_path, and checks that each record encodes asquery_gitwould. Before this change it fails becausenew_pathisSome("gone.txt").Found by differential fuzzing of the Git family over a native session.
cargo test -p yas-server --lib,cargo test -p yas-git --test engine,cargo clippy -p yas-git -p yas-server --all-targets -- -D warningsandcargo fmt --checkpass.Tag
@indentto continue the conversation here.