aboutsummaryrefslogtreecommitdiff
path: root/src/persist
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-09-01 15:48:22 +0300
committerGitHub <noreply@github.com>2026-09-01 15:48:22 +0300
commit207be3c771d281baae6e5fa0fb74be9a056e97a2 (patch)
treed7b037ecdf629224a048c841d11659efdc23507d /src/persist
parent8a6d697308162874a236c84aac0b0f8c7ac01f83 (diff)
refactor: render the shell in the client (#3487)
* feat: add opt-in client-rendered shell * feat: add client-owned shell mouse controls * feat: complete client-owned shell chrome * feat: add client-owned shell settings and notifications * feat: run client shell custom commands * feat: render popup terminals in client shell * feat: add client-owned scrollback and copy mode * fix: preserve client worktree trust defaults * feat: render startup diagnostics in client shell * feat: render onboarding in client shell * feat: render product announcements in client shell * feat: render release notes in client shell * feat: render mobile switcher in client shell * feat: render kitty graphics in client shell * fix: preserve client shell lifecycle coherence * refactor: route client shell commands through endpoint connections * refactor: make the client-rendered shell the default * refactor: remove monolithic launch mode * refactor: complete client-rendered shell cutover * perf: retain client pane surface updates * perf: scale retained pane surface updates * perf: remove remote pane input latency * test: make client shell checks platform-independent * fix: prevent client timer starvation * test: fix client shell platform gates * test: accept retained surfaces in cross-area checks * test: make client mode assertions platform-neutral * fix: badge only outdated integrations
Diffstat (limited to 'src/persist')
-rw-r--r--src/persist/snapshot.rs37
1 files changed, 18 insertions, 19 deletions
diff --git a/src/persist/snapshot.rs b/src/persist/snapshot.rs
index 39f790dd..e6ca70f9 100644
--- a/src/persist/snapshot.rs
+++ b/src/persist/snapshot.rs
@@ -258,9 +258,6 @@ pub fn capture(
terminal_runtimes: &TerminalRuntimeRegistry,
active: Option<usize>,
selected: usize,
- sidebar_width: u16,
- sidebar_section_split: f32,
- collapsed_space_keys: std::collections::HashSet<String>,
) -> SessionSnapshot {
SessionSnapshot {
version: SNAPSHOT_VERSION,
@@ -270,9 +267,9 @@ pub fn capture(
.collect(),
active,
selected,
- sidebar_width: Some(sidebar_width),
- sidebar_section_split: Some(sidebar_section_split),
- collapsed_space_keys,
+ sidebar_width: None,
+ sidebar_section_split: None,
+ collapsed_space_keys: std::collections::HashSet::new(),
}
}
@@ -538,9 +535,6 @@ mod tests {
terminal_runtimes,
state.active,
state.selected,
- state.sidebar_width,
- state.sidebar_section_split,
- state.collapsed_space_keys.clone(),
)
}
@@ -867,16 +861,13 @@ mod tests {
}
#[test]
- fn capture_contract_tracks_sidebar_state() {
- let mut state = state_with_workspaces(&["one"]);
- state.sidebar_width = 31;
- state.sidebar_section_split = 0.4;
- state.collapsed_space_keys.insert("repo-key".into());
+ fn capture_contract_omits_legacy_server_chrome_state() {
+ let state = state_with_workspaces(&["one"]);
let snapshot = capture_from_state(&state);
- assert_eq!(snapshot.sidebar_width, Some(31));
- assert_eq!(snapshot.sidebar_section_split, Some(0.4));
- assert!(snapshot.collapsed_space_keys.contains("repo-key"));
+ assert_eq!(snapshot.sidebar_width, None);
+ assert_eq!(snapshot.sidebar_section_split, None);
+ assert!(snapshot.collapsed_space_keys.is_empty());
}
#[test]
@@ -920,7 +911,11 @@ mod tests {
let mut state = state_with_workspaces(&["one"]);
let root = state.workspaces[0].tabs[0].root_pane;
let second = state.workspaces[0].test_split(Direction::Horizontal);
- crate::ui::compute_view(&mut state, Rect::new(0, 0, 106, 20));
+ crate::ui::compute_view_with_runtime_registry(
+ &mut state,
+ &crate::terminal::TerminalRuntimeRegistry::new(),
+ Rect::new(0, 0, 106, 20),
+ );
state.navigate_pane(NavDirection::Right);
@@ -935,7 +930,11 @@ mod tests {
let root = state.workspaces[0].tabs[0].root_pane;
state.workspaces[0].test_split(Direction::Horizontal);
state.workspaces[0].layout.focus_pane(root);
- crate::ui::compute_view(&mut state, Rect::new(0, 0, 106, 20));
+ crate::ui::compute_view_with_runtime_registry(
+ &mut state,
+ &crate::terminal::TerminalRuntimeRegistry::new(),
+ Rect::new(0, 0, 106, 20),
+ );
let before = capture_from_state(&state);
state.resize_pane(NavDirection::Right);