fix(desktop): keep memory imports inside source root - #744
Open
imMamdouhaboammar wants to merge 1 commit into
Open
fix(desktop): keep memory imports inside source root#744imMamdouhaboammar wants to merge 1 commit into
imMamdouhaboammar wants to merge 1 commit into
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.
Problem
The desktop memory-import path copies files from another GenericAgent directory into the current
memory/andtemp/model_responses/trees._import_memory_from()previously iterated those trees withPath.rglob()and passed every non-directory entry directly toshutil.copy2(). Becausecopy2()follows source symlinks by default, a backup containing a symlink can make the import copy the contents of a file outside the selected backup directory into GenericAgent's local memory or response history.Fix
Add one shared
_safe_import_items()boundary that:ok=TruerestoreBoth
memory/andmodel_responses/imports use the same iterator.Verification
TDD and review-driven regression work was performed before rebuilding this clean branch:
31163257090failed exactly on the two external file-symlink cases while regular-file import passed3116333790231163422371OSErrorfrom path resolution was silently swallowed. Regression-only run31164088693passed all existing cases and failed only because the expectedOSErrorwas not raised31164242854: compile, all 5 regression methods, andgit diff --checksys.pathmutation and its temporary GA root now has explicit module cleanupFinal coverage verifies external file symlinks, external directory symlinks, model-response symlinks, filesystem resolution errors, and normal file imports.
Scope
main