aboutsummaryrefslogtreecommitdiff
path: root/src/app/mod.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/app/mod.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/app/mod.rs')
-rw-r--r--src/app/mod.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/app/mod.rs b/src/app/mod.rs
index a24267e5..0b944cdf 100644
--- a/src/app/mod.rs
+++ b/src/app/mod.rs
@@ -109,6 +109,10 @@ pub struct App {
pub(crate) git_refresh_in_flight: bool,
pub(crate) git_refresh_due_after_in_flight: bool,
pub(crate) git_status_cache: HashMap<std::path::PathBuf, crate::workspace::GitStatusCacheEntry>,
+ pub(crate) pending_api_worktree_creates: HashMap<std::path::PathBuf, u64>,
+ pub(crate) pending_api_worktree_removes: HashMap<String, u64>,
+ pub(crate) pending_api_worktree_remove_paths: HashMap<std::path::PathBuf, u64>,
+ pub(crate) next_api_worktree_operation_id: u64,
pub(crate) last_sidebar_divider_click: Option<Instant>,
pub(crate) last_pane_click: Option<PaneClickState>,
pub(crate) next_resize_poll: Instant,
@@ -687,6 +691,10 @@ impl App {
git_refresh_in_flight: false,
git_refresh_due_after_in_flight: false,
git_status_cache: HashMap::new(),
+ pending_api_worktree_creates: HashMap::new(),
+ pending_api_worktree_removes: HashMap::new(),
+ pending_api_worktree_remove_paths: HashMap::new(),
+ next_api_worktree_operation_id: 1,
last_sidebar_divider_click: None,
last_pane_click: None,
next_resize_poll: Instant::now() + RESIZE_POLL_INTERVAL,