From 4af6a4f625b1965b783c9efb857f8ac665adb8eb Mon Sep 17 00:00:00 2001 From: Igor Soarez Date: Tue, 20 Oct 2026 12:43:07 +0300 Subject: rebuild the status model as herdr's state machine, event-driven and tested the seen logic was inverted: first observations were marked done and real completions idle, so the menu showed teal for agents that did nothing and green for agents that finished, and attending changed nothing visible. - watcher::advance is herdr's apply_pane_state_change + mark_active_tab_seen as a pure function, unit-tested against herdr's own cases; attendance is window-level like herdr's active tab - hook reports are events applied in order, so a turn shorter than a poll is still a completion - event-driven: hook reports, dingger focus, and tmux focus hooks wake the watcher; notifications are delivered off-thread (the macos call blocked ticks for 2+ seconds) after the pane options are written - all per-pane state persists in tmux pane options, so restarts and deploys lose nothing, including the authoritative hook state - every click goes through dingger focus: the menu bar shells out to it and the status-line binding runs it; it picks the right client, skips the window already shown, and activates the terminal app hosting the client - the ready queue is ordered like the menu (blocked first, then oldest done) - menu bar and tmux segment render herdr's symbols in herdr's palette - tests/e2e.sh: 60 assertions against an isolated tmux server with a real client, a 30s poll interval, and a slow fake notifier --- packaging/launchd/dev.dingger.dingger.plist | 2 +- packaging/launchd/dev.dingger.menubar.plist | 28 ++++++++++++++++------------ 2 files changed, 17 insertions(+), 13 deletions(-) (limited to 'packaging/launchd') diff --git a/packaging/launchd/dev.dingger.dingger.plist b/packaging/launchd/dev.dingger.dingger.plist index 212b903..2bb434a 100644 --- a/packaging/launchd/dev.dingger.dingger.plist +++ b/packaging/launchd/dev.dingger.dingger.plist @@ -7,7 +7,7 @@ PATH /opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin RUST_LOG - debug + info KeepAlive diff --git a/packaging/launchd/dev.dingger.menubar.plist b/packaging/launchd/dev.dingger.menubar.plist index c0b5b50..5ff8f0a 100644 --- a/packaging/launchd/dev.dingger.menubar.plist +++ b/packaging/launchd/dev.dingger.menubar.plist @@ -2,17 +2,21 @@ - Label - dev.dingger.menubar - ProgramArguments - - /Users/sz/Applications/dingger.app/Contents/MacOS/dingger-menu - - RunAtLoad - - KeepAlive - - ThrottleInterval - 10 + KeepAlive + + Label + dev.dingger.menubar + ProgramArguments + + /Users/YOURUSER/Applications/dingger.app/Contents/MacOS/dingger-menu + + RunAtLoad + + StandardErrorPath + /Users/YOURUSER/Library/Logs/dingger-menubar.log + StandardOutPath + /Users/YOURUSER/Library/Logs/dingger-menubar.log + ThrottleInterval + 10 -- cgit v1.2.3