Files
microdao-daarion/docs/debug/node_stack_mismatch_20251130.md
Apple 644edd3f30 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
2025-11-30 08:45:07 -08:00

42 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` + додати посилання на цей файл як доказ невідповідності.