fix(cli): ghostty-tmux skips pj task sessions; confirm ctrl-c before stopping bg tasks

This commit is contained in:
Prad Nukala committed 2026-10-14 18:15:42 -04:00
1 parent 954e1e1ae0
commit 04ade162b4
5 files changed
+20 -16

No files matched your search

+8 -5
View File
@@ -2,8 +2,11 @@
# Ghostty's `command`: every Ghostty window gets its own tmux session, never
# a mirror of another window's. Reclaim the oldest detached session (left by
# a closed window, or restored by tmux-continuum after a reboot) so closed
# windows don't pile up sessions; otherwise start a new one. The first window
# after boot starts the server, which is what triggers continuum's restore.
# windows don't pile up sessions; otherwise start a new one. pj-palette's
# background task sessions (@pj_task, named <session>:<task>) are never
# reclaimed, and targets use the session id since names may contain ':'.
# The first window after boot starts the server, which is what triggers
# continuum's restore.
# ponytail: two windows opened in the same instant can claim the same detached
# session; take a lock (flock) here if that ever bites.
@@ -12,8 +15,8 @@
# (bun for tmux-palette, fzf, zoxide).
[[ -d $HOME/.local/share/mise/shims ]] && PATH="$HOME/.local/share/mise/shims:$PATH"
oldest=$(tmux list-sessions -f '#{==:#{session_attached},0}' \
-F '#{session_created} #{session_name}' 2>/dev/null | sort -n | head -1 | cut -d' ' -f2-)
oldest=$(tmux list-sessions -f '#{&&:#{==:#{session_attached},0},#{!:#{@pj_task}}}' \
-F '#{session_created} #{session_id}' 2>/dev/null | sort -n | head -1 | cut -d' ' -f2)
[[ -n $oldest ]] && exec tmux attach-session -t "=$oldest"
[[ -n $oldest ]] && exec tmux attach-session -t "$oldest"
exec tmux new-session