From 6bccc5f786c479a335c55ad83487e077195cff44 Mon Sep 17 00:00:00 2001 From: Igor Soarez Date: Tue, 20 Oct 2026 13:59:29 +0300 Subject: menu rows lead with the agent's session name; harness and place move below MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit herdr's sidebar shows the session name in place of the harness label (via the user's herdr-session-name extension). dingger reads it from the title pi already sets ("π - - "); other agents use herdr's terminal_title_stripped rule, and claude's default "Claude Code" title or tmux's host-name title count as no name. the daemon stores it as @agent_name for every surface. menu rows: colored status symbol + name as the title (the harness, dimmed, only when unnamed), and a native subtitle "session · window · harness", plus how long done/blocked agents have been waiting; one separator between agents waiting for you and the rest. dingger status shows the same. --- crates/dinggerd/src/main.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'crates/dinggerd/src/main.rs') diff --git a/crates/dinggerd/src/main.rs b/crates/dinggerd/src/main.rs index f458e18..285f83a 100644 --- a/crates/dinggerd/src/main.rs +++ b/crates/dinggerd/src/main.rs @@ -3,6 +3,7 @@ mod hooks; mod integrations; mod manifest_update; +mod names; mod notify; mod tmux; mod watcher; @@ -201,11 +202,13 @@ fn status() -> Result<(), String> { let since = pane.written_since.parse::().unwrap_or(u64::MAX); (std::cmp::Reverse(status.priority()), since, pane.display_target.clone()) }); - println!("{:<8} {:<10} TARGET", "STATUS", "AGENT"); - for pane in panes { + 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); + println!("{:<8} {: