From 7d0a2844223552993006857d012b813080189aba Mon Sep 17 00:00:00 2001 From: helm Date: Tue, 7 Jul 2026 01:45:09 -0400 Subject: [PATCH] Clarify list_vault path parameter to prevent model confusion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Models kept passing the vault name as both vault_name AND path (e.g. vault_name='obsidian-skt', path='obsidian-skt'), producing garbage results. The old description 'Relative path within the vault' was too vague — models interpreted path as the vault identifier. - path: now explicitly says 'NOT the vault name — that's vault_name' - Added concrete Usage section with 4 examples - Described as 'Subfolder inside the vault' not 'Relative path' --- server.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/server.py b/server.py index 5c2f00a..b2be997 100644 --- a/server.py +++ b/server.py @@ -164,13 +164,21 @@ def list_vault( Args: vault_name: Name of the vault (subdirectory name under vaults root) - path: Relative path within the vault. Empty string = vault root. + path: Subfolder inside the vault. Omit or pass "" for vault root. + NOT the vault name — that's vault_name. Examples: + "" or omit = vault root, "NPCs" = vault/NPCs/, "NPCs/Hostile" = deeper. recursive: If True, list all nested contents recursively. include_files: Include files in results (default True). include_directories: Include directories in results (default True). file_extensions: Optional filter — only return files with these extensions (e.g. ['.md', '.canvas']). Case-insensitive. + Usage: + list_vault("obsidian-skt") → root listing + list_vault("obsidian-skt", "") → same, explicit + list_vault("obsidian-skt", "NPCs") → subfolder + list_vault("obsidian-skt", "", True) → recursive from root + Returns: directories: list of subdirectory info dicts files: list of file info dicts (name, path, type, size, modified)