diff --git a/skills/kugetsu/scripts/kugetsu b/skills/kugetsu/scripts/kugetsu index 9b876bd..ee7cc02 100755 --- a/skills/kugetsu/scripts/kugetsu +++ b/skills/kugetsu/scripts/kugetsu @@ -857,14 +857,14 @@ cmd_start() { remove_worktree_for_issue "$issue_ref" exit 1 fi - trap release_agent_slot EXIT if [ "$DEBUG_MODE" = true ]; then - opencode run "$message" --fork --session "$base_session_id" --dir "$worktree_path" 2>&1 | tee "$SESSIONS_DIR/$session_file.debug.log" + opencode run "$message" --fork --session "$base_session_id" --dir "$worktree_path" 2>&1 | tee "$SESSIONS_DIR/$session_file.debug.log" & else - opencode run "$message" --fork --session "$base_session_id" --dir "$worktree_path" 2>&1 + opencode run "$message" --fork --session "$base_session_id" --dir "$worktree_path" 2>&1 & fi + local child_pid=$! + wait $child_pid release_agent_slot - trap - EXIT local after_sessions=$(opencode session list 2>/dev/null | grep -oP '^ses_\w+' | sort) local new_session_id="" @@ -937,23 +937,23 @@ cmd_continue() { echo "Error: Max concurrent agents ($MAX_CONCURRENT_AGENTS) reached. Try again later." >&2 exit 1 fi - trap release_agent_slot EXIT if [ -n "$worktree_path" ] && [ -d "$worktree_path" ]; then echo "Using worktree: $worktree_path" if [ "$DEBUG_MODE" = true ]; then - opencode run "$message" --continue --session "$opencode_session_id" --dir "$worktree_path" 2>&1 | tee "$session_path.debug.log" + opencode run "$message" --continue --session "$opencode_session_id" --dir "$worktree_path" 2>&1 | tee "$session_path.debug.log" & else - opencode run "$message" --continue --session "$opencode_session_id" --dir "$worktree_path" + opencode run "$message" --continue --session "$opencode_session_id" --dir "$worktree_path" 2>&1 & fi else if [ "$DEBUG_MODE" = true ]; then - opencode run "$message" --continue --session "$opencode_session_id" 2>&1 | tee "$session_path.debug.log" + opencode run "$message" --continue --session "$opencode_session_id" 2>&1 | tee "$session_path.debug.log" & else - opencode run "$message" --continue --session "$opencode_session_id" + opencode run "$message" --continue --session "$opencode_session_id" 2>&1 & fi fi + local child_pid=$! + wait $child_pid release_agent_slot - trap - EXIT } cmd_list() {