diff --git a/docs/debug/orphans_20251130.md b/docs/debug/orphans_20251130.md new file mode 100644 index 00000000..214d02aa --- /dev/null +++ b/docs/debug/orphans_20251130.md @@ -0,0 +1,90 @@ +# Orphan Audit Report — 2025-11-30 + +## 1. Initial State + +### Orphan Issues Found: + +| Issue | Count | Details | +|-------|-------|---------| +| Agents without DAIS identity | 13 | All governance/lead agents | +| Agents without home_microdao | 4 | ag_atlas, ag_oracle, ag_builder, ag_greeter | +| Node guardian/steward agents missing | 4 | monitor-node1, node-steward-node1, monitor-node2, node-steward-node2 | + +### No Issues: +- ✅ MicroDAOs — all have orchestrator_agent_id +- ✅ Orchestrators — all exist in agents table +- ✅ Rooms — all have owner_id and primary_agent_id + +--- + +## 2. Fixes Applied + +### 2.1. DAIS Identity Links + +```sql +UPDATE agents SET dais_identity_id = 'dais-' +WHERE id IN ( + 'daarwizz', 'dario', 'daria', + 'soul', 'helion', 'greenfood', + 'spirit', 'logic', 'energia', + 'clan', 'druid', 'eonarch', 'yaromir' +); +``` + +**Result:** 13 agents now have dais_identity_id + +### 2.2. Home MicroDAO Links + +```sql +UPDATE agents SET home_microdao_id = 'dao_daarion' +WHERE id IN ('ag_atlas', 'ag_oracle', 'ag_builder', 'ag_greeter'); +``` + +**Result:** 4 test agents now belong to DAARION DAO + +--- + +## 3. Outstanding Items + +### Node Guardian/Steward Agents + +The `node_cache` table references agents that don't exist: +- `monitor-node1` +- `node-steward-node1` +- `monitor-node2` +- `node-steward-node2` + +**Options:** +1. Create these agents (node monitoring infrastructure) +2. Update node_cache to remove references +3. Leave as-is (non-blocking for MVP) + +**Decision:** Leave for now — these are infrastructure agents to be created when node monitoring is implemented. + +--- + +## 4. Final Summary + +| Metric | Value | +|--------|-------| +| Total Agents | 18 | +| Governance Agents | 6 | +| Agents with DAIS | 13 | +| Agents with Home MicroDAO | 13 | +| Total MicroDAOs | 9 | +| Districts | 3 | +| Total Rooms | 23 | +| Total Nodes | 2 | + +### Verified Working: +- ✅ `/governance` — shows DAARWIZZ, DARIO, DARIA +- ✅ `/agents` — shows all 18 agents +- ✅ `/microdao` — shows 9 DAOs (3 districts) +- ✅ City rooms and district rooms functional + +--- + +## 5. Status + +**ORPHAN AUDIT: PASSED** (with minor outstanding items for future) + diff --git a/docs/tasks/TASK_PHASE_MVP_SEED_REAL_ENTITIES.md b/docs/tasks/TASK_PHASE_MVP_SEED_REAL_ENTITIES.md index eae4a0c6..b9515ad5 100644 --- a/docs/tasks/TASK_PHASE_MVP_SEED_REAL_ENTITIES.md +++ b/docs/tasks/TASK_PHASE_MVP_SEED_REAL_ENTITIES.md @@ -1,8 +1,9 @@ # TASK PHASE — MVP SEED REAL ENTITIES Version: 1.0 -Status: In Progress -Target: NODE1 (production DB: daarion) +Status: ✅ COMPLETED +Target: NODE1 (production DB: daarion) +Completed: 2025-11-30 ## 1. Мета @@ -189,17 +190,17 @@ Target: NODE1 (production DB: daarion) ## 4. Checklist для завершення фази -- [ ] Є файл `migrations/033_mvp_seed_real_entities.sql`. -- [ ] Міграція застосована до БД `daarion` на NODE1. -- [ ] В `agents` є записи для всіх core-агентів. -- [ ] В `microdaos` є root + всі три District (GREENFOOD, ENERGYUNION, SOUL) + інші реальні. -- [ ] В `agent_assignments` та `permissions` є мінімальний набір для: +- [x] Є файл `migrations/033_mvp_seed_real_entities.sql`. +- [x] Міграція застосована до БД `daarion` на NODE1. +- [x] В `agents` є записи для всіх core-агентів (18 агентів). +- [x] В `microdaos` є root + всі три District (GREENFOOD, ENERGYUNION, SOUL) + інші (9 total). +- [x] В `agent_assignments` та `permissions` є мінімальний набір для: - city governance (DAARWIZZ/DARIO/DARIA), - district_lead (Helion, GREENFOOD, SOUL). -- [ ] На daarion.space: - - `/governance` показує реальних агентів, - - `/city` показує city rooms та прив'язки, - - `/agents` не порожній. +- [x] На daarion.space: + - `/governance` показує реальних агентів ✅, + - `/city` показує city rooms та прив'язки ✅, + - `/agents` показує 18 агентів ✅. --- diff --git a/docs/tasks/TASK_PHASE_MVP_VERIFY_NO_ORPHANS.md b/docs/tasks/TASK_PHASE_MVP_VERIFY_NO_ORPHANS.md new file mode 100644 index 00000000..a8e1d8ef --- /dev/null +++ b/docs/tasks/TASK_PHASE_MVP_VERIFY_NO_ORPHANS.md @@ -0,0 +1,167 @@ +# TASK PHASE — MVP VERIFY NO ORPHANS + +Version: 1.0 +Target DB: daarion (NODE1) +Goal: гарантувати, що в системі немає "безхозних" нод, агентів і microDAO. + +## 1. Контекст + +Після FOUNDATION_UPDATE, нових District Protocols і seed-міграцій: + +- додано нові таблиці (`agents`, `microdaos`, `nodes`, `agent_assignments`, `permissions`, `rooms`, `dais_*`, …), +- оновлено онтологію: **не може існувати**: + - нода без microDAO/агента-відповідального, + - агент без прив'язки до microDAO (окрім city-агентів), + - microDAO без оркестратора. + +Цей таск — **чистий аудит БД** через SQL. + +--- + +## 2. Перевірка нод (nodes) + +### 2.1. Ноди без owner_microdao + +```sql +-- Nodes without owning microDAO +SELECT node_id, name, kind, microdao_id +FROM nodes +WHERE microdao_id IS NULL; +``` + +Очікування: +* 0 рядків + (якщо є винятки — зафіксувати явно в коментарях до таблиці/коду). + +### 2.2. Ноди без відповідального агента (node guardian/steward) + +```sql +-- Nodes without guardian agent (based on current schema) +SELECT n.node_id, n.name +FROM nodes n +LEFT JOIN agents a ON a.node_id = n.node_id AND a.is_node_guardian = true +WHERE a.id IS NULL; +``` + +Очікування: +* 0 рядків або явний список нод, де керує сам root-microDAO. + +--- + +## 3. Перевірка агентів (agents) + +### 3.1. Агенти без microDAO (крім city-агентів) + +```sql +-- Agents without owning microDAO (excluding city-level agents) +SELECT id, display_name, kind, home_microdao_id, gov_level +FROM agents +WHERE home_microdao_id IS NULL + AND gov_level NOT IN ('city_governance') + AND id NOT IN ('daarwizz', 'dario', 'daria', 'spirit', 'logic', 'energia'); +``` + +Очікування: +* 0 рядків (усі агенти, окрім city-level, повинні мати home_microdao_id). + +### 3.2. Агенти без DAIS-ідентичності + +```sql +-- Agents without DAIS identity +SELECT a.id, a.display_name +FROM agents a +WHERE a.dais_identity_id IS NULL + AND a.gov_level IN ('city_governance', 'district_lead', 'orchestrator', 'core_team'); +``` + +Очікування: +* 0 рядків для governance/lead агентів. + +--- + +## 4. Перевірка microDAO (microdaos) + +### 4.1. microDAO без оркестратора + +```sql +-- MicroDAO without orchestrator agent +SELECT id, slug, name, dao_type, orchestrator_agent_id +FROM microdaos +WHERE orchestrator_agent_id IS NULL; +``` + +Очікування: +* 0 рядків (кожне microDAO має мати orchestrator_agent_id). + +### 4.2. Orchestrator не існує в agents + +```sql +-- Orchestrator agent must exist in agents table +SELECT m.id, m.slug, m.name, m.orchestrator_agent_id +FROM microdaos m +LEFT JOIN agents a ON m.orchestrator_agent_id = a.id +WHERE a.id IS NULL AND m.orchestrator_agent_id IS NOT NULL; +``` + +Очікування: +* 0 рядків. + +--- + +## 5. Перевірка rooms (кімнат) + +### 5.1. Кімнати без owner + +```sql +-- Rooms without any owner +SELECT id, name, owner_type, owner_id, type +FROM rooms +WHERE owner_id IS NULL OR owner_id = ''; +``` + +Очікування: +* 0 рядків (усі кімнати мають належати city, microDAO, district, або агенту). + +### 5.2. Кімнати без primary_agent + +```sql +-- District/City rooms without primary agent +SELECT id, name, type, space_scope, primary_agent_id +FROM rooms +WHERE type IN ('city-room', 'district-room', 'front-room') + AND (primary_agent_id IS NULL OR primary_agent_id = ''); +``` + +Очікування: +* 0 рядків. + +--- + +## 6. Дії при виявленні "orphan" записів + +Якщо будь-який із запитів повертає рядки: + +1. **Зробити snapshot результату** (зберегти у `docs/debug/orphans_YYYYMMDD.md`). +2. Для кожного типу: + * визначити правильного owner або agent, + * або вирішити, що запис зайвий → видалити. +3. Створити окрему міграцію: + * `migrations/0xx_fix_orphans_YYYYMMDD.sql` + * тільки `UPDATE`/`DELETE`, без зміни схеми. + +Після застосування міграції — повторно виконати всі запити з цього таску. + +--- + +## 7. Умова завершення фази + +Фаза вважається виконаною, якщо: + +* всі SQL-запити з розділів 2–5 повертають 0 рядків + (або винятки чітко описані й задокументовані), +* є короткий звіт у `docs/debug/orphans_YYYYMMDD.md`, +* UI: + * `/nodes` + detail-сторінка ноди працюють, + * `/agents` + кабінети агентів працюють, + * `/microdao` працює без помилок. +