fix: check-messages hook now catches messages sent to username alias
Hook was querying only to_session=HOSTNAME/claude-main, missing messages addressed to the short alias (e.g. "howard"). Now reads identity.json for the alias and queries both, merging results before display. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -5,10 +5,36 @@ API="http://172.16.3.30:8001"
|
|||||||
SCRIPT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
||||||
MODE_FILE="${SCRIPT_DIR}/current-mode"
|
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 ---------------------------------------------------------
|
# --- 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)
|
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
|
if [ -n "$result" ]; then
|
||||||
count=$(echo "$result" | jq '.total' 2>/dev/null)
|
count=$(echo "$result" | jq '.total' 2>/dev/null)
|
||||||
if [ -n "$count" ] && [ "$count" -gt 0 ]; then
|
if [ -n "$count" ] && [ "$count" -gt 0 ]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user