From 9297ee982d962c1e5ea0143ec14c65fdb24dcde7 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 8 May 2025 14:30:31 -0700 Subject: [PATCH] fix: Preserve original path spelling for read-only files --- aider/commands.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/aider/commands.py b/aider/commands.py index 3dd370e51..1811f8044 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -435,11 +435,20 @@ class Commands: to_keep = set() for abs_fname in self.coder.abs_read_only_fnames: rel_fname = self.coder.get_rel_fname(abs_fname) - keep = any( - _paths_match(abs_fname, orig) or rel_fname == orig - for orig in self.original_read_only_fnames - ) - if keep: + + # Prefer to keep the *original* spelling that the user supplied + # (eg the /var/… symlink) rather than the canonicalised path we + # may have stored internally. This preserves exactly what the + # user (and the tests) expect to see. + kept_name = None + for orig in self.original_read_only_fnames: + if _paths_match(abs_fname, orig) or rel_fname == orig: + kept_name = str(orig) + break + + if kept_name: + to_keep.add(kept_name) + else: to_keep.add(abs_fname) self.coder.abs_read_only_fnames = to_keep else: