diff --git a/.claude/scripts/check-messages.sh b/.claude/scripts/check-messages.sh index 549389b..4a1f645 100644 --- a/.claude/scripts/check-messages.sh +++ b/.claude/scripts/check-messages.sh @@ -5,10 +5,36 @@ API="http://172.16.3.30:8001" SCRIPT_DIR="$(cd "$(dirname "$0")/.." && pwd)" MODE_FILE="${SCRIPT_DIR}/current-mode" +# Read short username alias from identity.json (if present) +IDENTITY_FILE="${SCRIPT_DIR}/identity.json" +USER_ALIAS="" +if [ -f "$IDENTITY_FILE" ]; then + USER_ALIAS=$(jq -r '.user // empty' "$IDENTITY_FILE" 2>/dev/null) +fi + # --- Unread messages --------------------------------------------------------- +# Query for messages addressed to full session ID result=$(curl -s --connect-timeout 3 "${API}/api/coord/messages?to_session=${SESSION}&unread_only=true" 2>/dev/null) +# Also query for messages addressed to the short username alias (e.g. "howard") +result_alias="" +if [ -n "$USER_ALIAS" ] && [ "$USER_ALIAS" != "$SESSION" ]; then + result_alias=$(curl -s --connect-timeout 3 "${API}/api/coord/messages?to_session=${USER_ALIAS}&unread_only=true" 2>/dev/null) +fi + +# Merge both result sets (combine .messages arrays, recompute total) +if [ -n "$result_alias" ]; then + alias_msgs=$(echo "$result_alias" | jq '.messages // []' 2>/dev/null) + if [ -n "$alias_msgs" ] && [ "$alias_msgs" != "[]" ] && [ "$alias_msgs" != "null" ]; then + if [ -n "$result" ]; then + result=$(echo "$result" "$result_alias" | jq -s '{total: (.[0].total + .[1].total), messages: (.[0].messages + .[1].messages)}' 2>/dev/null) + else + result="$result_alias" + fi + fi +fi + if [ -n "$result" ]; then count=$(echo "$result" | jq '.total' 2>/dev/null) if [ -n "$count" ] && [ "$count" -gt 0 ]; then