From 71fb66d687b61e45b67388a0f5ef23742dd89667 Mon Sep 17 00:00:00 2001 From: bensig Date: Tue, 7 Apr 2026 14:06:56 -0700 Subject: [PATCH] fix: room detection checks keywords against folder paths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit detect_room() now matches folder path parts against room keywords, not just the room name. Fixes docs/ files routing to general instead of documentation room — "docs" wasn't a substring of "documentation" but is now matched via the persisted keywords list. Found during end-to-end testing after merging #108 keyword persistence. --- mempalace/miner.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mempalace/miner.py b/mempalace/miner.py index 7510c77..7b4e949 100644 --- a/mempalace/miner.py +++ b/mempalace/miner.py @@ -311,11 +311,12 @@ def detect_room(filepath: Path, content: str, rooms: list, project_path: Path) - filename = filepath.stem.lower() content_lower = content[:2000].lower() - # Priority 1: folder path contains room name + # Priority 1: folder path matches room name or keywords path_parts = relative.replace("\\", "/").split("/") for part in path_parts[:-1]: # skip filename itself for room in rooms: - if room["name"].lower() in part or part in room["name"].lower(): + candidates = [room["name"].lower()] + [k.lower() for k in room.get("keywords", [])] + if any(part == c or c in part or part in c for c in candidates): return room["name"] # Priority 2: filename matches room name