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
This commit is contained in:
Levi Neely 2026-10-09 12:23:08 +02:00
parent e1d01716f3
commit c30c75cea9
1 changed files with 8 additions and 3 deletions

View File

@ -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