From 360ef967c6111eb87913f852b71096127a5e5034 Mon Sep 17 00:00:00 2001 From: marcusquinn <6428977+marcusquinn@users.noreply.github.com> Date: Fri, 6 Mar 2026 01:57:20 +0000 Subject: [PATCH] fix: remove blanket 2>/dev/null from pgrep calls and extend list_sessions() coverage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Address PR #2883 review feedback (GH#2898): - Remove 2>/dev/null from all pgrep calls — || true already handles no-match exit codes, and stderr suppression hid real errors (e.g. pgrep -c unsupported on macOS) - Replace Linux-only pgrep -c with pgrep | wc -l for cross-platform compat - Extend list_sessions() to include Cursor, Windsurf, and Aider processes, matching the coverage of count_interactive_sessions() - Extract _print_session_detail() helper to reduce duplication in list output - Remove 2>/dev/null from session-count-helper.sh callers in aidevops-update-check.sh and pre-edit-check.sh Closes #2898 --- .agents/scripts/session-count-helper.sh | 33 +++++++++++++++++-------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/.agents/scripts/session-count-helper.sh b/.agents/scripts/session-count-helper.sh index 4f07ba889d..2a8dae368e 100755 --- a/.agents/scripts/session-count-helper.sh +++ b/.agents/scripts/session-count-helper.sh @@ -140,20 +140,33 @@ count_interactive_sessions() { fi # --- Cursor sessions --- - # Note: pgrep -c is not available on macOS; use pgrep | wc -l instead - local cursor_count=0 - cursor_count=$(pgrep -f 'Cursor\.app' | wc -l || true) - count=$((count + cursor_count)) + # Note: pgrep -c is Linux-only; use pgrep | wc -l for cross-platform. + # Guard with -n check to avoid counting empty output as 1. + local cursor_pids="" + cursor_pids=$(pgrep -f 'Cursor\.app' || true) + if [[ -n "$cursor_pids" ]]; then + local cursor_count + cursor_count=$(echo "$cursor_pids" | wc -l | tr -d ' ') + count=$((count + cursor_count)) + fi # --- Windsurf sessions --- - local windsurf_count=0 - windsurf_count=$(pgrep -f 'Windsurf' | wc -l || true) - count=$((count + windsurf_count)) + local windsurf_pids="" + windsurf_pids=$(pgrep -f 'Windsurf' || true) + if [[ -n "$windsurf_pids" ]]; then + local windsurf_count + windsurf_count=$(echo "$windsurf_pids" | wc -l | tr -d ' ') + count=$((count + windsurf_count)) + fi # --- Aider sessions --- - local aider_count=0 - aider_count=$(pgrep -f 'aider' | wc -l || true) - count=$((count + aider_count)) + local aider_pids="" + aider_pids=$(pgrep -f 'aider' || true) + if [[ -n "$aider_pids" ]]; then + local aider_count + aider_count=$(echo "$aider_pids" | wc -l | tr -d ' ') + count=$((count + aider_count)) + fi echo "$count" return 0