Files
microdao-daarion/docs/internal/maintenance/MICRODAO_AGENT_CLEANUP_037A.md
Apple 3ccc0e2d43 feat: TASK 037A/B - MicroDAO Multi-Room Cleanup & UI Polish
TASK 037A: Backend Consistency
- Added db/sql/037_microdao_agent_audit.sql
- Added services/city-service/tools/fix_microdao_agent_consistency.py
- Updated repo_city.get_public_citizens with stricter filtering (node_id, microdao_membership)
- Updated PublicCitizenSummary model to include home_microdao and primary_city_room
- Updated NodeProfile model and get_node_by_id to include microdaos list

TASK 037B: UI Polish
- Updated MicrodaoRoomsSection with role-based colors/icons and mini-map
- Updated /microdao/[slug] with new Hero Block (badges, stats, orchestrator)
- Updated /citizens/[slug] with MicroDAO cross-link in DAIS profile
- Updated /nodes/[nodeId] with MicroDAO Presence section
2025-11-29 01:35:54 -08:00

81 lines
3.7 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.
# MicroDAO & Agent Consistency Cleanup (Task 037A)
**Дата:** 29 листопада 2025
**Статус:** Реалізовано (інструменти готові)
Цей документ описує процедуру очистки та вирівнювання даних між агентами, MicroDAO та Citizens Layer.
---
## 1. Проблематика
У системі накопичилися:
* Агенти без привʼязки до MicroDAO (orphans).
* Публічні агенти без `public_slug` або `node_id`.
* MicroDAO без кімнат або без `primary` кімнати.
* Це призводить до некоректного відображення у `/citizens`, `/microdao` та `/nodes`.
## 2. Інструменти аудиту
### SQL Аудит (`db/sql/037_microdao_agent_audit.sql`)
Цей SQL-файл містить запити для ручної перевірки стану бази даних:
* Пошук публічних агентів без membership.
* Пошук агентів без `node_id`.
* Пошук MicroDAO без кімнат.
* Пошук MicroDAO з дубльованими primary-кімнатами.
Запуск (приклад):
```bash
cat db/sql/037_microdao_agent_audit.sql | docker exec -i dagi-postgres psql -U postgres -d daarion
```
### Автоматичний скрипт (`services/city-service/tools/fix_microdao_agent_consistency.py`)
Скрипт для автоматичного виправлення типових помилок.
**Що він робить:**
1. **Агенти:**
* Якщо `public_slug` відсутній → встановлює `public_slug = id`.
* Логує агентів без `node_id` та MicroDAO membership.
2. **MicroDAO:**
* Перевіряє наявність кімнат.
* Якщо є кімнати, але немає `primary` → призначає кімнату з найменшим `sort_order` як primary.
* Якщо є кілька `primary` → залишає одну, інші робить `team`.
**Запуск:**
1. Зайти в контейнер `city-service` (або локально з налаштованим venv).
2. Запустити в режимі Dry Run (тільки логування):
```bash
python tools/fix_microdao_agent_consistency.py
```
3. Застосувати зміни:
```bash
python tools/fix_microdao_agent_consistency.py --apply
```
---
## 3. Зміни в API (Citizens Layer)
Впроваджено суворішу фільтрацію для публічних громадян (`/public/citizens`):
* Агент повинен мати `is_public = true`.
* `public_slug` не NULL.
* **`node_id` не NULL.**
* **Має хоча б одне MicroDAO membership** (`EXISTS (SELECT 1 FROM microdao_agents ...)`).
Це гарантує, що "сміттєві" тестові агенти не потрапляють у публічні списки.
Також API тепер повертає розширену інформацію:
* `home_microdao_slug`, `home_microdao_name`
* `primary_city_room` (об'єкт з деталями кімнати)
---
## 4. Рекомендації для Operations
1. Регулярно запускати `audit.sql` для моніторингу здоров'я даних.
2. При створенні нових агентів вручну через SQL — обов'язково додавати їх у `microdao_agents` та прописувати `node_id`.
3. При створенні MicroDAO — обов'язково створювати хоча б одну кімнату і робити її `primary`.