From 1cfb9c127b7cf873b4b497050d40491f7f133888 Mon Sep 17 00:00:00 2001 From: "thomas.kopp" Date: Thu, 2 Apr 2026 11:57:47 +0200 Subject: [PATCH] fix: use vault+file URI format for Obsidian, more reliable than path= Co-Authored-By: Claude Sonnet 4.6 --- api/router.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/api/router.py b/api/router.py index 5431202..b851ed7 100644 --- a/api/router.py +++ b/api/router.py @@ -239,7 +239,12 @@ async def open_file(body: dict, user: dict = Depends(current_user)): dest = os.path.join(vault, os.path.basename(p)) shutil.copy2(p, dest) open_target = os.path.join(vault, os.path.basename(all_paths[0])) - uri = f"obsidian://open?path={quote(open_target, safe='/')}" + vault_name = os.path.basename(vault.rstrip("/")) if vault else "" + file_name = os.path.basename(open_target) + if vault_name: + uri = f"obsidian://open?vault={quote(vault_name)}&file={quote(file_name)}" + else: + uri = f"obsidian://open?path={quote(open_target, safe='/')}" obsidian_bin = shutil.which("obsidian") or "/usr/bin/obsidian" subprocess.Popen([obsidian_bin, uri]) elif mode == "folder" and shutil.which("dolphin"):