diff --git a/jira/bin/jira-search.sh b/jira/bin/jira-search.sh
index 9015a38..4710b75 100755
--- a/jira/bin/jira-search.sh
+++ b/jira/bin/jira-search.sh
@@ -331,21 +331,47 @@
 ## --------------------------------------------------------------------
 function do_user()
 {
-    local -n ans=$1; shift
+    local -n ref=$1; shift
 
     [[ -v argv_nobody ]] && return
 
+    local -a buffer=()
     local user='currentUser()'
-    if [[ -v argv_user ]]; then
-        user="$argv_user"
-    fi
+    [[ ! -v argv_users ]] && { declare -a argv_users=('currentUser()'); }
+    
+    local users
+    users="$(join_by ',' "${argv_users[@]}")"
 
     if [[ -v argv_assigned ]]; then
-        ans+=("assignee=${user}")
+        if [[ ${#argv_users[@]} -eq 1 ]]; then
+            buffer+=("assignee=${user}")
+        else
+            buffer+=("(asignee in ($users))")
+        fi
     fi
 
     if [[ -v argv_reported ]]; then
-        ans+=("reporter=${user}")
+        if [[ ${#argv_users[@]} -eq 1 ]]; then
+            buffer+=("reporter=${user}")
+        else
+            buffer+=("(reporter in ($users))")
+        fi
+    fi
+
+    ## --------------------------
+    ## Construct resolved queries
+    ## -------------------------- 
+    local query="$(join_by ' OR ' "${buffer[@]}")"
+
+    ## ----------------------------------------
+    ## Normalize parens for the composite query
+    ## ----------------------------------------
+    if [[ ${#ref[@]} -eq 0 ]]; then
+        ref+=("$query")
+    else
+        local buffer
+        buffer="$(join_by ' AND ' "(${ref[@]})" "($query)")"
+        ref=("$buffer")
     fi
 
     return
@@ -468,7 +494,6 @@
   --in                 Include ticket field if list item(s) match
   --not                Negate a query
   --is-empty           Include ticket if field is empty
-  --resolved-is-empty
   --unresolved         Query for open/unresolved jira tickets.
 
 [FILTER]
@@ -482,6 +507,7 @@
   --resolved(-not)-empty         Query for (closed)/open tickets
   --resolved-excl                Types to exclude
   --resolved-incl                Types to include
+  --resolved-in {start} {end}    Helps resolve join({and,or}) ambiguity
 
 [RANGE]
   --newer [d]      Search for tickets created < [n] days ago.
@@ -497,6 +523,11 @@
   --resolved       Query by field: resolved
   --user           Query by owner, requestor or 'my' jira tickets.
 
+[USER]
+  --user [u]       Login of user to query for
+  --assigned       Query for tickets assigned to the user
+  --reported       Query for tickets reported by the user
+
 [HELP]
   --help           This message
   --help-{topic}   Display switch help and use case.     (--help-resolved)
@@ -537,35 +568,41 @@
 
 # declare -g -i debug=1
 
+unset attrs
 while [ $# -gt 0 ]; do
 
     arg="$1"; shift
     banner "ARG=[$arg], \$@=[$@]"
-    
+
     [[ -v debug ]] && echo "** argv=[$arg] [$*]"
 
     getopt_detect_modifiers "$arg"
 
-    case "$arg" in
+    if getopts_switch__not arg; then
+        echo "DETECTED: NOT"
+        declare -i modifier_found=1
+    elif getopts_switch__empty arg; then
+        echo "DETECTED: EMPTY"
+        declare -i modifier_found=1
+    else
+        declare -i modifier_found=0
+    fi
 
+    if [[ $modifier_found -eq 1 ]]; then
+        echo "*ATTRS MODIFIER (LINENO:$LINENO): $(declare -p attrs)"
+        declare -a args=()
+        [[ ${#arg} -gt 0 ]] && { args+=("$arg"); }
+        [[ $# -gt 0 ]] && { args+=("$@"); }
+        set -- "${args[@]}"
+        continue
+    fi
+
+    case "$arg" in        
         '--help')    usage; exit 0                      ;;
         '--help-'*)  help_with "${arg/--help-/}"        ;;
         '--usage-'*) help_usage_show "${arg/--usage-/}" ;;
  
-        *'-is-empty'*)
-            is_switch_valid__is_empty "$arg"
-
-            declare -a args=()
-            arg="${arg:2}"               # remove prefix --
-            arg="${arg%-is-empty}"       # remove suffix token-name
-
-            ## Rewrite switch to bypass is-empty and match --required
-            args+=("--${arg}+is-empty")  # ARGV: gen JCL tokens
-            [[ $# -gt 0 ]] && { args+=("$@"); }
-
-            set -- "${args[@]}" # --is-empty resolved
-            ;;
-
+            
         ##-----------------##
         ##---]  MODES  [---##
         ##-----------------##
@@ -575,7 +612,7 @@
         ##------------------------##
         ##---]  SWITCH ALIAS  [---##
         ##------------------------##
-        --unresolved|--wip)
+        '--unresolved'|'--wip')
             declare -a args=()
             args+=('--resolved-is-empty')
             [[ $# -gt 0 ]] && { args+=("$@"); }
@@ -585,13 +622,25 @@
         ##-------------------##
         ##---]  BY USER  [---##
         ##-------------------##
-        --assigned) declare -g -i argv_assigned=1 ;;
-        --reported) declare -g -i argv_reported=1 ;;
-        --me)       declare -g -i argv_me=1       ;;
+        '--assigned') declare -g -i argv_assigned=1 ;;
+        '--reported') declare -g -i argv_reported=1 ;;
+        '--me')
+            declare -a args=()
+            args+=('--user' 'currentUser()')
+            args+=('--assigned')
+            args+=('--reported')
+            [[ $# -gt 0 ]] && { args+=("$@"); }
+            set -- "${args[@]}"
+            ;;
+        
         --nobody)   declare -g -i argv_nobody=1   ;;
-        --user)
+        '--user')
             arg="$1"; shift
             declare -g argv_user="$arg"
+
+            [[ ! -v argv_users ]] && { declare -g -a argv_users=(); }
+            argv_users+=("$arg")
+            declare -p argv_users
             ;;
 
         ##------------------##
@@ -690,32 +739,33 @@
             ;;
 
         '--resolved'*) # [-+]
+
+            gen_attrs__empty 'resolved'
+            
+            # [[ -v resolved_not_empty ]] && { declare -p resolved_not_empty; }
+            # [[ -v resolved_is_empty ]]  && { declare -p resolved_is_empty; }
+
             # function get_jql_reasons()
             case "$arg" in
+                '--resolved') ;;
 
-                *start) declare -g resolved_start="$1"; shift ;;
-                *end) declare -g resolved_end="$1";   shift ;;
+                *'start') declare -g resolved_start="$1"; shift ;;
+                *'end')   declare -g resolved_end="$1";   shift ;;
 
-                *not-empty) declare -g resolved_not_empty="$1" ;;
-                *'empty')
-                    banner "Detected [$arg]"
-                    declare -g resolved_is_empty="$1"
-                    ;;
-
-                *excl)
+                *'excl')
                     [[ ! -v resolved_excl ]] && { declare -g -a resolved_excl=(); }
                     val="\"$1\""; shift
                     html_encode val
                     resolved_excl+=("$val");
                     ;;
