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,366 @@
# 🚀 Deployment Strategy: MVP + Multimodal Integration
**Версія:** 1.0.0
**Дата:** 25 листопада 2025
**Мета:** Безпечна інтеграція MVP (Phase 1-3) та Multimodal системи
---
## 🎯 Стратегічний Підхід
### Принцип: **Decoupled Deployment**
MVP та Multimodal — **окремі системи**, які інтегруються поступово.
```
PHASE 1: MVP Deploy (Phase 1-3) ✅ ЗАРАЗ
├── Agents Service
├── City Service
├── Second Me
└── MicroDAO Service
PHASE 2: Multimodal Preparation ⏳ НАСТУПНИЙ КРОК
├── Router v2.0 (multimodal support)
├── Telegram Gateway Enhanced
└── API унификація
PHASE 3: Multimodal Deployment 🔮 ПОТІМ
├── STT Service
├── OCR Service
├── Web Search
└── Vector DB
PHASE 4: Full Integration 🔮 ФІНАЛ
└── MVP ↔ Multimodal ↔ DAGI Stack
```
---
## 📊 Поточна Ситуація
### ✅ Готово:
- MVP код (Phase 1-3) готовий на НОДА2
- Міграції БД 007-010 створені
- Docker Compose з MVP сервісами
- Multimodal сервіси працюють на НОДА2 (STT, OCR, Web Search, Vector DB)
### ⚠️ В процесі:
- Router v1.1.0 multimodal API (в доках, поки не deployed)
- Telegram Gateway Enhanced (в доках, поки не deployed)
- Multimodal документація завантажується
### ❓ Невідомо:
- Стан production БД на НОДА1
- Чи є конфлікти в існуючому Router/Gateway
- Повний обсяг змін в multimodal системі
---
## 🎯 Рекомендована Послідовність
### **ЗАРАЗ: Phase 1 — MVP Deploy (WITHOUT Multimodal)**
**Що робимо:**
1. Deploy MVP сервісів (Agents, City, Second Me, MicroDAO) на НОДА1
2. Інтегрувати з **існуючим** Router/Gateway (без multimodal)
3. Перевірити що все працює стабільно
4. Моніторити 48 годин
**Що НЕ робимо:**
-Не чіпаємо Router (залишаємо поточну версію)
-Не змінюємо Telegram Gateway
-Не інтегруємо STT/OCR/Web Search
-Не переносимо multimodal сервіси на НОДА1
**Переваги:**
- ✅ Мінімальний ризик
- ✅ MVP працює незалежно
- ✅ Легко rollback
- ✅ Існуюча система не постраждає
**Документація:**
- `DEPLOY_MVP_NODE1_COMPREHENSIVE_ANALYSIS.md` (створено вище)
---
### **НАСТУПНИЙ КРОК: Phase 2 — Multimodal Preparation**
**Коли:** Після успішного MVP deployment + 48 годин стабільності
**Що робимо:**
1. **Аналіз multimodal документації** (коли завантажиться)
2. **Створення Router v2.0** з multimodal API
3. **Створення unified API** для STT/OCR/Web Search/Vector DB
4. **Тестування на НОДА2** (dev environment)
5. **Документування змін** та API contracts
**Що створюємо:**
- `services/router-v2/` (новий Router з multimodal)
- `services/multimodal-gateway/` (unified API для всіх multimodal)
- `docs/MULTIMODAL_API_SPEC.md` (API специфікація)
- `docs/ROUTER_V2_MIGRATION.md` (план міграції)
**Критерії готовності:**
- [ ] Router v2.0 працює на НОДА2
- [ ] Multimodal Gateway працює на НОДА2
- [ ] Всі API тести пройдені
- [ ] Документація повна
- [ ] Rollback plan готовий
---
### **ПОТІМ: Phase 3 — Multimodal Deployment на НОДА1**
**Коли:** Після Phase 2 + approval
**Що робимо:**
1. **Deploy Router v2.0** на НОДА1 (side-by-side з v1.0)
2. **Deploy Multimodal Gateway** на НОДА1
3. **Перенести multimodal сервіси** з НОДА2 на НОДА1 (або залишити розподіленими)
4. **Поступове переключення** (canary deployment)
5. **Моніторинг + rollback готовність**
**Етапи переключення:**
1. 10% трафіку → Router v2.0 (1 година)
2. 50% трафіку → Router v2.0 (6 годин)
3. 100% трафіку → Router v2.0 (24 години)
4. Видалити Router v1.0 (якщо стабільно)
**Rollback:**
- Переключити трафік назад на Router v1.0
- Зупинити multimodal сервіси
- Система повертається до Phase 1 стану
---
### **ФІНАЛ: Phase 4 — Full Integration**
**Коли:** Після Phase 3 + 1 тиждень стабільності
**Що робимо:**
1. **Інтегрувати MVP ↔ Multimodal:**
- City Service → Web Search (для пошуку в кімнатах)
- Agents Service → STT/OCR (для voice/image commands)
- Second Me → Vector DB (для semantic memory)
2. **Telegram Gateway Enhanced:**
- Voice messages → STT → Agents
- Photos → OCR/Vision → Agents
- Documents → Parser → Knowledge Base
3. **Frontend Enhancement:**
- Upload voice → STT
- Upload image → OCR/Vision
- Semantic search в City
**Acceptance Criteria:**
- [ ] Telegram bot приймає voice/photo/documents
- [ ] Frontend має multimodal UI
- [ ] City має semantic search
- [ ] Second Me використовує Vector DB
- [ ] All services stable 99.9% uptime
---
## 🔍 Dependency Analysis
### MVP → Multimodal Dependencies
**Agents Service:**
- **Потребує:** LLM Proxy (існуючий), NATS (існуючий)
- **Може використати:** STT (опційно), OCR (опційно), Vector DB (опційно)
- **Блокер:** Немає
**City Service:**
- **Потребує:** PostgreSQL (існуючий), Redis (існуючий), NATS (існуючий)
- **Може використати:** Web Search (опційно для пошуку), Vector DB (опційно)
- **Блокер:** Немає
**Second Me:**
- **Потребує:** Agents Service (буде deployed), PostgreSQL
- **Може використати:** Vector DB (для довгої пам'яті)
- **Блокер:** Agents Service (тому Second Me в Phase 3)
**MicroDAO Service:**
- **Потребує:** PostgreSQL, Auth Service (існуючий)
- **Може використати:** DAO Service (існуючий, опційно)
- **Блокер:** Немає
### Multimodal → Infrastructure Dependencies
**Router v2.0:**
- **Потребує:** Multimodal Gateway, LLM Proxy, існуючий Router v1.0 (для fallback)
- **Блокер:** Multimodal Gateway має бути готовий
**Telegram Gateway Enhanced:**
- **Потребує:** Router v2.0, STT Service, OCR Service
- **Блокер:** Router v2.0
**STT/OCR/Web Search/Vector DB:**
- **Потребує:** Тільки базову інфраструктуру (Docker, Network)
- **Блокер:** Немає (можуть працювати автономно)
---
## 🚨 Risk Matrix
| Risk | Probability | Impact | Mitigation |
|------|-------------|--------|------------|
| **MVP deployment breaks existing DAGI** | Low | High | Staged deployment, health checks, rollback |
| **DB migrations fail** | Medium | High | Backup before, test on staging, rollback SQL |
| **Router v2.0 не сумісний з v1.0** | Medium | Medium | Side-by-side deployment, gradual switch |
| **Multimodal сервіси споживають багато ресурсів** | High | Medium | Start on NODE2, monitor, scale on NODE1 |
| **Nginx config помилка** | Low | High | Test config, backup old, gradual reload |
| **Network issues між NODE1 ↔ NODE2** | Medium | Low | Fallback to local, health checks |
---
## 📈 Monitoring Strategy
### Key Metrics (для кожної Phase)
**Phase 1 (MVP):**
```
- http_requests_total{service="agents"}
- http_requests_total{service="city"}
- active_connections{service="city"}
- db_connections{service="agents"}
- websocket_connections{service="city"}
```
**Phase 3 (Multimodal):**
```
- multimodal_requests_total{type="stt"}
- multimodal_requests_total{type="ocr"}
- multimodal_latency_seconds{type="web_search"}
- router_v2_requests_total
- router_v2_fallback_total (до v1.0)
```
**Alerts:**
```yaml
- name: MVP Services Down
expr: up{service=~"agents|city|secondme"} == 0
duration: 2m
- name: High Latency
expr: http_request_duration_seconds{quantile="0.95"} > 5
duration: 5m
- name: Router Fallback Rate High
expr: rate(router_v2_fallback_total[5m]) > 0.1
duration: 5m
```
---
## 🎯 Decision Points
### Після Phase 1 (MVP Deploy):
**Питання:** Чи готові до Phase 2?
**Критерії:**
- [ ] MVP сервіси healthy 48 годин без перерв
- [ ] Немає критичних помилок в логах
- [ ] Existing DAGI Stack працює стабільно
- [ ] Performance metrics в нормі
- [ ] Multimodal документація повністю завантажена
**Якщо НІ → зупинитися, debugати, стабілізувати**
---
### Після Phase 2 (Multimodal Prep):
**Питання:** Чи готові deploy multimodal на production?
**Критерії:**
- [ ] Router v2.0 протестований на NODE2
- [ ] API contracts задокументовані
- [ ] Performance тести пройдені
- [ ] Rollback plan готовий
- [ ] Team готова до deployment
**Якщо НІ → продовжити тестування на NODE2**
---
### Після Phase 3 (Multimodal Deploy):
**Питання:** Чи готові до Full Integration?
**Критерії:**
- [ ] Multimodal сервіси stable 1 тиждень
- [ ] Router v2.0 обробляє 100% без fallback
- [ ] Resource usage прийнятний
- [ ] No regressions в MVP або DAGI
**Якщо НІ → optimize, tune, monitor**
---
## 📝 Execution Plan Summary
### **ЦЯ НЕДІЛЯ (Week 48):**
- ✅ MVP Deploy на НОДА1 (Phase 1)
- ✅ Smoke tests
- 📊 Monitor 48 годин
### **НАСТУПНИЙ ТИЖДЕНЬ (Week 49):**
- 📖 Аналіз multimodal документації (коли завантажиться)
- 🔧 Створення Router v2.0 (Phase 2)
- 🧪 Тестування на НОДА2
### **ТИЖДЕНЬ 50:**
- 🚀 Multimodal Deploy на НОДА1 (Phase 3)
- 📊 Canary deployment (10% → 50% → 100%)
### **ТИЖДЕНЬ 51-52:**
- 🔗 Full Integration (Phase 4)
- 📈 Performance tuning
- 📝 Documentation updates
---
## ✅ Success Criteria (Загальні)
**MVP+Multimodal вважається успішно deployed якщо:**
1.Всі MVP сервіси працюють стабільно
2. ✅ Multimodal сервіси інтегровані
3. ✅ Router v2.0 обробляє всі типи запитів
4. ✅ Telegram bot приймає voice/photo/text
5. ✅ Frontend має multimodal UI
6. ✅ Uptime > 99.5% за останні 7 днів
7. ✅ Немає критичних issues
8. ✅ Performance metrics в SLA
9. ✅ Документація актуальна
10. ✅ Team може підтримувати систему
---
## 🔮 Long-term Vision
### Q1 2026: Distributed Architecture
- NODE1 (Production) — MVP + Multimodal
- NODE2 (Dev + AI Lab) — Experimental models
- NODE3 (Federation) — Matrix + City Federation
### Q2 2026: Auto-scaling
- Kubernetes deployment
- Horizontal Pod Autoscaling
- Multi-region (EU + US)
### Q3 2026: Advanced AI
- Multi-agent orchestration
- Chain-of-thought reasoning
- Long-term memory (Vector DB clusters)
---
**Документ створено:** Cursor AI Assistant
**Для проєкту:** MicroDAO DAARION
**Останнє оновлення:** 2025-11-25
**Статус:** Ready for Execution — Phase 1 (MVP Deploy)