diff --git a/.env.example b/.env.example index aeaa94a..fd1e2ea 100644 --- a/.env.example +++ b/.env.example @@ -10,7 +10,7 @@ PROJECT_NAME=jama # Image version to run (set by build.sh, or use 'latest') -JAMA_VERSION=0.9.31 +JAMA_VERSION=0.9.32 # App port — the host port Docker maps to the container PORT=3000 diff --git a/backend/package.json b/backend/package.json index 8e3fe6b..edaba44 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "jama-backend", - "version": "0.9.31", + "version": "0.9.32", "description": "TeamChat backend server", "main": "src/index.js", "scripts": { diff --git a/build.sh b/build.sh index 4c6ac88..118d61b 100644 --- a/build.sh +++ b/build.sh @@ -13,7 +13,7 @@ # ───────────────────────────────────────────────────────────── set -euo pipefail -VERSION="${1:-0.9.31}" +VERSION="${1:-0.9.32}" ACTION="${2:-}" REGISTRY="${REGISTRY:-}" IMAGE_NAME="jama" diff --git a/frontend/package.json b/frontend/package.json index 0d98fcc..4e9019c 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "jama-frontend", - "version": "0.9.31", + "version": "0.9.32", "private": true, "scripts": { "dev": "vite", diff --git a/frontend/src/components/ChatWindow.jsx b/frontend/src/components/ChatWindow.jsx index 8fc3745..d816467 100644 --- a/frontend/src/components/ChatWindow.jsx +++ b/frontend/src/components/ChatWindow.jsx @@ -241,7 +241,7 @@ export default function ChatWindow({ group, onBack, onGroupUpdated, onDirectMess {isDirect ? peerName : group.name} {group.is_readonly ? read-only : null} - {isDirect && isOnline &&
Online
} + {isDirect &&
Private message
} {!isDirect && group.type === 'private' &&
Private group
} diff --git a/frontend/src/components/GroupManagerModal.jsx b/frontend/src/components/GroupManagerModal.jsx index 9359d90..5cdbd0e 100644 --- a/frontend/src/components/GroupManagerModal.jsx +++ b/frontend/src/components/GroupManagerModal.jsx @@ -222,7 +222,7 @@ function DirectMessagesTab({ allUserGroups, onRefresh, refreshKey }) { const handleSave = async () => { if (!dmName.trim()) return toast('Name required', 'error'); - if (groupIds.size < 2) return toast('Select at least two user groups', 'error'); + if (!selected && groupIds.size < 2) return toast('Select at least two user groups', 'error'); setSaving(true); try { if (selected) {