o: fix tui event subscription - use IDs not names

Event topics use session/agent IDs, not names. Look up IDs from
the idx files before subscribing to state events.
This commit is contained in:
Levi Neely 2026-10-09 12:47:29 +02:00
parent f490d4eef2
commit b5138fd55e
1 changed files with 23 additions and 16 deletions

View File

@ -422,22 +422,29 @@ cmd_tui() {
tmux set-option -t "$tmux_session" status-right "starting... | %H:%M" tmux set-option -t "$tmux_session" status-right "starting... | %H:%M"
tmux set-option -t "$tmux_session" status-right-length 64 tmux set-option -t "$tmux_session" status-right-length 64
# Subscribe to state events for this agent only # Get session and agent IDs for event subscription
echo "session.${s}.agent.${a}.state" | ollie-9p rdwrs event 2>/dev/null | while read -r topic state; do local sess_id agent_id
bg="" sess_id=$(ollie-9p read "session/idx" 2>/dev/null | awk -F'\t' -v name="$s" '$2 == name { print $1; exit }')
case "$state" in agent_id=$(ollie-9p read "session/$s/agent/idx" 2>/dev/null | awk -F'\t' -v name="$a" '$3 == name { print $2; exit }')
idle) bg="colour70" ;;
calling*) bg="colour214" ;; if [[ -n "$sess_id" && -n "$agent_id" ]]; then
thinking) bg="colour33" ;; # Subscribe to state events for this agent
paused) bg="colour245" ;; echo "session.${sess_id}.agent.${agent_id}.state" | ollie-9p rdwrs event 2>/dev/null | while read -r topic state; do
*) bg="default" ;; bg=""
esac case "$state" in
tmux set-option -t "$tmux_session" status-right-style "fg=default,bg=$bg" 2>/dev/null idle) bg="colour70" ;;
status=$(ollie-9p read "${PREFIX}/status" 2>/dev/null | head -n1) calling*) bg="colour214" ;;
tmux set-option -t "$tmux_session" status-right "${status:-$state} | %H:%M" 2>/dev/null thinking) bg="colour33" ;;
done & paused) bg="colour245" ;;
local bg_pid=$! *) bg="default" ;;
trap "kill $bg_pid 2>/dev/null" EXIT esac
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 &
local bg_pid=$!
trap "kill $bg_pid 2>/dev/null" EXIT
fi
tmux select-pane -t "${tmux_session}:0.1" tmux select-pane -t "${tmux_session}:0.1"
exec tmux attach -t "$tmux_session" exec tmux attach -t "$tmux_session"