From c30c75cea91bd4c8ebdb1d5a886606550882a2f3 Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Fri, 9 Oct 2026 12:23:08 +0200 Subject: [PATCH] o: fix tui with session names containing slashes - Sanitize tmux session name (replace / and : with -) - Include agent name in tmux session for uniqueness - Quote context arg in spawned o commands - Use colon separator for robustness --- data/scripts/o | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/data/scripts/o b/data/scripts/o index 75b0d9b..c1abea8 100755 --- a/data/scripts/o +++ b/data/scripts/o @@ -393,7 +393,10 @@ cmd_tui() { local s="$CTX_SESSION" local a="$CTX_AGENT" - local tmux_session="o-${s}" + # Sanitize session name for tmux (replace / and : with -) + local safe_session="${s//\//-}" + safe_session="${safe_session//:/-}" + local tmux_session="o-${safe_session}-${a}" # Check for subcommands if [[ "${1:-}" == "exit" ]]; then @@ -405,12 +408,14 @@ cmd_tui() { tmux kill-session -t "=${tmux_session}" 2>/dev/null || true # Layout: chat (top 80%), prompt (bottom 20%) + # Use colon separator in o commands to handle session names with slashes + local ctx="$s:$a" tmux new-session -d -s "$tmux_session" -c "$HOME" tmux set-option -g mouse on - tmux send-keys -t "=${tmux_session}" "o $s/$a log -n 1000 | grep -v '\\[\\[\\[.*\\]\\]\\]' | grep -v '^\`\`\`'; o $s/$a read chat" Enter + tmux send-keys -t "=${tmux_session}" "o '$ctx' log -n 1000 | grep -v '\\[\\[\\[.*\\]\\]\\]' | grep -v '^\`\`\`'; o '$ctx' read chat" Enter tmux split-window -t "=${tmux_session}" -v -l 20% - tmux send-keys -t "=${tmux_session}" "clear; o $s/$a prompt" Enter + tmux send-keys -t "=${tmux_session}" "clear; o '$ctx' prompt" Enter tmux set-option -t "=${tmux_session}" status-right "starting... | %H:%M" tmux set-option -t "=${tmux_session}" status-right-length 64