aboutsummaryrefslogtreecommitdiff
path: root/src/server/headless.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-06-19 18:59:43 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-06-19 18:59:43 +0300
commit46a2b259a71828e7fcdeab1f67ef675304e2ca14 (patch)
tree0b8aa654d8977ff24ecb25763e961d4a6fa78615 /src/server/headless.rs
parent26c5f97a908c1ebe4228302d1b9e8c5423b2ab75 (diff)
fix: defer api worktree operations
refs #686 refs #657 refs #662 refs https://github.com/ogulcancelik/herdr/discussions/687
Diffstat (limited to 'src/server/headless.rs')
-rw-r--r--src/server/headless.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/server/headless.rs b/src/server/headless.rs
index aeda3a3b..35e17efe 100644
--- a/src/server/headless.rs
+++ b/src/server/headless.rs
@@ -2611,6 +2611,15 @@ impl HeadlessServer {
};
self.sync_foreground_client_state();
+ if matches!(
+ &msg.request.method,
+ api::schema::Method::WorktreeCreate(_) | api::schema::Method::WorktreeRemove(_)
+ ) {
+ let deferred_changed = self
+ .app
+ .handle_deferred_worktree_api_request(msg.request, msg.respond_to);
+ return changed | deferred_changed;
+ }
let response = if matches!(
&msg.request.method,
api::schema::Method::ServerReloadConfig(_)