Commit Graph

301 Commits

Author SHA1 Message Date
Apple
6d4f9ec7c5 feat: add post-deploy verification checklist and script 2025-11-30 14:47:27 -08:00
Apple
25defcdb36 fix: cast all microdao_id to text in joins and where clauses 2025-11-30 14:37:29 -08:00
Apple
ac2de7cdd1 fix: remove debug try-except block 2025-11-30 14:31:51 -08:00
Apple
941f12cc0e fix: catch microdao fetch error in get_node_by_id 2025-11-30 14:30:04 -08:00
Apple
4e90b5153b fix: cast microdao_id to text in join 2025-11-30 14:27:39 -08:00
Apple
5e4228b81a fix: mount agents router under /api/v1 2025-11-30 14:09:32 -08:00
Apple
b2240f5314 fix: make deploy script robust 2025-11-30 14:07:28 -08:00
Apple
d71da0bae3 fix: restore DB script and migrations 2025-11-30 14:06:45 -08:00
Apple
534bd72183 ops: add DB restore and deploy script 2025-11-30 14:05:55 -08:00
Apple
1830109a95 feat: Agent System Prompts MVP (B) - database, backend API, and frontend integration 2025-11-30 14:04:48 -08:00
Apple
bca81dc719 feat: Node Self-Healing, DAGI Audit, Agent Prompts, Infra Invariants
### Backend (city-service)
- Node Registry + Self-Healing API (migration 039)
- Improved get_all_nodes() with robust fallback for node_registry/node_cache
- Agent Prompts Runtime API for DAGI Router integration
- DAGI Router Audit endpoints (phantom/stale detection)
- Node Agents API (Guardian/Steward)
- Node metrics extended (CPU/GPU/RAM/Disk)

### Frontend (apps/web)
- Node Directory with improved error handling
- Node Cabinet with metrics cards
- DAGI Router Card component
- Node Metrics Card component
- useDAGIAudit hook

### Scripts
- check-invariants.py - deploy verification
- node-bootstrap.sh - node self-registration
- node-guardian-loop.py - continuous self-healing
- dagi_agent_audit.py - DAGI audit utility

### Migrations
- 034: Agent prompts seed
- 035: Agent DAGI audit
- 036: Node metrics extended
- 037: Node agents complete
- 038: Agent prompts full coverage
- 039: Node registry self-healing

### Tests
- test_infra_smoke.py
- test_agent_prompts_runtime.py
- test_dagi_router_api.py

### Documentation
- DEPLOY_CHECKLIST_2024_11_30.md
- Multiple TASK_PHASE docs
2025-11-30 13:52:01 -08:00
Apple
0c7836af5a docs: MicroDAO Rooms Integration report 2025-11-30 12:03:07 -08:00
Apple
1ca4800202 fix: Dockerfile copies only apps/web, not root Vite project 2025-11-30 11:59:58 -08:00
Apple
7b61786c96 feat: MicroDAO Agents Section + Room roles
Frontend:
- MicrodaoAgentsSection component with role badges
- useMicrodaoAgents hook
- Extended room_role mapping (operations, knowledge, treasury, ai-core, etc.)
- API route for /api/microdao/[slug]/agents

Matrix: All 13 new rooms synced with Matrix
2025-11-30 11:57:24 -08:00
Apple
a7adddb60d feat: MicroDAO Rooms Integration
Backend:
- GET /city/microdao/{slug}/agents - list agents with roles
- Seed: 6 rooms for DAARION, 3+ rooms for each District

Task doc: TASK_PHASE_MICRODAO_ROOMS_INTEGRATION_v1.md
2025-11-30 11:48:44 -08:00
Apple
6908569ac7 docs: District Portals report
Verified on daarion.space:
- /districts shows 3 districts with cards
- /districts/soul shows lead agent, core team, rooms
- /soul, /greenfood, /energy-union shortcuts work
- All data from DB (no hardcodes)
2025-11-30 11:43:13 -08:00
Apple
c9d7681627 feat: District Portals Frontend
Pages:
- /districts - list of all districts with cards
- /districts/[slug] - district detail page
- /soul, /greenfood, /energy-union - shortcut redirects

