aboutsummaryrefslogtreecommitdiff
path: root/menubar/model.swift
diff options
context:
space:
mode:
Diffstat (limited to 'menubar/model.swift')
-rw-r--r--menubar/model.swift9
1 files changed, 9 insertions, 0 deletions
diff --git a/menubar/model.swift b/menubar/model.swift
index 760ff31..513f9fb 100644
--- a/menubar/model.swift
+++ b/menubar/model.swift
@@ -94,6 +94,8 @@ struct Row: Equatable {
var location: String { "\(session) · \(window)" }
var waiting: Bool { status == .blocked || status == .done }
+ /// Only an agent you have seen can be marked unread (done again).
+ var canMarkUnread: Bool { status == .idle }
/// The row's title text: the agent's name, or its harness when unnamed.
var label: String {
@@ -286,6 +288,13 @@ func focus(_ paneId: String) {
if !result.ok { log("jump: dingger focus --pane \(paneId) failed: \(result.output)") }
}
+/// Mark an idle agent unread: `dingger unread` returns once it shows as
+/// done.
+func markAgentUnread(_ paneId: String) {
+ let result = runReporting(dinggerBinary, ["unread", "--pane", paneId])
+ log("unread: \(paneId) \(result.ok ? "marked" : "failed: \(result.output)")")
+}
+
// MARK: rendering
/// herdr-style summary: `×1 ✓3 ◐2` in priority order; `○` when every agent