From 426fb88ce7bf9171b9c976cfd5cc86655141fc63 Mon Sep 17 00:00:00 2001 From: zhayujie Date: Thu, 16 Apr 2026 22:55:46 +0800 Subject: [PATCH] fix(knowledge): exclude root-level files from knowledge stats to preserve empty state --- agent/knowledge/service.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/agent/knowledge/service.py b/agent/knowledge/service.py index 1db1e021..fb564afc 100644 --- a/agent/knowledge/service.py +++ b/agent/knowledge/service.py @@ -68,7 +68,7 @@ class KnowledgeService: return {"tree": [], "stats": {"pages": 0, "size": 0}, "enabled": conf().get("knowledge", True)} stats = {"pages": 0, "size": 0} - root_files, tree = self._scan_dir(self.knowledge_dir, stats) + root_files, tree = self._scan_dir(self.knowledge_dir, stats, is_root=True) return { "root_files": root_files, @@ -77,7 +77,7 @@ class KnowledgeService: "enabled": conf().get("knowledge", True), } - def _scan_dir(self, dir_path: str, stats: dict) -> tuple: + def _scan_dir(self, dir_path: str, stats: dict, is_root: bool = False) -> tuple: """ Recursively scan a directory. @@ -95,8 +95,9 @@ class KnowledgeService: children.append({"dir": name, "files": sub_files, "children": sub_children}) elif name.endswith(".md"): size = os.path.getsize(full) - stats["pages"] += 1 - stats["size"] += size + if not is_root: + stats["pages"] += 1 + stats["size"] += size title = name.replace(".md", "") try: with open(full, "r", encoding="utf-8") as f: