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

147
MONITOR-FIXES-COMPLETE.md Normal file
View File

@@ -0,0 +1,147 @@
# ✅ Виправлення Monitor Agent - Завершено
**Дата:** 2025-11-22
**Статус:** ✅ Виправлено автоматичні повідомлення, додано колонки Node
---
## ✅ Виконано
### 1. Виправлено автоматичні повідомлення Monitor Agent
**Проблема:** Monitor Agent не писав автоматично про зміни в системі
**Рішення:**
- ✅ Виправлено `loadEventLog()` - тепер додає події в `dashboard-chat-messages` (об'єднаний чат)
- ✅ Виправлено `addEventToLog()` - тепер додає події в чат як повідомлення від Monitor Agent
- ✅ Події відображаються автоматично зверху чату
- ✅ Чат повідомлення додаються знизу
- ✅ Автоматичне оновлення кожні 10 секунд
### 2. Додано інформацію про модель Monitor Agent
**Monitor Agent:**
- **Model:** `local_qwen3_8b`
- **Backend:** Local (Ollama)
- **Category:** System
- **Role:** System monitoring and diagnostics agent
### 3. Додано колонки Node та Node Address в таблицю агентів
**Нові колонки:**
-**Node** - назва ноди та node_id
-**Node Address** - URL ноди (посилання)
**Оновлена таблиця:**
```
# | Agent Name | Category | Description | Type | Model | Node | Node Address | Created | Actions
```
### 4. Перевірка кабінетів агентів
**API працює:**
-`/api/agent/{agent_id}` - повертає дані агента
-`/agent/{agent_id}` - HTML сторінка кабінету
**Приклад:**
- Monitor Agent: `http://localhost:8899/agent/monitor`
---
## 📊 Відображення
### System Activity Log + Chat:
**URL:** `http://localhost:8899/`
Блок "Monitor Agent & System Activity":
- ✅ Автоматичні повідомлення про зміни (зверху)
- ✅ Чат з Monitor Agent (знизу)
- ✅ Оновлення кожні 10 секунд
- ✅ WebSocket для real-time подій
### Таблиця агентів:
**URL:** `http://localhost:8899/agents`
**Колонки:**
- # (номер)
- Agent Name (ім'я та ID)
- Category
- Description
- Type (Orchestrator/Worker)
- Model (модель та backend)
- **Node** (назва ноди та ID) ✅ НОВЕ
- **Node Address** (URL ноди) ✅ НОВЕ
- Created
- Actions (View)
---
## 🔧 Технічні деталі
### Monitor Agent Model:
```json
{
"id": "monitor",
"name": "Monitor Agent",
"model": "local_qwen3_8b",
"category": "System",
"description": "System monitoring and diagnostics agent"
}
```
### Event Log Integration:
- Події додаються автоматично через `log_event()`
- Відображаються в чаті як повідомлення від Monitor Agent
- Real-time оновлення через WebSocket
- Максимум 50 повідомлень в чаті
---
## ✅ Перевірка
### 1. Автоматичні повідомлення:
Відкрити: `http://localhost:8899/`
**Очікуваний результат:**
- Події відображаються автоматично в чаті
- Нові події додаються зверху
- Оновлення кожні 10 секунд
### 2. Таблиця агентів:
Відкрити: `http://localhost:8899/agents`
**Очікуваний результат:**
- Колонки "Node" та "Node Address" відображаються
- Для кожного агента показано ноду та адресу
### 3. Кабінети агентів:
Відкрити: `http://localhost:8899/agent/monitor`
**Очікуваний результат:**
- Кабінет агента відкривається
- Відображається інформація про агента
---
## 🎯 Результат
- ✅ Monitor Agent пише автоматично про зміни
- ✅ Модель Monitor Agent: `local_qwen3_8b`
- ✅ Додано колонки Node та Node Address
- ✅ Кабінети агентів працюють
---
**Last Updated:** 2025-11-22
**Status:** ✅ Готово
**Monitor Agent Model:** local_qwen3_8b
**Auto Messages:** ✅ Працює
**Node Columns:** ✅ Додано