UI Features:
- District-specific colors and icons
- Lead agent + core team display
- District rooms list with Matrix status
- District nodes list
- Chat widget for lobby room
- Stats (agents, rooms, nodes count)
2025-11-30 11:40:30 -08:00
Apple
0fd05f678a feat: District Portals API (DB-based, no hardcodes)
Backend:
- GET /api/v1/districts - list all districts from DB
- GET /api/v1/districts/{slug} - district detail with lead agent, core team, rooms, nodes

repo_city methods:
- get_districts() - SELECT FROM microdaos WHERE dao_type='district'
- get_district_by_slug()
- get_district_lead_agent() - with fallback to orchestrator
- get_district_core_team()
- get_district_agents()
- get_district_rooms() - by slug prefix
- get_district_nodes()
- get_district_stats()

Task doc: TASK_PHASE_DISTRICT_PORTALS_v1.md
2025-11-30 11:37:56 -08:00
Apple
066aae724a docs: City Rooms Routing report
Verified on daarion.space:
- /city lists 27 rooms
- /city/{slug} pages work with host agents
- Matrix room info displayed
- Chat widget integrated
2025-11-30 10:57:33 -08:00
Apple
85fdcdf0be feat: City Rooms routing implementation
Backend:
- GET /api/v1/city/rooms - list all city rooms
- GET /api/v1/city/rooms/{slug} - get room by slug with host agents

Frontend:
- Updated /city/[slug] page with host agents section
- Added breadcrumb navigation
- Updated API client to fetch room by slug
- Added rewrite for /api/city/rooms/:slug

Task doc: TASK_PHASE_CITY_ROOMS_ROUTING_v1.md
2025-11-30 10:54:39 -08:00
Apple
36394cff55 docs: Presence Layer implementation report
Backend complete:
- Matrix Gateway: GET /internal/matrix/presence/{mxid}
- City Service: GET /api/v1/agents/{id}/presence
- Both endpoints tested and working

TODO: Frontend integration
2025-11-30 10:43:39 -08:00
Apple
3bfbd359fd feat: Presence Layer API implementation
Matrix Gateway:
- GET /internal/matrix/presence/{matrix_user_id} - get single user presence
- GET /internal/matrix/presence/bulk - get multiple users presence

City Service:
- GET /api/v1/agents/{agent_id}/presence - get agent presence via gateway
- get_matrix_presence_for_user() helper function

Task doc: TASK_PHASE_PRESENCE_LAYER_v1.md
2025-11-30 10:42:29 -08:00
Apple
e912019d16 docs: Matrix Finalize v2 report
Backend Matrix integration complete:
- Synapse rate limits increased (100 msg/s, 500 burst)
- All 27 rooms synced with Matrix
- Chat API endpoints working (send/receive)
- Message flow tested end-to-end

TODO:
- Frontend routing for room pages
- Chat widget integration with new API
- Presence API integration
2025-11-30 10:37:34 -08:00
Apple
ec57f7a596 feat: Add Chat API endpoints for Matrix integration
City Service:
- GET /api/v1/chat/rooms/{room_id}/messages - get message history
- POST /api/v1/chat/rooms/{room_id}/messages - send message
- Add get_room_by_id to repo_city

Synapse:
- Increase rate limits for room creation
- Add rc_joins, rc_invites configuration

All 27 rooms now have matrix_room_id
2025-11-30 10:34:27 -08:00
Apple
aa3b9970fd docs: add Matrix Gateway integration report
- 9 rooms synced with Matrix successfully
- 16 rooms pending due to rate limiting
- Matrix Gateway endpoints working
- Auto-create logic implemented for agent/node/microdao chat rooms
2025-11-30 10:16:43 -08:00
Apple
7108985b55 feat: Matrix Gateway integration for Rooms Layer
Matrix Gateway:
- Add POST /internal/matrix/room/join endpoint
- Add POST /internal/matrix/message/send endpoint
- Add GET /internal/matrix/rooms/{room_id}/messages endpoint

