aboutsummaryrefslogtreecommitdiff
path: root/packaging/launchd
diff options
context:
space:
mode:
authorIgor Soarez <igor@soarez.org>2026-10-20 12:43:07 +0300
committerIgor Soarez <igor@soarez.org>2026-10-20 12:43:07 +0300
commit4af6a4f625b1965b783c9efb857f8ac665adb8eb (patch)
treedd2dac9627735fd02b3372a4f569125a702ba57a /packaging/launchd
parent943fc940d9c387916708cb3fdc912323c92ef6dc (diff)
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
Diffstat (limited to 'packaging/launchd')
-rw-r--r--packaging/launchd/dev.dingger.dingger.plist2
-rw-r--r--packaging/launchd/dev.dingger.menubar.plist28
2 files changed, 17 insertions, 13 deletions
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 @@
<key>PATH</key>
<string>/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin</string>
<key>RUST_LOG</key>
- <string>debug</string>
+ <string>info</string>
</dict>
<key>KeepAlive</key>
<true/>
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 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
- <key>Label</key>
- <string>dev.dingger.menubar</string>
- <key>ProgramArguments</key>
- <array>
- <string>/Users/sz/Applications/dingger.app/Contents/MacOS/dingger-menu</string>
- </array>
- <key>RunAtLoad</key>
- <true/>
- <key>KeepAlive</key>
- <true/>
- <key>ThrottleInterval</key>
- <integer>10</integer>
+ <key>KeepAlive</key>
+ <true/>
+ <key>Label</key>
+ <string>dev.dingger.menubar</string>
+ <key>ProgramArguments</key>
+ <array>
+ <string>/Users/YOURUSER/Applications/dingger.app/Contents/MacOS/dingger-menu</string>
+ </array>
+ <key>RunAtLoad</key>
+ <true/>
+ <key>StandardErrorPath</key>
+ <string>/Users/YOURUSER/Library/Logs/dingger-menubar.log</string>
+ <key>StandardOutPath</key>
+ <string>/Users/YOURUSER/Library/Logs/dingger-menubar.log</string>
+ <key>ThrottleInterval</key>
+ <integer>10</integer>
</dict>
</plist>