From 4692cbc21e8dab6ed8c312aa43cdc2f712877c9d Mon Sep 17 00:00:00 2001 From: Karthik Date: Tue, 2 Jun 2026 12:53:59 -0400 Subject: [PATCH] [karthik] fix: resolve debugger filepath-not-found on Linux On Linux (case-sensitive FS), Directory.py lowercased child paths before os.path.isfile(), so mixed-case files like Apps.py were never indexed. Debugleton.py then lowercased the lookup too, guaranteeing no match. Fix: store real paths always; on darwin only, lowercase both sides at compare time. Closes #58. --- debugger/debugger_backend/Debugleton.py | 8 ++++++-- debugger/debugger_backend/Directory.py | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/debugger/debugger_backend/Debugleton.py b/debugger/debugger_backend/Debugleton.py index 7c97ae2e..f3536680 100644 --- a/debugger/debugger_backend/Debugleton.py +++ b/debugger/debugger_backend/Debugleton.py @@ -1,5 +1,6 @@ # Haik: sorry bout the filename +import sys import threading from debugger_backend.project_scanner import update_debug_toggles from debugger_backend.Directory import Directory @@ -75,12 +76,15 @@ class Debugleton: return self.sync_lock.locked() def find_file_info(self, filepath: str): - filepath = filepath.lower() # print(f"Finding file info for {filepath}") if self.needs_resync(): self.sync_to_saved() try: - filepath_id = self.abspaths.index(filepath) + if sys.platform == "darwin": + abspaths = [p.lower() for p in self.abspaths] + filepath_id = abspaths.index(filepath.lower()) + else: + filepath_id = self.abspaths.index(filepath) match = self.instances[filepath_id] return match.color, match.is_toggled, match.emoji except ValueError: diff --git a/debugger/debugger_backend/Directory.py b/debugger/debugger_backend/Directory.py index fe23db47..d8dfd072 100644 --- a/debugger/debugger_backend/Directory.py +++ b/debugger/debugger_backend/Directory.py @@ -41,7 +41,7 @@ class Directory: ordered_abspaths.append({"abspath": full_path, "instance": dir}) # print(f"\t[construct_ordered_abspaths]: Full path: {full_path}") for child in dir.children: - child_abspath = os.path.join(root_dir, child.path).lower() + child_abspath = os.path.join(root_dir, child.path) if os.path.isdir(child_abspath): construct_ordered_abspaths(child, ordered_abspaths) elif os.path.isfile(child_abspath):