From b5138fd55ea68c18ef62dbefc27bb59b121b2b0d Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Fri, 9 Oct 2026 12:47:29 +0200 Subject: [PATCH] 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. --- data/scripts/o | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/data/scripts/o b/data/scripts/o index 4849abb..c765609 100755 --- a/data/scripts/o +++ b/data/scripts/o @@ -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-length 64 - # 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" ;; - calling*) bg="colour214" ;; - thinking) bg="colour33" ;; - paused) bg="colour245" ;; - *) bg="default" ;; - 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 + # Get session and agent IDs for event subscription + local sess_id agent_id + sess_id=$(ollie-9p read "session/idx" 2>/dev/null | awk -F'\t' -v name="$s" '$2 == name { print $1; exit }') + agent_id=$(ollie-9p read "session/$s/agent/idx" 2>/dev/null | awk -F'\t' -v name="$a" '$3 == name { print $2; exit }') + + if [[ -n "$sess_id" && -n "$agent_id" ]]; then + # Subscribe to state events for this agent + echo "session.${sess_id}.agent.${agent_id}.state" | ollie-9p rdwrs event 2>/dev/null | while read -r topic state; do + bg="" + case "$state" in + idle) bg="colour70" ;; + calling*) bg="colour214" ;; + thinking) bg="colour33" ;; + paused) bg="colour245" ;; + *) bg="default" ;; + 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" exec tmux attach -t "$tmux_session"