o: use filtered event stream instead of statewait loop

Subscribe to agent-specific state events via streaming rdwr pattern.
No more polling loop - single filtered subscription.
This commit is contained in:
Levi Neely 2026-10-06 12:39:25 +02:00
parent 59f162a57e
commit 9d0b59671c
1 changed files with 13 additions and 14 deletions

View File

@ -320,8 +320,8 @@ cmd_tui() {
tmux set-option -t "=${tmux_session}" status-right "starting... | %H:%M"
tmux set-option -t "=${tmux_session}" status-right-length 64
while true; do
ollie-9p read "${PREFIX}/statewait" 2>/dev/null | while read -r state; do
# Subscribe to state events for this agent only
echo "session.${s}.agent.${a}.state" | ollie-9p rdwrs event 2>/dev/null | while read -r topic state; do
bg=""
case "$state" in
idle) bg="colour70" ;;
@ -333,7 +333,6 @@ cmd_tui() {
tmux set-option -t "=${tmux_session}" status-right-style "fg=default,bg=$bg" 2>/dev/null
status=$(ollie-9p read "${PREFIX}/status" 2>/dev/null | head -n1)
tmux set-option -t "=${tmux_session}" status-right "${status:-$state} | %H:%M" 2>/dev/null
done
done &
local bg_pid=$!
trap "kill $bg_pid 2>/dev/null" EXIT