aboutsummaryrefslogtreecommitdiff
path: root/crates/dinggerd/src/tmux.rs
diff options
context:
space:
mode:
authorIgor Soarez <igor@soarez.org>2026-11-05 19:21:43 +0200
committerIgor Soarez <igor@soarez.org>2026-11-05 19:21:43 +0200
commit5842b093cc502b46076423e4f8efdbbc568f86aa (patch)
tree35b5a2ab971a2b9abb3188e56e0416033b4f13ea /crates/dinggerd/src/tmux.rs
parent3b7b7ed091bae3b0609c38b2d445201cc4b7a026 (diff)
pi: a failed run says so: a 'failed' alert with the error, and the error in red until seen
Diffstat (limited to 'crates/dinggerd/src/tmux.rs')
-rw-r--r--crates/dinggerd/src/tmux.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/crates/dinggerd/src/tmux.rs b/crates/dinggerd/src/tmux.rs
index 80adbb5..7845381 100644
--- a/crates/dinggerd/src/tmux.rs
+++ b/crates/dinggerd/src/tmux.rs
@@ -38,6 +38,8 @@ pub struct Pane {
pub written_cost: String,
/// How full the agent's context window is, in whole percent.
pub written_context: String,
+ /// Why its last run failed, while it is done and unseen.
+ pub written_error: String,
}
@@ -124,14 +126,15 @@ pub fn list_panes() -> Result<Vec<Pane>, String> {
"#{@dingger_control}\t",
"#{@dingger_draft}\t",
"#{@dingger_cost}\t",
- "#{@dingger_context}",
+ "#{@dingger_context}\t",
+ "#{@dingger_error}",
);
let out = run_tmux(&["list-panes", "-a", "-F", format])?;
let mut panes: Vec<Pane> = Vec::new();
let mut process_tree = None;
for line in out.lines() {
let fields: Vec<&str> = line.split('\t').collect();
- if fields.len() < 25 {
+ if fields.len() < 26 {
continue;
}
let attended = fields[4] == "1" && fields[5] != "0";
@@ -179,6 +182,7 @@ pub fn list_panes() -> Result<Vec<Pane>, String> {
written_draft: fields[22].to_string(),
written_cost: fields[23].to_string(),
written_context: fields[24].to_string(),
+ written_error: fields[25].to_string(),
});
}
Ok(panes)