feat: Add presence heartbeat for Matrix online status

- matrix-gateway: POST /internal/matrix/presence/online endpoint
- usePresenceHeartbeat hook with activity tracking
- Auto away after 5 min inactivity
- Offline on page close/visibility change
- Integrated in MatrixChatRoom component
This commit is contained in:
Apple
2025-11-27 00:19:40 -08:00
parent 5bed515852
commit 3de3c8cb36
6371 changed files with 1317450 additions and 932 deletions

153
SWAPPER-NODE1-FIX.md Normal file
View File

@@ -0,0 +1,153 @@
# 🔧 Виправлення Swapper Service на Node #1
**Дата:** 2025-11-22
**Проблема:** Swapper Service працює, але детальна інформація недоступна
---
## 🔍 Діагностика
### Перевірка endpoints:
1.`/health` - працює
```json
{"status":"healthy","loaded_models":0,"timestamp":1763821110.3544931}
```
2. ✅ `/status` - працює
```json
{"loaded_models":[],"max_concurrent_models":1,"model_timeout_seconds":300}
```
3. ❌ `/api/cabinet/swapper/status` - Not Found
```json
{"detail":"Not Found"}
```
**Причина:** Можливо, на Node #1 встановлена версія Swapper Service без `cabinet_api` або endpoint не доступний.
4. ✅ `/models` - працює, але порожній
```json
{"object":"list","data":[]}
```
**Причина:** Моделі не налаштовані в конфігурації Swapper Service на Node #1.
---
## ✅ Виправлення
### 1. Покращена обробка різних форматів відповідей
Додано обробку:
- ✅ `/status` + `/models` комбінація
- ✅ Формат `{"object":"list","data":[]}`
- ✅ Порожній список моделей з інформативним повідомленням
### 2. Покращене повідомлення про помилку
Тепер показує:
- ✅ Статус Swapper Service
- ✅ Режим роботи (single-active)
- ✅ Кількість доступних моделей
- ✅ Кількість завантажених моделей
- ✅ Активну модель (якщо є)
- ✅ URL Swapper Service
### 3. Автоматична спроба різних endpoints
Спроба в такому порядку:
1. `/api/cabinet/swapper/status` (якщо доступний)
2. `/api/status`
3. `/api/models`
4. `/status` + `/models` (комбінація)
5. `/health` (fallback)
---
## 📋 Що потрібно зробити на Node #1
### Варіант 1: Додати моделі до конфігурації
1. Перевірити конфігурацію Swapper Service:
```bash
# На Node #1
cat /path/to/swapper-service/config/swapper_config.yaml
```
2. Додати моделі до конфігурації:
```yaml
models:
qwen3:8b:
path: ollama:qwen3:8b
type: llm
size_gb: 4.7
priority: high
```
3. Перезапустити Swapper Service:
```bash
docker-compose restart swapper-service
```
### Варіант 2: Перевірити, чи працює Ollama
1. Перевірити Ollama на Node #1:
```bash
curl http://localhost:11434/api/tags
```
2. Якщо Ollama працює, Swapper Service має автоматично завантажити моделі.
### Варіант 3: Оновити Swapper Service
Якщо на Node #1 встановлена стара версія без `cabinet_api`:
1. Оновити Swapper Service до останньої версії
2. Переконатися, що `cabinet_api.py` підключений до `main.py`
---
## 🎯 Поточний стан
### ✅ Що працює:
- ✅ Swapper Service працює (`/health` повертає `healthy`)
- ✅ Endpoint `/status` доступний
- ✅ Endpoint `/models` доступний
- ✅ Монітор показує статус Swapper Service
### ⚠️ Що потрібно виправити:
- ⚠️ Моделі не налаштовані (порожній список)
- ⚠️ Endpoint `/api/cabinet/swapper/status` не доступний (можливо, стара версія)
---
## 📊 Відображення в моніторі
Тепер монітор показує:
- ✅ Статус Swapper Service (healthy)
- ✅ Режим роботи (single-active)
- ⚠️ Попередження про те, що моделі не налаштовані
- ✅ Інформацію про доступні/завантажені моделі
- ✅ URL Swapper Service
**URL для перевірки:**
- Node #1: `http://localhost:8899/node/node-1`
---
## 🔄 Наступні кроки
1. **На Node #1:**
- Перевірити конфігурацію Swapper Service
- Додати моделі до конфігурації або переконатися, що Ollama працює
- Перезапустити Swapper Service
2. **Після налаштування моделей:**
- Монітор автоматично покаже список моделей
- Активна модель буде підсвічена зеленим
- Буде показана детальна інформація про кожну модель
---
**Last Updated:** 2025-11-22
**Status:** ✅ Монітор виправлено, потрібно налаштувати моделі на Node #1