- CORE_ROUTERS.md: Full analysis of 36 routers, KEEP/PARK/CUT categorization - ROUTER_PLAN.md: Detailed execution plan to reduce to 10 core routers Analysis shows: - Frontend calls only 10 routers (auth, blockchain, miner, devices, email, social, video, ai_chat, files, system) - 11 integration routers (Railway, Stripe, etc.) can be parked - 14 experimental routers (browser, games, dashboard, etc.) can be parked Plan includes 11 phases with step-by-step instructions, success criteria, rollback plan, and 2-hour time estimate. All code preserved and reversible. Ready for execution after approval.
9.2 KiB
BlackRoad OS v0 - Router Analysis & Categorization
Generated: 2025-11-18
Branch: claude/go-cece-go-016Tb6VLbDJmjyvatTkSeZxY
Purpose: Define which routers are KEEP/PARK/CUT for v0 thin vertical slice
Executive Summary
Total Routers: 36 Frontend-Called Routers: 10 v0 KEEP Routers: 11 (10 frontend + 1 health) PARK Routers: 14 (large, not v0-critical) CUT Routers: 11 (small stubs, experimental)
KEEP: Core v0 Routers (11 total)
These routers are actively called by the frontend or critical for v0 operation.
| Router | Prefix | Lines | Called By | Purpose |
|---|---|---|---|---|
| auth | /api/auth |
~200 | Frontend | Login, register, logout, session management |
| blockchain | /api/blockchain |
~450 | Frontend | Wallet, transactions, blocks, mining |
| miner | /api/miner |
~300 | Frontend | Mining status, control, pool management |
| devices | /api/devices |
643 | Frontend | Raspberry Pi, IoT device management |
/api/email |
~250 | Frontend | RoadMail inbox, sent, compose | |
| social | /api/social |
~300 | Frontend | BlackRoad Social feed, posts, likes, comments |
| video | /api/videos |
~250 | Frontend | BlackStream videos, likes, views |
| ai_chat | /api/ai-chat |
~350 | Frontend | AI conversations, messages |
| files | /api/files |
~200 | Frontend | File manager, folders, uploads |
| system | /api/system |
83 | Frontend | OS version, config, state |
/health |
/health |
(in main.py) | Railway, monitoring | Health check for deployment |
Action: ✅ KEEP - These must remain active for v0.
CONSIDER: Potentially Useful (3 total)
These routers are substantial but not currently called by frontend. Evaluate case-by-case.
| Router | Prefix | Lines | Purpose | Decision |
|---|---|---|---|---|
| dashboard | /api/dashboard |
519 | Unified services overview, aggregates stats from all apps | PARK - Useful but not v0-critical |
| agents | /api/agents |
347 | Exposes 208-agent library via API | PARK - Cool feature, but not v0-critical |
| api_health | /api/health |
389 | Service health monitoring, uptime tracking | PARK - Overlaps with /health, not critical |
Action: ⚠️ PARK - Move to _archive/, can restore later.
PARK: Integration Routers (11 total)
These are API integration routers for external services. Not needed for v0 core functionality.
| Router | Prefix | Lines | Purpose |
|---|---|---|---|
| railway | /api/railway |
395 | Railway deployment management |
| vercel | /api/vercel |
426 | Vercel project automation |
| stripe | /api/stripe |
~300 | Payment processing |
| twilio | /api/twilio |
~200 | SMS/phone messaging |
| slack | /api/slack |
~250 | Slack workspace automation |
| discord | /api/discord |
~250 | Discord community integrations |
| sentry | /api/sentry |
382 | Error monitoring hooks |
| github | /api/github |
433 | GitHub automation, repos, issues |
| huggingface | /api/huggingface |
~200 | AI model integrations |
| digitalocean | /api/digitalocean |
~350 | DigitalOcean droplets, domains |
| cloudflare | /api/cloudflare |
~300 | Cloudflare DNS, zones, workers |
Action: 📦 PARK - Move to backend/app/routers/_integrations/, comment out in main.py.
CUT: Experimental/Stub Routers (11 total)
These are small routers (36-150 lines) that are experimental, incomplete, or not wired to frontend.
| Router | Prefix | Lines | Purpose | Status |
|---|---|---|---|---|
| browser | /api/browser |
414 | In-OS browser (not in frontend) | Stub |
| games | /api/games |
491 | Gaming platform (not in frontend) | Stub |
| vscode | /api/vscode |
~200 | VSCode integration (not in frontend) | Stub |
| capture | /api/capture |
150 | Screen/video capture | Minimal |
| compliance_ops | /api/compliance |
36 | Compliance operations | Minimal stub |
| creator | /api/creator |
85 | Creator tools | Minimal stub |
| identity_center | /api/identity |
123 | Identity management | Minimal stub |
| notifications_center | /api/notifications |
81 | Notification center | Minimal stub |
| search | /api/search |
88 | Global search | Minimal stub |
| operator_webhooks | /api/operator/webhooks |
81 | Operator webhooks | Minimal stub |
| webhooks | /api/webhooks |
~100 | GitHub webhooks (Phase Q) | Experimental |
| prism_static | /prism/* |
89 | Prism console static files | Separate app |
Action: ✂️ CUT - Comment out in main.py, move to backend/app/routers/_experimental/ or delete.
Frontend API Call Map
All API calls found in backend/static/js/ (extracted from api-client.js + apps.js + auth.js + core-os-client.js):
Auth
POST /api/auth/registerPOST /api/auth/loginPOST /api/auth/logoutGET /api/auth/me
Blockchain
GET /api/blockchain/walletGET /api/blockchain/balanceGET /api/blockchain/transactionsGET /api/blockchain/transactions/{txHash}POST /api/blockchain/transactionsGET /api/blockchain/blocksGET /api/blockchain/blocks/{blockId}POST /api/blockchain/mineGET /api/blockchain/stats
Miner
GET /api/miner/statusGET /api/miner/statsGET /api/miner/blocksPOST /api/miner/controlGET /api/miner/pool/info
Devices
GET /api/devices/GET /api/devices/statsGET /api/devices/{deviceId}POST /api/devices/PUT /api/devices/{deviceId}DELETE /api/devices/{deviceId}
GET /api/email/foldersGET /api/email/inboxGET /api/email/sentGET /api/email/{emailId}POST /api/email/sendDELETE /api/email/{emailId}
Social
GET /api/social/feedPOST /api/social/postsPOST /api/social/posts/{postId}/likeGET /api/social/posts/{postId}/commentsPOST /api/social/posts/{postId}/commentsPOST /api/social/users/{userId}/follow
Video
GET /api/videosGET /api/videos/{videoId}POST /api/videos/{videoId}/like
AI Chat
GET /api/ai-chat/conversationsPOST /api/ai-chat/conversationsGET /api/ai-chat/conversations/{conversationId}GET /api/ai-chat/conversations/{conversationId}/messagesPOST /api/ai-chat/conversations/{conversationId}/messagesDELETE /api/ai-chat/conversations/{conversationId}
Files
GET /api/files/foldersGET /api/filesGET /api/files/{fileId}DELETE /api/files/{fileId}
System
GET /api/system/versionGET /api/system/config/publicGET /api/system/os/state
Health
GET /health(core endpoint, not in a router)
Routers NOT Called by Frontend
These 25 routers exist but are not called by current frontend:
agents, api_health, browser, capture, cloudflare, compliance_ops, creator, dashboard, digitalocean, discord, games, github, huggingface, identity_center, notifications_center, operator_webhooks, prism_static, railway, search, sentry, slack, stripe, twilio, vercel, vscode, webhooks
Recommendations for v0
Immediate Actions
-
Keep these 11 routers active:
- auth, blockchain, miner, devices, email, social, video, ai_chat, files, system
- Plus
/healthendpoint inmain.py
-
Move integrations to
_integrations/:- Create
backend/app/routers/_integrations/ - Move: railway, vercel, stripe, twilio, slack, discord, sentry, github, huggingface, digitalocean, cloudflare
- Comment out in
main.py
- Create
-
Move experimental to
_experimental/:- Create
backend/app/routers/_experimental/ - Move: browser, games, vscode, capture, compliance_ops, creator, identity_center, notifications_center, search, operator_webhooks, webhooks, prism_static
- Comment out in
main.py
- Create
-
Park potentially useful routers:
- Move dashboard, agents, api_health to
_experimental/for now - Can restore later when frontend needs them
- Move dashboard, agents, api_health to
Database Dependencies
Check these models are needed for KEEP routers:
- User (auth)
- Block, Transaction, Wallet (blockchain)
- Device (devices)
- Email (email)
- Post, Like, Comment (social)
- Video (video)
- Conversation, Message (ai_chat)
- File, Folder (files)
Models for PARK/CUT routers can be left in place (no harm, just unused).
Environment Variables
Required for v0 KEEP routers:
SECRET_KEY(auth)DATABASE_URL(all routers)REDIS_URL(sessions, caching)OPENAI_API_KEY(ai_chat)SMTP_*variables (email - optional if email is stub)AWS_*variables (files - optional if files is stub)
Not required for v0:
STRIPE_*,TWILIO_*,SLACK_*,DISCORD_*,GITHUB_*, etc. (all integration routers)
Testing Strategy
After reorganization, test:
- Start backend:
uvicorn app.main:app --reload - Check startup logs: No import errors for moved routers
- Hit
/health: Returns{"status": "healthy"} - Load frontend:
http://localhost:8000/ - Test auth: Register/login works
- Test one app: e.g., Wallet or AI Chat
- Check browser console: No 404 errors for API calls
Next Steps
See ROUTER_PLAN.md for detailed execution plan.
End of Router Analysis