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

View File

@@ -0,0 +1,157 @@
# ✅ Swapper Service - Інтеграція в кабінети Нод
**Дата:** 2025-11-22
**Статус:** ✅ Готово до використання
---
## 🎉 Виконано
### ✅ 1. Переміщено Swapper Service Connections
- ✅ Прибрано детальну таблицю підключень зі сторінки `/nodes`
- ✅ Додано Swapper Service Connections в кабінет кожної ноди `/node/{node_id}`
- ✅ Відображається тільки в кабінеті конкретної ноди
### ✅ 2. Перевірено Node #1
- ✅ Swapper Service працює на `http://144.76.224.179:8890`
- ✅ Health endpoint доступний: `/health`
- ✅ Відображається в кабінеті Node #1
### ✅ 3. Автоматичне виявлення API
- ✅ Спробує різні API endpoints:
- `/api/cabinet/swapper/status`
- `/api/status`
- `/status`
- `/health` (fallback)
---
## 🚀 Як використати
### Переглянути Swapper Service Connections
1. **Відкрити кабінет ноди:**
```
http://localhost:8899/node/node-1 # Node #1 (Production)
http://localhost:8899/node/node-2 # Node #2 (Development)
```
2. **Знайти секцію "Swapper Service Connections"**
- Відображається після LLM Metrics (для Node #2)
- Показує статус Swapper Service
- Таблиця всіх моделей з деталями
### Що відображається
1. **Статус Swapper Service:**
- Статус (healthy/error)
- Режим роботи (single-active)
- Активна модель
2. **Таблиця підключень:**
- Model Name
- Ollama Name
- Type
- Size
- Priority
- Status (Loaded/Unloaded)
- Uptime (hours)
- Requests
3. **Підсумок:**
- Total models
- Loaded / Total
---
## 🔧 Конфігурація
### Node #1 (Production)
- **Swapper URL:** `http://144.76.224.179:8890`
- **Status:** ✅ Працює
- **Health:** ✅ Available
### Node #2 (Development)
- **Swapper URL:** `http://localhost:8890`
- **Status:** ✅ Працює
- **Models:** 8 моделей доступно
---
## 📊 Структура сторінок
### Сторінка `/nodes`
- ✅ Основна таблиця з усіма нодами
- ✅ Статус Swapper Service (healthy/error)
- ✅ Активна модель
- ✅ Кількість моделей
- ❌ Без детальної таблиці підключень
### Сторінка `/node/{node_id}`
- ✅ Детальна інформація про ноду
- ✅ Hardware & Software specs
- ✅ Running Services
- ✅ LLM Metrics (для Node #2)
- ✅ **Swapper Service Connections** ⭐ НОВО
---
## 🧪 Тестування
### 1. Перевірити Node #1
```bash
# Health check
curl http://144.76.224.179:8890/health
# Status (якщо доступний)
curl http://144.76.224.179:8890/api/cabinet/swapper/status
```
### 2. Відкрити в браузері
```
http://localhost:8899/node/node-1 # Node #1 кабінет
http://localhost:8899/node/node-2 # Node #2 кабінет
```
### 3. Перевірити відображення
- ✅ Swapper Service Connections відображається
- ✅ Статус Swapper Service показується
- ✅ Таблиця моделей відображається (якщо доступна)
- ✅ Помилки обробляються коректно
---
## 🔄 Обробка помилок
### Якщо Swapper Service недоступний:
- Показується повідомлення про недоступність
- Відображається URL Swapper Service
- Показується помилка з'єднання
### Якщо API endpoint не знайдено:
- Спробує різні endpoints автоматично
- Fallback на `/health` endpoint
- Показує базовий статус
---
## ✅ Готово!
**Swapper Service Connections інтегровано в кабінети Нод!** 🎉
- ✅ Переміщено з загального списку в кабінет кожної ноди
- ✅ Node #1 перевірено та відображається
- ✅ Автоматичне виявлення API endpoints
- ✅ Обробка помилок налаштована
**Можна використовувати прямо зараз!**
---
**Last Updated:** 2025-11-22
**Status:** ✅ Готово до використання
**URL:** `http://localhost:8899/node/node-1` або `/node/node-2`