diff options
| author | Igor Soarez <igor@soarez.org> | 2026-10-20 14:24:11 +0300 |
|---|---|---|
| committer | Igor Soarez <igor@soarez.org> | 2026-10-20 14:24:11 +0300 |
| commit | 0f8438547e50e10b3c09f17356b1d88b93718b79 (patch) | |
| tree | 325e8b45af647af653c10318197b0ad361d277a7 /tests | |
| parent | 6bccc5f786c479a335c55ad83487e077195cff44 (diff) | |
floating panel: always-on-top agent HUD with a global shortcut
a non-activating HUD panel (every Space, over full-screen apps, never takes
focus) listing the agents waiting for you, with working and idle summarized
on one line; rows jump to the agent, drag moves the panel and it remembers
its place. modes: when agents are waiting (default), always, off; ctrl+opt+
cmd+e shows or hides it on top of the mode, and a manual hide lasts until
another agent starts waiting. the shortcut is a carbon hotkey (no
accessibility permission; clashes are reported in the menu) configured in
~/.config/dingger/config.toml, reloaded on save. the menu bar app is split
into model, panel, hotkey and main.
tested: --selftest checks the visibility rules (it fails if a newly waiting
agent no longer re-shows a dismissed panel); e2e step 13 checks the panel
content through the real binary.
Diffstat (limited to 'tests')
| -rwxr-xr-x | tests/e2e.sh | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/e2e.sh b/tests/e2e.sh index 015d6aa..054bd51 100755 --- a/tests/e2e.sh +++ b/tests/e2e.sh @@ -282,6 +282,20 @@ else fail "node not found; cannot test the pi extension" fi +# --- 13. the floating panel: visibility rules and compact content ----------- +echo "13. floating panel" +if [ -x "$MENUBAR" ]; then + mb() { DINGGER_TMUX_SOCKET="$SOCK" DINGGER_BIN="$DINGGER" "$MENUBAR" "$@"; } + expect "panel visibility rules (selftest)" "mb --selftest | tail -1" "selftest ok" + expect "panel lists the waiting agent" "mb --print-panel | head -1 | cut -f1,2 | tr '\t' '|'" "โ done|pi" + expect "panel summarizes the rest" "mb --print-panel | tail -1" "โ 3 idle" + DINGGER_TMUX_SOCKET="$SOCK" "$DINGGER" focus --client "$CLIENT" --pane "$A2" + expect "A2 idle after the jump" "opt $A2 @agent_state" idle + expect "panel with nothing waiting" "mb --print-panel" "Nothing waiting ยท โ 4 idle" +else + fail "menu bar binary not found at $MENUBAR" +fi + echo echo "$PASSES passed, $FAILS failed" [ "$FAILS" -eq 0 ] || { echo "--- daemon log tail"; tail -30 "$DIR/daemon.log"; exit 1; } |
