Reuse verified Windows cleanup parent bindings - #853
Open
Infiland wants to merge 3 commits into
Open
Conversation
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.
Fixes #828.
Present Windows Included Files trees now reuse retained, verified cleanup-parent bindings instead of recapturing the same ancestor chain for every child. Nested cleanup performs iterative full-tree preflight and bottom-up removal while retaining only the active ancestor chain, closing each child binding before removal and keeping its parent bound.
The fallback preserves exact identity and digest checks, no-follow behavior, junction/reparse and mount rejection, hard-link and read-only defenses, late relocation/replacement checks, tombstone ownership, and rollback behavior. Deterministic flat, nested, multilevel, and depth-128 tests bind the optimized operation counts and handle lifetime to linear work with O(depth) live handles.
This bumps the release to 0.7.65. GameMaker LTS 2026 behavior and exact Godot 4.7.1 output are unchanged.
Local validation passed: Ruff; Pyright with zero errors or warnings; 200 Included Files tests with 15 expected platform skips; 88 version/docs/workflow tests; 10 focused modeled-Windows scale/depth/adversarial tests; all GitHub YAML parsing;
git diff --check; and the full exact-Godot-4.7.1 suite with 2,590 passed and 78 skipped. Native Windows CI remains the merge gate.