diff --git a/wwwroot/api/workspace_tree.dspy b/wwwroot/api/workspace_tree.dspy index 601ad37..a1774e3 100644 --- a/wwwroot/api/workspace_tree.dspy +++ b/wwwroot/api/workspace_tree.dspy @@ -50,11 +50,14 @@ for name in entries: if name.startswith('.') or name == '__pycache__': continue if os.path.isdir(full): - # 叶子判定:目录下是否还有子目录(排除隐藏目录)。无子目录 → 叶子(不可展开) + # 叶子判定:目录下是否还有「可见」子目录(排除隐藏目录和 __pycache__,与下方扫描一致)。 + # 无可见子目录 → 叶子(不可展开) has_subdir = False try: for sub in os.listdir(full): - if not sub.startswith('.') and os.path.isdir(os.path.join(full, sub)): + if sub.startswith('.') or sub == '__pycache__': + continue + if os.path.isdir(os.path.join(full, sub)): has_subdir = True break except Exception: