From 46a2b259a71828e7fcdeab1f67ef675304e2ca14 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Fri, 19 Jun 2026 18:59:43 +0300 Subject: fix: defer api worktree operations refs #686 refs #657 refs #662 refs https://github.com/ogulcancelik/herdr/discussions/687 --- src/app/api.rs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/app/api.rs') diff --git a/src/app/api.rs b/src/app/api.rs index 6dc48953..cbd6866c 100644 --- a/src/app/api.rs +++ b/src/app/api.rs @@ -91,12 +91,12 @@ impl App { } if let AppEvent::WorktreeAddFinished(result) = ev { - self.handle_worktree_add_finished(result); + self.handle_worktree_add_finished(*result); return; } if let AppEvent::WorktreeRemoveFinished(result) = ev { - self.handle_worktree_remove_finished(result); + self.handle_worktree_remove_finished(*result); return; } @@ -778,11 +778,21 @@ impl App { } Method::WorktreeList(params) => return self.handle_worktree_list(request.id, params), Method::WorktreeCreate(params) => { - return self.handle_worktree_create(request.id, params); + let _ = params; + return responses::encode_error( + request.id, + "invalid_request", + "worktree.create is handled asynchronously by the app runtime", + ); } Method::WorktreeOpen(params) => return self.handle_worktree_open(request.id, params), Method::WorktreeRemove(params) => { - return self.handle_worktree_remove(request.id, params); + let _ = params; + return responses::encode_error( + request.id, + "invalid_request", + "worktree.remove is handled asynchronously by the app runtime", + ); } Method::TabList(params) => return self.handle_tab_list(request.id, params), Method::TabGet(target) => return self.handle_tab_get(request.id, target), -- cgit v1.2.3