-                *incl)
+                *'incl')
                     [[ ! -v resolved_incl ]] && { declare -g -a resolved_incl=(); }
                     val="\"$1\""; shift
                     html_encode val
                     resolved_incl+=("$val");
                     ;;
-                *) ;;
-                *) error "Detected invalid --resolved-* modifier" ;;
+
+                *) error "Detected invalid --resolved-* modifier arg=[$arg]" ;;
             esac
             ;;
 
@@ -797,6 +847,11 @@
             ;;
     esac
 
+
+    if [[ -v resolved ]]; then
+        clear_attrs__empty
+    fi
+
 done
 
 ## --------------
@@ -812,25 +867,22 @@
 [[ -v components ]] && { do_components components suffix0; }
 do_labels labels_incl labels_excl suffix0
 do_text  text                     suffix0
-
 get_jcl_resolved                  suffix0
-    # do_resolved                       suffix0
+
 
 do_fixversion                     suffix0
 
-declare -p getopt_argv_any_OR
+[[ -v getopt_argv_any_OR ]] && { declare -p getopt_argv_any_OR; }
+
 if [[ -v getopt_argv_any_OR ]]; then
-    query="$(join_by 'OR' "${suffix0[0]}")"
+    query="$(join_by ' OR ' "${suffix0[0]}")"
 elif [[ -v getopt_argv_any_AND ]]; then
-    query="$(join_by 'AND' "${suffix0[0]}")"
+    query="$(join_by ' AND ' "${suffix0[0]}")"
 else
-#    query="$(join_by 'OR' "${suffix0[0]}")"
-    error "Ambiguous query [argv needs: --and or --or]"
+#    query="$(join_by ' OR ' "${suffix0[0]}")"
+    error "Ambiguous query [argv needs: --and or --or], argv=[$*]"
 fi
 
-# banner "$(declare -p query)"
-
-
 
 filter=''
 gen_filter filter suffix0
