From f9a40d372744e7067725bb0af623173f39dbe171 Mon Sep 17 00:00:00 2001 From: haoyuren <13851610112@163.com> Date: Wed, 1 Apr 2026 17:30:10 -0500 Subject: Fix hook_wrapper: use PID tree instead of tmux display-message --- hook_wrapper.sh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 hook_wrapper.sh (limited to 'hook_wrapper.sh') diff --git a/hook_wrapper.sh b/hook_wrapper.sh new file mode 100755 index 0000000..3be932c --- /dev/null +++ b/hook_wrapper.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# Detect tmux session name via PID tree (not tmux display-message which returns last attached) +cd "$(dirname "$0")" +source .env 2>/dev/null + +# Detect session by walking PID tree up to tmux pane +detect_session() { + local pane_pids + pane_pids=$(tmux list-panes -a -F "#{pane_pid} #{session_name}" 2>/dev/null) || return + local check_pid=$$ + for i in $(seq 1 50); do + local match + match=$(echo "$pane_pids" | grep "^${check_pid} " | head -1 | cut -d' ' -f2) + if [ -n "$match" ]; then + echo "$match" + return + fi + local ppid + ppid=$(awk '{print $4}' /proc/${check_pid}/stat 2>/dev/null) || return + [ "$ppid" -le 1 ] && return + check_pid=$ppid + done +} + +export SESSION_NAME=$(detect_session) +if [ -z "$SESSION_NAME" ]; then + export SESSION_NAME="unknown" +fi +exec python3 /home/yurenh2/claude-bridge/check_tasks.py -- cgit v1.2.3