City Service:
- Add POST /rooms/sync/matrix endpoint for bulk sync
- Update get_agent_chat_room to auto-create Matrix rooms
- Update get_node_chat_room to auto-create Matrix rooms
- Update get_microdao_chat_room to auto-create Matrix rooms
- Add join_user_to_room, send_message_to_room, get_room_messages to matrix_client
- Add ensure_room_has_matrix helper function

This enables:
- Automatic Matrix room creation for all entity types
- chat_available = true when Matrix room exists
- Real-time messaging via Matrix
2025-11-30 10:12:27 -08:00
Apple
361d114a43 docs: add Rooms Layer restore report
Completed:
- City Rooms (8 rooms)
- MicroDAO Rooms (5 rooms for DAARION)
- Node Support Rooms (2 rooms)
- Citizens Layer (14 public agents)

TODO:
- Matrix room creation
- Gateway integration
- Chat widget full integration
2025-11-30 09:58:32 -08:00
Apple
e62f81253f fix: MicroDAO rooms query to include owner_id based rooms 2025-11-30 09:56:58 -08:00
Apple
1ea293281a fix: correct function name list_agent_summaries 2025-11-30 09:52:11 -08:00
Apple
b2ddaa90b3 fix: add updated_at column to city_rooms 2025-11-30 09:51:03 -08:00
Apple
f8d1287e38 fix: add missing columns to city_rooms table (room_type, owner_type, etc.) 2025-11-30 09:49:55 -08:00
Apple
a1baedfc94 feat: Rooms Layer restore - seed City/MicroDAO/Node rooms + fix Citizens
TASK_PHASE_ROOMS_LAYER_RESTORE_AND_MATRIX_INTEGRATION (partial):

Backend:
- Seed 8 City Rooms (general, welcome, leadership-hall, etc.)
- Seed 5 MicroDAO Rooms for DAARION (lobby, governance, news, builders, help)
- Seed 2 Node Support Rooms (node1, node2)
- Update agents is_public for Citizens Layer
- Fix get_public_citizens query (less strict filtering)
- Add get_city_rooms_for_list function

This fixes:
- City Rooms list = 0 -> now 8 rooms
- MicroDAO Rooms = 0 -> now 5 rooms
- Citizens = 0 -> now shows public agents
2025-11-30 09:48:37 -08:00
Apple
d264e7efc5 docs: add critical TASK_PHASE_ROOMS_LAYER_RESTORE_AND_MATRIX_INTEGRATION.md
Comprehensive task to fix Rooms Layer issues:
- City Rooms not loading in list view
- MicroDAO Rooms = 0
- Agent/Node Chat Rooms missing
- Citizens Layer = 0 citizens

Includes SQL seeds, API fixes, Matrix integration steps.
2025-11-30 09:43:10 -08:00
Apple
fcdac0f33c feat: implement Agent Presence Indicators (MVP)
Backend:
- Add /api/v1/agents/presence endpoint
- Integrate with matrix-presence-aggregator
- Add DAGI router health checks

Frontend:
- Create useAgentPresence hook
- Create AgentPresenceBadge component
- Integrate into /agents list page
- Integrate into /agents/:agentId cabinet

Shows real-time online/offline status for all agents.
2025-11-30 09:41:57 -08:00
Apple
111d62a62a docs: add TASK_PHASE_AGENT_PRESENCE_INDICATORS_MVP.md
Task for implementing real-time presence indicators for all agents.
Shows Matrix presence (online/unavailable/offline) and DAGI router health.
Integrates into agent lists, cabinets, node dashboards, microdao dashboards.
2025-11-30 09:22:29 -08:00
Apple
e246e6d413 docs: update verification checklist with deployment results 2025-11-30 09:17:30 -08:00
Apple
c4d7eb4493 fix: correct JSX structure in node page for chat widget 2025-11-30 09:15:17 -08:00
Apple
38e49adeba fix: syntax error in node page - missing closing div 2025-11-30 09:13:01 -08:00
Apple
6297adc0dc feat: implement Agent Chat Widget for entity pages
TASK_PHASE_AGENT_CHAT_WIDGET_MVP.md completed:

