feat(mvp): DAGI Integration Fix - gov_level, DAIS, nodes table

TASK_PHASE_MVP_DAGI_INTEGRATION_FIX_20251201

A) Agents Layer:
- A1: Added gov_level to API and UI (list + profile)
- A2: Added dais_identity_id to API and UI
- A3: Added home_microdao_id/name/slug for ownership display

B) MicroDAO Layer:
- B1/B2: Already implemented (agents, rooms, citizens, district badge)

C) Nodes Layer:
- C1: Node Dashboard already implemented
- C2: Created nodes table migration with owner_microdao_id
- C3: INSERT NODE1/NODE2 with dao_daarion ownership

D) Backend Fixes:
- D1: Extended /api/agents/* with DAIS/governance fields
- D2/D3: Already implemented

Files changed:
- services/city-service/repo_city.py
- services/city-service/models_city.py
- services/city-service/routes_city.py
- services/city-service/migrations.py
- apps/web/src/lib/types/agents.ts
- apps/web/src/lib/agent-dashboard.ts
- apps/web/src/app/agents/page.tsx
- apps/web/src/components/agent-dashboard/AgentSummaryCard.tsx

Reports:
- docs/debug/mvp_dagi_integration_fix_report_20251201.md
- docs/tasks/TASK_PHASE_MVP_DAGI_INTEGRATION_FIX_20251201.md
This commit is contained in:
Apple
2025-11-30 08:45:07 -08:00
parent a23deae3c4
commit 644edd3f30
22 changed files with 1227 additions and 82 deletions

View File

@@ -0,0 +1,41 @@
# Node Stack Mismatch — 2025-11-30
## Summary
Під час виконання `TASK_PHASE_NODE_RUNTIME_AUDIT_NODE1_NODE2` знайдені відхилення між фактичними контейнерами та очікуваними профілями нод.
## NODE1 (node-1-hetzner-gex44)
- **Mandatory services**: більшість prod-сервісів присутні (`daarion-city-service`, `daarion-web`, `dagi-router`, `dagi-postgres`, `dagi-nats`, stt/ocr/web-search/rag/vector-db, parser, image-gen тощо).
- **Issues**:
- `dagi-rag-service` у стані `Restarting` → потребує фіксу/перезапуску, інакше DAGI-аналітика/LLM ingestion не працює.
- `dagi-ocr-service` і `dagi-image-gen` позначені як `unhealthy` → треба прогнати healthchecks/логи.
- HTTP health `http://localhost:9300/health` (matrix/gateway) недоступний → потрібно або оновити endpoint, або задокументувати реальну адресу.
- У профайлі очікується `dagi-gateway`, а фактично працює `daarion-matrix-gateway`. Потрібно оновити Node Profile або привести іменування в доку до фактичного контейнера.
## NODE2 (node-2-macbook-m4max)
- **Очікуваний стек**: dev/models (ollama/vllm, experimental services, core-team runtime). Не повинно бути прод-сервісів.
- **Фактичний стан** (локальна машина):
- Запущені `dagi-router`, `dagi-postgres`, `dagi-rbac`, `dagi-devtools`, `dagi-gateway`, `dagi-prometheus`, `nats`, `stt-service`, `ocr-service`, `web-search-service` тощо — це прод-сервіси, які за профілем мають жити на NODE1.
- Більшість контейнерів у стані `unhealthy` або `Restarting` (rag-service, neo4j, nats, stt, tts, web-search).
- Висновок: NODE2 зараз тримає повний стек DAGI, а не лише dev/models. Потрібно або:
- перемістити ці сервіси на NODE1 / іншу інфру (для прод-ролі);
- або оновити профіль NODE2 (якщо вирішено мати прод-сервіси на MacBook, що малоймовірно).
## Recommended Actions
1. **NODE1**
- Розібратися з `dagi-rag-service` (перебудувати образ, перевірити залежності Postgres/NATS/Vector DB).
- Перевірити `dagi-ocr-service`, `dagi-image-gen` (health endpoints та логи).
- Уточнити адресу healthcheck для gateway (чи є окремий endpoint, чи потрібен reverse proxy).
- Оновити Node Profile, щоб узгодити назви (`daarion-matrix-gateway`).
2. **NODE2**
- Зупинити продакшн-сервіси (`dagi-router`, `dagi-postgres`, `dagi-gateway`, `nats`, `stt`, `ocr`, `web-search`, тощо) або перенести їх у dev-версії з чітким неймінгом `dev-*`.
- За потреби залишити тільки dev/models runtime (ollama, swapper, experimental RAG) та відповідно оновити документацію.
- Перевірити/почистити контейнери, що зависли в `unhealthy` / `Restarting` стані.
3. **Документація**
- Відобразити реальний стан у `Node Profiles` + додати посилання на цей файл як доказ невідповідності.