diff options
| author | JJ Liebig <jonathan.liebig@gmail.com> | 2026-09-22 18:43:12 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-22 19:43:12 +0300 |
| commit | dd33ddf28d693b2c64ed91f75656c61416ee2538 (patch) | |
| tree | 229769fa9e2535b72dc39ba0f64593ef5fdc93a2 /src/server/headless.rs | |
| parent | 1c6397b1cddb288099ed212a5979732698bd72c2 (diff) | |
fix: move worktree lookups async (#4492)
Diffstat (limited to 'src/server/headless.rs')
| -rw-r--r-- | src/server/headless.rs | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/server/headless.rs b/src/server/headless.rs index 0aed2a37..bba59498 100644 --- a/src/server/headless.rs +++ b/src/server/headless.rs @@ -2970,6 +2970,7 @@ impl HeadlessServer { &mut self, msg: api::ApiRequestMessage, skip_default_workspace_for_request: bool, + client_local: bool, ) -> bool { if self.shutting_down { // During shutdown, respond with server_unavailable. @@ -3124,12 +3125,18 @@ impl HeadlessServer { } if matches!( &msg.request.method, - api::schema::Method::WorktreeCreate(_) | api::schema::Method::WorktreeRemove(_) + api::schema::Method::WorktreeCreate(_) + | api::schema::Method::WorktreeRemove(_) + | api::schema::Method::WorktreeList(_) + | api::schema::Method::WorktreeOpen(_) ) { - let deferred_changed = self - .app - .handle_deferred_worktree_api_request(msg.request, msg.respond_to); - return changed | deferred_changed; + let read_only = matches!(&msg.request.method, api::schema::Method::WorktreeList(_)); + let deferred_changed = self.app.handle_deferred_worktree_api_request( + msg.request, + msg.respond_to, + client_local, + ); + return changed | (deferred_changed && !read_only); } if self.foreground_client_id.is_some_and(|client_id| { self.clients |