Backend:
- Add /api/v1/agents/{agent_id}/chat-room endpoint
- Add /api/v1/nodes/{node_id}/chat-room endpoint
- Add /api/v1/microdaos/{slug}/chat-room endpoint

Frontend:
- Create AgentChatWidget.tsx floating chat component
- Integrate into /agents/:agentId page
- Integrate into /nodes/:nodeId page
- Integrate into /microdao/:slug page

Ontology rule implemented:
'No page without agents' = ability to directly talk to agents on that page
2025-11-30 09:10:45 -08:00
Apple
fb4a33f016 docs: add TASK_PHASE_AGENT_CHAT_WIDGET_MVP.md
Task for implementing floating chat widget on agent/node/microdao pages.
Follows ontology rule: 'No page without agents means ability to talk to them directly.'

Scope:
- Backend: /chat-room API endpoints
- Frontend: AgentChatWidget.tsx component
- Integration: /agents/:agentId, /nodes/:nodeId, /microdao/:slug
2025-11-30 09:04:04 -08:00
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
Apple
a23deae3c4 feat(node-dashboard): add MVP dashboard API endpoint
- services/city-service: add /api/v1/nodes/{id}/dashboard endpoint
- services/city-service: add legacy /api/v1/node/dashboard?nodeId=...
- apps/web: update route.ts to use city-service first
- apps/web: fallback to node-registry if city-service fails

Response structure:
  node_id, name, kind, status, tags, agents_total,
  agents_online, uptime (null), metrics_available (false)

Closes TASK_PHASE_NODE_DASHBOARD_API_MVP
2025-11-30 06:59:51 -08:00
Apple
85a785bd86 fix(compose): use external postgres volume + city-service ENV
- docker-compose.yml: postgres uses microdao-daarion_postgres_data (external)
- docker-compose.yml: city-service connects to dagi-postgres:5432/daarion + NATS_URL
- docker-compose.city-space.yml: added dagi-postgres, dagi-nats as services
- docs/DEPLOY_ON_SERVER.md: added restart instructions without data loss

Closes TASK_PHASE_DOCKER_COMPOSE_CITY_SERVICE_POSTGRES
2025-11-30 06:58:02 -08:00
Apple
9d6428c6ee docs: add compose + node dashboard tasks 2025-11-30 06:51:46 -08:00
Apple
7ff426f975 fix: allow node cabinet fallback when dashboard unavailable 2025-11-30 06:40:32 -08:00
Apple
ff4e9dd06b fix: default city-service NATS_URL to dagi-nats 2025-11-30 06:28:55 -08:00
Apple
0640227de0 fix: allow optional name for node guardian/steward summaries 2025-11-30 06:24:52 -08:00
Apple
39f76912ae fix: proxy /api/nodes/* to city-service public endpoints 2025-11-30 06:22:24 -08:00
Apple
dd3624018a fix: Add proper Next.js rewrites for agent/microdao API
- /api/agents/:agentId/dashboard -> /city/agents/:agentId/dashboard
- /api/microdao/* -> /city/microdao/*
- /api/public/* -> /public/*
- /api/city/* -> /city/*

Fixes 404 errors on agent/microdao cabinet pages
2025-11-30 06:17:25 -08:00
Apple
3e778e0f81 docs: MVP seed completed + orphan audit
- TASK_PHASE_MVP_SEED_REAL_ENTITIES: marked as completed
- TASK_PHASE_MVP_VERIFY_NO_ORPHANS: orphan verification task
- orphans_20251130.md: audit report with fixes applied

Fixes applied on NODE1:
- 13 governance agents now have DAIS identity
- 4 test agents now have home_microdao_id
- All 18 agents, 9 microDAOs, 23 rooms verified
2025-11-30 06:05:03 -08:00