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,42 @@
# NODE2 Config & Isolation Audit — 2025-11-30
## Context
- Host: локальна dev-нода (MacBook Pro M4 Max).
- Ціль: підтвердити, що NODE2 використовує власні сервіси і не звертається до прод-конфігів NODE1.
- Перевіряли тільки запущені контейнери `docker ps` (див. `docs/debug/node2_containers_20251130.txt`).
---
## Database
- `dagi-postgres` запущений локально з `POSTGRES_DB=daarion_memory`, `POSTGRES_USER=postgres`, `POSTGRES_PASSWORD=postgres`.
- Жоден контейнер не використовує `postgres://...@dagi-postgres:5432/daarion` (прод-БД).
- `dagi-rag-service` має `PG_DSN=postgresql+psycopg2://postgres:postgres@city-db:5432/daarion_city`, але контейнера `city-db` на NODE2 немає → сервіс перезапускається. Потрібно або створити локальний `city-db`, або замінити DSN на `dagi-postgres`/dev-БД.
## NATS
- Локальний контейнер `dagi-nats` (`nats:2-alpine`).
- У `dagi-rag-service` `NATS_URL=nats://nats:4222` (вказує на локальний контейнер, не на NODE1).
- Інших згадок про прод-URL нема.
## Gateway / Matrix / Bots
- `dagi-gateway` використовує локальний `ROUTER_URL=http://router:9102`.
- Телеграм-токени:
- `DAARWIZZ_TELEGRAM_BOT_TOKEN` не задано.
- `HELION_TELEGRAM_BOT_TOKEN=8112062582:...` (dev-токен; перевірити вручну, чи він відрізняється від прод).
- `TELEGRAM_BOT_TOKEN=your_daarwizz_token_here` — placeholder, фактично бот не під'єднаний.
- Matrix / gateway env змінних не виявлено (немає `MATRIX_GATEWAY_URL`).
## Інші секрети / сервіси
- `olagi-router`, `swapper-service`, `stt-service`, `ocr-service`, `image-gen` працюють суто локально (`router`, `host.docker.internal`, тощо).
- Немає `daarion-city-service` та `INTERNAL_API_URL` → dev-нода не запускає міський бекенд.
- Більшість контейнерів у стані `unhealthy` або `Restarting`, але це локальні сервіси; вони не звертаються до NODE1.
## Summary
1. **Перетинів з прод-БД/NATS не виявлено.** Весь стек використовує локальні сервіси.
2. **RAG-service** намагається підключитись до неіснуючого `city-db` → слід оновити `PG_DSN` на локальну БД або вимкнути контейнер.
3. **Gateway токени**: Helion bot має конкретний токен. Потрібно перевірити, чи це dev- або prod-ключ. Якщо це dev — залишити; якщо прод — винести зі stack.
4. **Рекомендації:**
- створити `city-db` (dev) або переписати `PG_DSN``postgresql+psycopg2://postgres:postgres@dagi-postgres:5432/daarion_memory`.
- задокументувати dev-токени в secret manager (щоб не плутати з prod).
- за можливості привести назви контейнерів (nats, router) до `dev-*`, щоб було очевидно, що це dev-стек.
Отже, NODE2 має власний DAGI-стек і не зачіпає прод-конфіги NODE1, але потребує дрібних виправлень (RAG DSN, ревізія токенів).