aboutsummaryrefslogtreecommitdiff
path: root/src/app/mod.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-04-06 19:24:33 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-04-06 19:24:33 +0300
commitcbe5c150baa147649912bb1bfad40522dc3c25f3 (patch)
tree44622605ee8972bf8cf27f2ae784a122712b00f9 /src/app/mod.rs
parent62b1f5e011c46403c3b78f661a3e5a385d2ec72c (diff)
feat: add all-workspaces scope to agent panel
Diffstat (limited to 'src/app/mod.rs')
-rw-r--r--src/app/mod.rs22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/app/mod.rs b/src/app/mod.rs
index 14274210..f06bbb19 100644
--- a/src/app/mod.rs
+++ b/src/app/mod.rs
@@ -157,8 +157,13 @@ impl App {
let render_dirty = Arc::new(AtomicBool::new(false));
// Try to restore previous session
- let (workspaces, active, selected) = if no_session {
- (Vec::new(), None, 0)
+ let (workspaces, active, selected, agent_panel_scope) = if no_session {
+ (
+ Vec::new(),
+ None,
+ 0,
+ state::AgentPanelScope::CurrentWorkspace,
+ )
} else if let Some(snap) = crate::persist::load() {
let ws = crate::persist::restore(
&snap,
@@ -170,15 +175,20 @@ impl App {
);
if ws.is_empty() {
info!("session file found but no workspaces restored");
- (Vec::new(), None, 0)
+ (Vec::new(), None, 0, snap.agent_panel_scope)
} else {
info!(count = ws.len(), "session restored");
let active = snap.active.filter(|&i| i < ws.len());
let selected = snap.selected.min(ws.len().saturating_sub(1));
- (ws, active, selected)
+ (ws, active, selected, snap.agent_panel_scope)
}
} else {
- (Vec::new(), None, 0)
+ (
+ Vec::new(),
+ None,
+ 0,
+ state::AgentPanelScope::CurrentWorkspace,
+ )
};
let latest_release_notes_available = crate::release_notes::load_latest().is_some();
@@ -240,6 +250,7 @@ impl App {
sidebar_width: config.ui.sidebar_width,
sidebar_width_auto: true,
sidebar_collapsed: false,
+ agent_panel_scope,
confirm_close: config.ui.confirm_close,
accent: crate::config::parse_color(&config.ui.accent),
sound: config.ui.sound.clone(),
@@ -422,6 +433,7 @@ impl App {
&self.state.workspaces,
self.state.active,
self.state.selected,
+ self.state.agent_panel_scope,
);
crate::persist::save(&snap);
}