From 0c9bfc26735e14c6fe1ffbcd7ef709b0d99e88a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Sat, 16 May 2026 05:19:54 -0400 Subject: [PATCH] perf(sync): avoid snapshot clone when scheduling uploads --- crates/ely_app/src/shell/sync_state.rs | 11 +---------- crates/ely_browser_core/src/state/sync.rs | 11 +++++++++++ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/crates/ely_app/src/shell/sync_state.rs b/crates/ely_app/src/shell/sync_state.rs index 243f320..f47d0bc 100644 --- a/crates/ely_app/src/shell/sync_state.rs +++ b/crates/ely_app/src/shell/sync_state.rs @@ -97,16 +97,7 @@ impl ElyShell { let ShellState::Ready(core) = &self.state else { return false; }; - let Some(snapshot) = core.snapshot().ok() else { - return false; - }; - matches!( - snapshot.sync_status.connection(), - SyncConnectionState::SignedIn - | SyncConnectionState::AwaitingDeviceApproval - | SyncConnectionState::SyncReady { .. } - | SyncConnectionState::SyncError { .. } - ) + core.cloud_sync_upload_enabled() } /// Inspect the on-disk bearer token and seed `SyncConnectionState` diff --git a/crates/ely_browser_core/src/state/sync.rs b/crates/ely_browser_core/src/state/sync.rs index 382ec2f..9d9884e 100644 --- a/crates/ely_browser_core/src/state/sync.rs +++ b/crates/ely_browser_core/src/state/sync.rs @@ -88,6 +88,17 @@ impl BrowserCore { self.sync_connection_state = state; } + #[must_use] + pub fn cloud_sync_upload_enabled(&self) -> bool { + matches!( + self.sync_connection_state, + SyncConnectionState::SignedIn + | SyncConnectionState::AwaitingDeviceApproval + | SyncConnectionState::SyncReady { .. } + | SyncConnectionState::SyncError { .. } + ) + } + pub(crate) fn sync_space_name_for(&self, space_id: &SpaceId) -> Option { self.spaces .iter()