diff options
Diffstat (limited to 'crates/dinggerd/src/main.rs')
| -rw-r--r-- | crates/dinggerd/src/main.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/crates/dinggerd/src/main.rs b/crates/dinggerd/src/main.rs index 1fc5cd2..44db683 100644 --- a/crates/dinggerd/src/main.rs +++ b/crates/dinggerd/src/main.rs @@ -443,7 +443,8 @@ fn mark_unread(pane: Option<String>) -> Result<(), String> { } /// Every agent pane in herdr's priority order (blocked, done, working, -/// idle), oldest-waiting first within a status. +/// idle), oldest-waiting first within a status. ✎ marks a draft left in +/// the agent's input box. fn status() -> Result<(), String> { let mut panes: Vec<_> = tmux::list_panes()? .into_iter() @@ -456,7 +457,8 @@ fn status() -> Result<(), String> { panes.sort_by_key(|pane| { let status = watcher::Status::from_label(&pane.written_state); let importance = importance::Importance::from_option(&pane.written_importance); - (watcher::list_order(status, importance, pane.written_since.parse().ok()), pane.display_target.clone()) + let since = pane.written_since.parse().ok(); + (watcher::list_order(status, watcher::forgotten_draft(pane), importance, since), pane.display_target.clone()) }); let place = |pane: &tmux::Pane| pane.display_target.replacen(':', " · ", 1); let width = panes.iter().map(|pane| place(pane).chars().count()).max().unwrap_or(5).max(5); @@ -464,12 +466,13 @@ fn status() -> Result<(), String> { for pane in &panes { let state = if pane.written_state.is_empty() { "-" } else { &pane.written_state }; let agent = pane.agent.map(detect_core::agent_label).unwrap_or("-"); + let draft = if watcher::forgotten_draft(pane) { "✎ " } else { "" }; let name = match importance::Importance::from_option(&pane.written_importance) { importance::Importance::High => format!("! {}", pane.written_name), importance::Importance::Low => format!("{} (low)", pane.written_name), importance::Importance::Normal => pane.written_name.clone(), }; - println!("{state:<8} {:<width$} {agent:<7} {}", place(pane), name.trim()); + println!("{state:<8} {:<width$} {agent:<7} {draft}{}", place(pane), name.trim()); } Ok(()) } |
