# DAGI / microdao Architecture Inventory — Executive Summary

Generated: 2026-02-16
Scope basis: `docs/SESSION_STARTER.md` + repository scan + operator clarifications (current thread decisions).

## Executive Findings (Updated)
- Canonical deployment authority is **per-node compose manifests**, not a single universal file.
  - NODE1: `docker-compose.node1.yml`
  - NODE3: `docker-compose.node3.yml`
  - Staging: `docker-compose.staging.yml` (+ overrides)
- Drift-check policy should run per node against its local compose stack (services/images/ports/volumes/networks/env-nonsecret/healthcheck).
- `ingest-service`, `parser-pipeline`, `control-plane` are currently treated as **not active on NODE1**; catalog now uses lifecycle statuses (`DEPLOYED`, `DEFINED`, `PLANNED/EXTERNAL`).
- NATS canonical run subject policy is set to:
  - publish: `agent.run.requested.{agent_id}`
  - subscribe: `agent.run.requested.*`
  with dual-subscribe/publish migration window.
- Proxy policy is fixed at architectural level: single owner for 80/443 in production (nginx **or** Caddy), second proxy internal-only or disabled.

## Priority Contradictions To Resolve
1. Memory API contract mismatch (`/store` in docs vs `/memories`/`/events`/`/retrieve` in code).
2. NATS run subject shape mismatch (legacy flat subject still in worker/producer paths).
3. Proxy ownership conflict (nginx vs Caddy) in runtime runbooks.
4. Architecture diagrams include services not currently deployed on NODE1.

## Source pointers
- `docs/SESSION_STARTER.md`
- `docker-compose.node1.yml`
- `docker-compose.node3.yml`
- `docker-compose.staging.yml`
- `services/crewai-worker/main.py`
- `services/router/main.py`
- `ops/nginx/node1-api.conf`
- `docs/OPENAPI_CONTRACTS.md`
- `docs/ARCHITECTURE_DIAGRAM.md`
