Apple
8e8f95e9ef
feat(db-hardening): Add database persistence, backups, and MinIO assets storage
...
Database Hardening:
- Add docker-compose.db.yml with persistent PostgreSQL volume
- Add automatic DB backups every 12h (7 days, 4 weeks, 6 months retention)
- Add MinIO S3-compatible storage for assets
Assets Migration:
- Add MinIO client (lib/assets_client.py) for upload/delete
- Update upload endpoint to use MinIO (with local fallback)
- Add migration 043_asset_urls_to_text.sql for full HTTPS URLs
- Simplify normalizeAssetUrl for S3 URLs
Recovery:
- Add seed_full_city_reset.py for emergency city recovery
- Add DB_RESTORE.md with backup restore instructions
- Add SEED_RECOVERY.md with recovery procedures
- Add INFRA_ASSETS_MINIO.md with MinIO setup guide
Task: TASK_PHASE_DATABASE_HARDENING_AND_ASSETS_MIGRATION_v1
2025-12-02 01:56:39 -08:00
Apple
0e743e5629
fix: restore microdao/agent logos and banner asset urls
...
- Enhanced normalizeAssetUrl to handle all edge cases
- Added normalizeAssetUrl to all avatar/logo/banner usages:
- agents/page.tsx
- agents/[agentId]/page.tsx
- citizens/page.tsx
- citizens/[slug]/page.tsx
- MicrodaoAgentsSection.tsx
- MicrodaoBrandingCard.tsx
- AgentSummaryCard.tsx
- AgentChatWidget.tsx
Task: TASK_PHASE_ASSET_BRANDING_HOTFIX_v1
2025-12-01 11:40:03 -08:00
Apple
dddf51affe
feat(microdao-rooms): Add MicroDAO rooms creation/deletion and agent chat
...
Backend:
- POST /city/microdao/{slug}/rooms - create new room for MicroDAO
- DELETE /city/microdao/{slug}/rooms/{room_id} - soft-delete room
- POST /city/agents/{agent_id}/ensure-room - create personal agent room
Frontend:
- MicrodaoRoomsSection: Added create room modal with name, description, type
- MicrodaoRoomsSection: Added delete room functionality for managers
- Agent page: Added 'Поговорити' button to open chat in City Room
Models:
- Added CreateMicrodaoRoomRequest model
Task: TASK_PHASE_MICRODAO_ROOMS_AND_PUBLIC_CHAT_v3
2025-12-01 10:09:28 -08:00
Apple
2d730198d9
fix(citizens): Fix PublicCitizenSummary slug validation error
...
- Made slug optional in PublicCitizenSummary model
- Added fallback to agent id if public_slug is None
2025-12-01 09:37:48 -08:00
Apple
cc1704b70c
fix(agents): Wrap NewAgentPage in Suspense for useSearchParams
2025-12-01 09:32:16 -08:00
Apple
6cd8148872
feat(agents): Add Create/Delete Agent functionality
...
Backend:
- Added POST /city/agents endpoint for creating agents
- Added DELETE /city/agents/{id} endpoint for soft-deleting agents
- Added CreateAgentRequest, CreateAgentResponse, DeleteAgentResponse models
Frontend:
- Added '+ Новий агент' button on /agents page
- Created /agents/new page with full agent creation form
- Added 'Видалити агента' button in agent Identity tab (Danger Zone)
Features:
- Auto-generate slug from display_name
- Support for all agent fields: kind, role, model, node, district, microdao
- Color picker for agent color
- Visibility toggles (is_public, is_orchestrator)
- Soft delete with confirmation dialog
2025-12-01 09:29:42 -08:00
Apple
649d07ee29
feat(rooms): Fix NaN online stats + Add DAARWIZZ CTA on homepage
...
- Fixed NaN in online stats by using nullish coalescing (?? 0)
- Added members_online, zone, room_type to /api/v1/city/rooms response
- Added DAARWIZZ chat CTA section on homepage with link to city-lobby
- Created task files for next phases:
- TASK_PHASE_CITY_ROOMS_FINISH_v2.md
- TASK_PHASE_AGENT_MANAGEMENT_v1.md
- TASK_PHASE_CITIZENS_DIRECTORY_v1.md
2025-12-01 09:19:07 -08:00
Apple
a563ec86a0
fix(rooms): Use rewrite for /api/city/rooms instead of API route
...
- Removed API route that was conflicting with rewrite
- Added explicit rewrite for /api/city/rooms -> /api/v1/city/rooms
- Rewrite order matters: specific routes before wildcard
2025-12-01 08:52:59 -08:00
Apple
0039be5dc0
feat(rooms): Add city-lobby with DAARWIZZ + fix API proxy
...
- Created city-lobby room as main public chat with DAARWIZZ
- Fixed /api/city/rooms proxy to use correct backend path (/api/v1/city/rooms)
- Updated district rooms with zone keys (leadership, system, engineering, etc.)
- Set MicroDAO lobbies as primary rooms
- Created seed_city_rooms.py script
- Created TASK_PHASE_CITY_ROOMS_AND_PUBLIC_CHAT_v1.md
Total: 35 rooms, 31 public, 10 districts
2025-12-01 08:47:37 -08:00
Apple
2f8e471e03
feat(node2): Full DAGI integration - 50 agents synced
...
- Created sync-node2-dagi-agents.py script to sync agents from agents_city_mapping.yaml
- Synced 50 DAGI agents across 10 districts:
- Leadership Hall (4): Solarius, Sofia, PrimeSynth, Nexor
- System Control (6): Monitor, Strategic Sentinels, Vindex, Helix, Aurora, Arbitron
- Engineering Lab (5): ByteForge, Vector, ChainWeaver, Cypher, Canvas
- Marketing Hub (6): Roxy, Mira, Tempo, Harmony, Faye, Storytelling
- Finance Office (4): Financial Analyst, Accountant, Budget Planner, Tax Advisor
- Web3 District (5): Smart Contract Dev, DeFi Analyst, Tokenomics Expert, NFT Specialist, DAO Governance
- Security Bunker (7): Shadelock, Exor, Penetration Tester, Security Monitor, Incident Responder, Shadelock Forensics, Exor Forensics
- Vision Studio (4): Iris, Lumen, Spectra, Video Analyzer
- R&D Lab (6): ProtoMind, LabForge, TestPilot, ModelScout, BreakPoint, GrowCell
- Memory Vault (3): Somnia, Memory Manager, Knowledge Indexer
- Fixed Swapper config to use swapper_config_node2.yaml with 8 models
- Created TASK_PHASE_NODE2_FULL_DAGI_INTEGRATION_v1.md
NODE2 now shows:
- 50 agents in DAGI Router Card
- 8 models in Swapper Service (gpt-oss, phi3, starcoder2, mistral-nemo, gemma2, deepseek-coder, qwen2.5-coder, deepseek-r1)
- Full isolation from NODE1
2025-12-01 08:31:25 -08:00
Apple
a818f2ac2f
feat: add router health metrics to node_cache and node-guardian
...
- Add migration 042_node_cache_router_metrics.sql
- Node guardian now collects router health and sends in heartbeat
- City-service uses cached router_healthy from node_cache
- This allows NODE2 router status to be displayed correctly
2025-12-01 08:03:46 -08:00
Apple
9b9a72ffbd
feat: full node isolation - use node-specific swapper_url and router_url from DB
...
- Add migration 041_node_local_endpoints.sql
- Add get_node_endpoints() to repo_city.py
- Update routes_city.py to use DB endpoints instead of hardcoded URLs
- Update node-guardian-loop.py to use NODE_SWAPPER_URL/NODE_ROUTER_URL env vars
- Update launchd plist for NODE2 with router URL
2025-12-01 08:01:53 -08:00
Apple
b25e002db6
feat: add logging for node isolation debugging in node-guardian
2025-12-01 07:35:37 -08:00
Apple
31c4da2b54
fix: add is_pinned and pinned_weight to MicrodaoSummary model and API
2025-12-01 07:28:02 -08:00
Apple
ce973b2b38
feat: add MicroDAO pinning - 4 platform districts always on top
2025-12-01 07:26:35 -08:00
Apple
092346f057
fix: use normalizeAssetUrl for banner
2025-12-01 07:09:55 -08:00
Apple
9e7b1f25ef
fix: add node button visibility, fix node-guardian swapper health check, fix banner URL transform
2025-12-01 07:08:36 -08:00
Apple
8e14750f8b
fix: discover_node_state.py global variable scope, add generated node state files
2025-12-01 06:50:48 -08:00
Apple
f5c58358a0
feat: add 'Додати ноду' button to Node Directory, create /nodes/register page, add node discovery script
2025-12-01 06:47:27 -08:00
Apple
d5aae67b50
fix: remove duplicate API route, add dynamic export to swapper route
2025-12-01 06:26:57 -08:00
Apple
fbf17be668
fix: normalize MicroDAO logo URLs using helper function
2025-12-01 06:23:54 -08:00
Apple
c68935d3a3
fix: simplify get_node_agents query to use existing columns
2025-12-01 06:07:41 -08:00
Apple
9640fd5a75
fix: remove duplicate get_dagi_router_agents function
2025-12-01 06:06:35 -08:00
Apple
909258fdcb
fix: DAGI Router agents logic, MicroDAO logo URL handling
2025-12-01 06:03:08 -08:00
Apple
e3accd4df0
feat: DAGI Router v2 - new endpoints, hooks, and UI card
2025-12-01 05:21:43 -08:00
Apple
53f31adbf0
feat: add logo display in MicroDAO cards and hero section, add banner background support
2025-12-01 04:34:26 -08:00
Apple
0f32630733
fix: use CASE instead of COALESCE for swapper_state to always update when provided
2025-12-01 04:12:38 -08:00
Apple
d8ab32b59f
fix: add beforeFiles to rewrites config
2025-12-01 04:07:59 -08:00
Apple
6ebdaac25d
fix: use afterFiles/fallback rewrites to allow Next.js API routes to work
2025-12-01 04:06:51 -08:00
Apple
2589f2d99d
fix: rename /api/internal/ to /api/node-internal/ to avoid routing issues
2025-12-01 04:00:38 -08:00
Apple
b55c59b9d1
fix: rename _debug to debug (Next.js ignores underscore prefixes)
2025-12-01 03:45:30 -08:00
Apple
1a81cf75f1
feat: add unified API proxy layer, debug endpoint, and systemd service for node-guardian
2025-12-01 03:43:06 -08:00
Apple
b3e3c6417d
fix: update Swapper endpoints (/health, /models), remove upload size limits, auto-convert images
2025-12-01 03:03:27 -08:00
Apple
9c79b6e526
fix: add static files proxy and improve upload URL handling
2025-12-01 02:45:07 -08:00
Apple
7843ff3d86
fix: improve error handling for swapper and upload APIs
2025-12-01 02:41:35 -08:00
Apple
d4e20ea513
feat: add MicroDAO branding and Agent avatar upload UI
2025-12-01 02:26:02 -08:00
Apple
95b75d5897
fix: export StatusBadge from node-dashboard
2025-12-01 02:21:07 -08:00
Apple
dcc9ec0b39
fix: next15 api route params must be Promise
2025-12-01 02:19:57 -08:00
Apple
394dd62980
feat: add swapper api proxy and improved card
2025-12-01 02:18:14 -08:00
GitHub Action
f0d113e234
docs: auto-update repository information [skip ci]
2025-12-01 09:30:48 +00:00
Apple
135e8ed83c
fix: suppress expected swapper connection errors in guardian loop
2025-11-30 15:41:42 -08:00
Apple
281c79f916
feat: implement swapper metrics and node cabinet ui
2025-11-30 15:40:41 -08:00
Apple
cb9efaf656
fix: import Swapper models in routes_city
2025-11-30 15:26:42 -08:00
Apple
4f123ae79b
fix: update deploy script to avoid container conflicts
2025-11-30 15:25:37 -08:00
Apple
cbaaed5e23
fix: fix backend files and add swapper functionality
2025-11-30 15:19:11 -08:00
Apple
fd814b2059
feat: implement Swapper metrics collection and UI
2025-11-30 15:12:49 -08:00
Apple
5b5160ad8b
fix: correct API endpoints in node-guardian-loop script
2025-11-30 15:01:06 -08:00
Apple
4ae9ee4d70
fix: allow healthy status in invariants check
2025-11-30 14:53:53 -08:00
Apple
a8617df1d0
fix: check /health instead of /healthz in invariants script
2025-11-30 14:53:17 -08:00
Apple
5c1d7d15f9
fix: correct API endpoints in verification scripts
2025-11-30 14:51:59 -08:00