Sprint 1 Fact Table — Updated 2026-04-21
Purpose: Track what's done vs. what's left across all Project Velocity modules.
Last Audit Date: 2026-04-21 (full codebase review)
Previous Version: Sprint 1 Fact Table - 2026-04-12 (marked many items "Missing" that are now implemented)
Executive Summary
| Metric |
Value |
| Total Backend Route Files |
10 (routes_crm.py, routes_crm_imports.py, routes_oracle.py, routes_oracle_templates.py, routes_catalyst.py, routes_inventory.py, routes_mobile_edge.py, routes_runtime_llm.py, routes_admin_surface.py, routes_weaver.py) |
| Total Backend Services |
5 (aggregation_service, ingest_service, ad_network_service, nemoclaw_runtime, runtime_llm_service) |
| Frontend Modules (React) |
7 (Dashboard, Oracle, Sentinel, Inventory, Catalyst, CRM, Settings) + Admin page |
| iOS Apps |
2 (velocity iPad app, velocity-iphone Edge app) |
| Infrastructure Layers |
4 (aws_scale, blackbox_local, desineuron_ingress, ops_control_plane) |
| Test Coverage |
10 test files across backend |
Status Legend
- ✅ Done — Fully implemented, functional code exists
- 🔶 Partial — Core logic exists but needs refinement/completion
- ❌ Missing — No implementation found in current codebase
- 📋 Planned — Documented in specs but not yet coded
User Story Rollup
US-01: FastAPI Neural Core (Unified Backend)
| Item |
Status |
Evidence |
| FastAPI app with auth middleware |
✅ Done |
backend/auth/ — get_current_user, UserPrincipal |
| PostgreSQL connection pooling |
✅ Done |
All routes use request.app.state.db_pool |
| WebSocket support |
🔶 Partial |
useVelocitySocket hook exists in frontend; backend WS layer not confirmed in current scan |
| Auth (login/logout/session) |
✅ Done |
getVelocityMe, clearVelocityToken, token validation in App.tsx |
| Role-based access (admin/superadmin) |
✅ Done |
routes_admin_surface.py enforces ADMIN_ROLES; isAdminRole() guard in frontend |
Verdict: ✅ Done — Core backend is production-ready.
US-02: CRM — Canonical Layer
| Item |
Status |
Evidence |
Notes |
POST/GET /crm/imports (CSV upload + lifecycle) |
✅ Done |
routes_crm_imports.py — 799 lines |
Full import pipeline: upload → parse → infer mapping → proposals → review → commit |
POST/GET /crm/contacts |
✅ Done |
routes_crm_imports.py |
CRUD for crm_people |
GET /crm/client-360/{id} |
✅ Done |
routes_crm_imports.py |
Joins across 8 canonical tables via aggregation_service.py |
GET /crm/opportunities |
✅ Done |
routes_crm_imports.py |
Full pipeline list with stage/probability/value |
GET/POST /crm/tasks |
✅ Done |
routes_crm_imports.py |
Reminder/inbox system |
GET /crm/kanban |
✅ Done |
routes_crm_imports.py |
Kanban board from canonical data |
GET /crm/qd/{id} (Quantum Dynamics scores) |
✅ Done |
routes_crm_imports.py |
QD score summary + timeseries |
| CSV import column mapping heuristics |
✅ Done |
ingest_service.py — 40+ canonical mappings |
Confidence scoring, review_required flags |
| CRM Frontend — Contacts view |
✅ Done |
CRM.tsx — ContactListView with search/filter/pagination |
|
| CRM Frontend — Kanban view |
✅ Done |
CRM.tsx — PipelineView with drag-ready columns |
|
| CRM Frontend — Opportunities view |
✅ Done |
CRM.tsX — Deal pipeline table |
|
| CRM Frontend — Tasks view |
✅ Done |
CRM.tsx — Priority-ordered task list |
|
| CRM Frontend — Import view |
✅ Done |
CRM.tsx — File picker with live upload |
|
| CRM Frontend — Client 360 panel |
✅ Done |
CRM.tsx — Slide-over dossier with QD bars, risk flags, recommended actions |
|
Canonical schema (schema_crm_canonical.sql) |
✅ Done |
709 lines — 25+ tables across CRM Core, Intel Graph, Inventory Domain, Workflow Governance |
|
Verdict: ✅ Done — CRM is the most complete module. Both backend and frontend are fully implemented with canonical data model.
US-03: CRM — Legacy Layer (routes_crm.py)
| Item |
Status |
Evidence |
Notes |
GET/POST /leads |
✅ Done |
routes_crm.py — 631 lines |
Legacy leads table (separate from canonical) |
PUT/DELETE /leads/{id} |
✅ Done |
Same file |
Full CRUD |
POST /leads/seed-synthetic |
✅ Done |
Generates 100 synthetic leads with chat logs |
|
GET /chat-logs |
✅ Done |
Chat log endpoints functional |
|
GET /kanban/board |
✅ Done |
Legacy kanban board |
|
GET /leads/demographics |
✅ Done |
Demographics analytics |
|
| WebSocket CRM events |
🔶 Partial |
_broadcast_crm_event() helper exists (line 60) but WS server not confirmed |
|
Verdict: 🔶 Partial — Fully coded but legacy. Should be deprecated in favor of canonical layer. Two parallel CRM surfaces exist (routes_crm.py vs routes_crm_imports.py).
US-04: Oracle Canvas System
| Item |
Status |
Evidence |
Notes |
Oracle canvas API (routes_oracle.py) |
✅ Done |
107 lines — health, MCP tools, workflow preview, actions/writeback |
Mounted router with persona_service, mcp_registry, nemoclaw_runtime |
Oracle template catalog (routes_oracle_templates.py) |
✅ Done |
405 lines — chapters, subchapters, component templates, seed examples, synthetic jobs |
Full taxonomy CRUD |
| Oracle frontend page |
✅ Done |
app/oracle/page.tsx — Full canvas viewport |
|
| Oracle components (BranchBar, CanvasViewport, ComponentRegistry, PromptRail) |
✅ Done |
10+ React components in oracle/components/ |
|
| Oracle renderers (9 types) |
✅ Done |
ActivityStream, BarChart, ErrorNotice, GeoMap, KpiTile, LineChart, PipelineBoard, Table, TextCanvas, Timeline |
|
Oracle hooks (useOracleExecution, useOraclePage) |
✅ Done |
Execution and page state management |
|
| Oracle canvas TypeScript types |
✅ Done |
oracle/types/canvas.ts — Full type definitions |
|
| Oracle collaboration service |
🔶 Partial |
Test file exists (test_collaboration_service.py) but production code not confirmed |
|
| Oracle policy service |
🔶 Partial |
Test file exists (test_policy_service.py) but production code not confirmed |
|
Verdict: 🔶 Partial — Core canvas API and template system are done. Collaboration and policy services need confirmation of production readiness.
US-05: The Catalyst (Marketing Automation)
| Item |
Status |
Evidence |
Notes |
| Meta Marketing API integration |
✅ Done |
routes_catalyst.py — 513 lines |
Campaigns, creative sync, insights, budget/bid, lookalike audiences |
POST /auth/meta (OAuth token exchange) |
✅ Done |
Meta OAuth flow endpoint |
|
| Google Ads platform support |
🔶 Partial |
Platform mappers exist but Google is simulated (not live) |
|
| Campaign Command frontend |
✅ Done |
Catalyst.tsx — KPI cards, spend chart, campaign list |
|
| The Studio (ComfyUI workflow input) |
✅ Done |
Ground Truth picker, reference slots, image/video toggle |
|
| Intelligence & ROI tab |
✅ Done |
CPA trend chart, ad-set performance bars |
|
| War Room (Meta Graph settings) |
✅ Done |
API credential forms, business asset links, required scopes |
|
| Marketing tab |
✅ Done |
CatalystMarketingTab.tsx |
|
| Live Optimization Feed |
✅ Done |
Real-time event stream with 6 event types |
|
| Meta SDK integration |
✅ Done |
facebook_business SDK for live API calls |
|
Verdict: 🔶 Partial — Meta integration is fully functional. Google Ads is simulated. Production Meta credentials required for full operation.
US-06: Inventory Pipeline
| Item |
Status |
Evidence |
Notes |
| Import batches API |
✅ Done |
routes_inventory.py — 400 lines |
CRUD for inventory_import_batches |
| Properties CRUD |
✅ done |
Same file — create, list, get, patch, delete |
|
| Media assets management |
✅ Done |
Attach/list/delete media to properties |
|
| Inventory frontend |
✅ Done |
Inventory.tsx — Grid/list views, 3D viewer, blueprint studio |
|
| 3D model viewer (React Three Fiber) |
✅ Done |
GLTF loading, orbit controls, auto-fit |
|
| Blueprint Studio (zoom/pan) |
✅ Done |
Wheel zoom, drag pan, fit-to-height |
|
| Unit detail modal |
✅ Done |
Full property details with payment plans |
|
| Google Maps embed |
✅ Done |
Right-pane map integration |
|
Verdict: ✅ Done — Inventory is fully implemented with rich frontend.
US-07: Mobile Edge API
| Item |
Status |
Evidence |
Notes |
| Communication events CRUD |
✅ Done |
routes_mobile_edge.py — 659 lines |
All channels (PSTN, WhatsApp, email, FB, IG, VoIP) |
| Memory facts (edge_communication_memory_facts) |
✅ Done |
List endpoint at line 211 |
|
| Operator-assisted import |
✅ Done |
Creates events + triggers transcription jobs |
|
| Quick notes |
✅ Done |
Direct fact insertion |
|
| Calendar CRUD |
✅ Done |
Full calendar event management |
|
| Transcript retrieval |
✅ Done |
Joins edge_transcription_jobs → edge_transcript_segments |
|
| Insights (recommendations) |
✅ Done |
List + act/dismiss endpoints |
|
| Alerts (combined view) |
✅ Done |
Aggregates pending insights, upcoming events, pending transcriptions |
|
| Session heartbeat |
✅ Done |
Surface session tracking with screen sequence |
|
| iOS Oracle view |
✅ Done |
Pipeline, timeline, calendar canvases |
|
| iOS Sentinel view |
✅ Done |
Posture cards (pending insights, transcript queue, upcoming 24h) |
|
| iOS Edge apps (iPhone + iPad) |
✅ Done |
velocity-iphone/ — Alerts, Communications, LeadSummary, Notes, Transcriptions |
|
Verdict: ✅ Done — Mobile edge API is comprehensive. Both backend and iOS clients are functional.
US-08: Runtime LLM Service
| Item |
Status |
Evidence |
Notes |
| Provider listing |
✅ Done |
routes_runtime_llm.py — GET /providers |
|
| Chat completion |
✅ Done |
POST /chat with provider/model routing |
|
| Batch job submission |
✅ Done |
POST /batch with persisted job tracking |
|
| Job status/results |
✅ Done |
GET /jobs/{id} and GET /jobs/{id}/results |
|
runtime_llm_service.py |
✅ Done |
Service layer with provider abstraction |
|
Verdict: ✅ Done — Runtime LLM surface is complete.
US-09: Admin Control Plane
| Item |
Status |
Evidence |
Notes |
| System health overview |
✅ Done |
routes_admin_surface.py — DB latency, queue depths, session counts |
|
| Queue visibility |
✅ Done |
Transcription, synthetic, inventory, admin action queues |
|
| Install/surface overview |
✅ Done |
Surface type + app version breakdown |
|
| Admin actions (audit trail) |
✅ Done |
13 action types with idempotency keys |
|
| Audit log |
✅ Done |
oracle_audit_events query surface |
|
| Template admin (publish/archive) |
✅ Done |
Full template lifecycle management |
|
| Synthetic job admin |
✅ Done |
List + cancel synthetic generation jobs |
|
| Admin frontend page |
✅ Done |
app/admin/page.tsx |
|
Verdict: ✅ Done — Admin control plane is fully implemented.
US-10: Dream Weaver (ComfyUI Engine)
| Item |
Status |
Evidence |
Notes |
| ComfyUI workflows |
✅ Done |
8 workflow JSON files in comfy_engine/workflows/ |
|
| Test inputs (20+ images) |
✅ Done |
Diverse test set across room types |
|
| Dream Weaver spec |
✅ Done |
docs/DREAMWEAVER_TECHNICAL_SPEC.md |
|
routes_weaver.py |
❌ Missing |
File exists but is empty (0 bytes) |
|
Weaver gateway (dw_gateway_v2_min.py) |
🔶 Partial |
Root-level file exists — needs review for integration status |
|
Verdict: 🔶 Partial — ComfyUI engine has workflows and test data. Routes file is empty; gateway file needs integration review.
US-11: Sentinel (Biometric Intelligence)
| Item |
Status |
Evidence |
Notes |
| Sentinel overview frontend |
✅ Done |
Sentinel.tsx — Visitor counts, sentiment, dwell time, alerts |
|
| Journey River component |
✅ Done |
components/sentinel/JourneyRiver/ — Path, inspector panel |
|
| Live Session component |
✅ Done |
SentinelLiveSession.tsx |
|
| Perception player |
✅ Done |
PerceptionPlayer.tsx |
|
| iOS Sentinel view |
🔶 Partial |
Shows posture cards from mobile-edge backend; explicitly notes "No mock feed" — real Sentinel stream route needed |
|
| MediaPipe hooks |
🔶 Partial |
useMediapipeFaceLandmarker hook exists in frontend |
|
| QD scoring (nemoclaw) |
✅ Done |
nemoclaw_runtime.py + test file exist |
|
| Auto-mode matcher |
✅ Done |
auto_mode_matcher.py service |
|
| Sentinel backend routes |
❌ Missing |
No dedicated Sentinel API routes found in backend/api/ |
|
Verdict: 🔶 Partial — Frontend is rich and functional. iOS shows real data from mobile-edge. Backend biometric stream route is missing.
US-12: iOS Time & Light Engine
| Item |
Status |
Evidence |
Notes |
| AR Sun Overlay |
🔶 Partial |
ARSunOverlayView.swift exists in both iPad and iPhone apps |
|
| Sunseeker ViewModel |
✅ Done |
SunseekerViewModel.swift — Solar position calculations |
|
| Simulator Sun overlay |
✅ Done |
SimulatorSunOverlayView.swift fallback |
|
| Inventory AR features |
🔶 Partial |
Connected to Inventory module but needs real-time sun data pipeline |
|
Verdict: 🔶 Partial — Core components exist. Real-time sun data integration needed.
US-13: Infrastructure & Deployment
| Item |
Status |
Evidence |
Notes |
| AWS ingress (t4g.micro) |
🔶 Partial |
infrastructure/aws_scale/ directory exists |
|
| GPU workers (g6.12xlarge) |
🔶 Partial |
Referenced in docs but IaC not confirmed |
|
| Caddy reverse proxy |
🔶 Partial |
infrastructure/blackbox_local/ — needs review |
|
| Rathole tunnels |
🔶 Partial |
infrastructure/desineuron_ingress/ — needs review |
|
| Ops control plane |
🔶 Partial |
infrastructure/ops_control_plane/ — needs review |
|
| NVMe-first deployment |
🔶 Partial |
monitor_nvme.py exists at root |
|
| Deploy scripts |
🔶 Partial |
patch_nemoclaw_service_20260401.sh, .oracle_deploy_stage.tar |
|
Verdict: 🔶 Partial — Infrastructure artifacts exist but need consolidation and review.
US-14: Synthetic Data & Testing
| Item |
Status |
Evidence |
Notes |
| Synthetic CRM v1 dataset |
✅ Done |
db assets/synthetic_crm_v1/ — 360 snapshots, mapping manifest, relationships, transcripts |
|
| Test suite (10 files) |
✅ Done |
backend/tests/ — catalyst, crm, websocket, nemoclaw, oracle, vault tests |
|
| Oracle sub-tests |
✅ Done |
canvas_service, collaboration_service, persona_service, policy_service, prompt_orchestrator |
|
Verdict: ✅ Done — Testing and synthetic data are comprehensive.
Cross-Reference: Old Fact Table vs Current Codebase
| Claim in Old Fact Table (2026-04-12) |
Current Reality |
Delta |
backend/api/routes_crm.py = 0 bytes |
631 lines — full CRUD + seed + demographics + kanban |
✅ Now Done |
/api/leads = Missing |
Fully implemented in both legacy and canonical layers |
✅ Now Done |
/api/chat-logs = Missing |
Fully implemented with synthetic data generation |
✅ Now Done |
| Kanban board = Missing |
Implemented in both routes_crm.py (legacy) and routes_crm_imports.py (canonical) |
✅ Now Done |
backend/api/routes_oracle.py = 0 bytes |
107 lines — health, MCP, workflow preview, actions |
✅ Now Done |
| Oracle canvas = Missing |
Fully implemented with 10+ frontend components + template system |
✅ Now Done |
| CRM imports = Missing |
799-line canonical import pipeline with CSV parsing, mapping, proposals |
✅ Now Done |
| Inventory API = Partial |
400-line full CRUD with media assets |
✅ Now Done |
| Mobile edge = Partial |
659-line comprehensive API with events, calendar, transcripts, insights |
✅ Now Done |
What's Left (Sprint 2+ Priorities)
BLOCKERS (Must complete before production)
- Sentinel biometric stream route — No dedicated backend endpoint for live CCTV/face detection pipeline
- Dream Weaver routes —
routes_weaver.py is empty; ComfyUI gateway needs integration
- WebSocket server confirmation — WS layer exists in hooks but backend WS server not confirmed
HIGH PRIORITY
- Google Ads platform — Currently simulated; needs live Google Ads API integration
- Oracle collaboration service — Test exists, production code unconfirmed
- Oracle policy service — Test exists, production code unconfirmed
- Infrastructure consolidation — 4 infrastructure directories need review and unified deployment
MEDIUM PRIORITY
- Legacy CRM deprecation — Two parallel CRM surfaces (
routes_crm.py vs routes_crm_imports.py) create maintenance burden
- iOS AR sun data pipeline — Real-time solar position integration needed
- CI/CD pipeline — No build/deploy automation found
LOW PRIORITY (Nice to have)
- Multi-tenant isolation — Current code uses
user.role as tenant_id; needs proper tenant separation
- Rate limiting — No rate limiting middleware found
- API documentation — No OpenAPI/Swagger docs generated
Module Health Matrix
| Module |
Backend |
Frontend |
iOS |
Tests |
Overall |
| CRM (Canonical) |
✅ Done |
✅ Done |
🔶 Partial |
✅ Done |
✅ Done |
| CRM (Legacy) |
✅ Done |
N/A |
N/A |
✅ Done |
🔶 Partial |
| Oracle Canvas |
✅ Done |
✅ Done |
✅ Done |
✅ Done |
✅ Done |
| Catalyst |
✅ Done |
✅ Done |
N/A |
✅ Done |
🔶 Partial |
| Inventory |
✅ Done |
✅ Done |
N/A |
N/A |
✅ Done |
| Mobile Edge |
✅ Done |
N/A |
✅ Done |
✅ Done |
✅ Done |
| Runtime LLM |
✅ Done |
N/A |
N/A |
✅ Done |
✅ Done |
| Admin Control |
✅ Done |
✅ Done |
N/A |
✅ Done |
✅ Done |
| Dream Weaver |
❌ Missing |
N/A |
N/A |
N/A |
🔶 Partial |
| Sentinel |
❌ Missing |
✅ Done |
🔶 Partial |
✅ Done |
🔶 Partial |
| Time & Light |
N/A |
N/A |
🔶 Partial |
N/A |
🔶 Partial |
| Infrastructure |
🔶 Partial |
N/A |
N/A |
N/A |
🔶 Partial |
Code Quality Notes
[BLOCKER]
- Dual CRM surfaces: Both
routes_crm.py (legacy) and routes_crm_imports.py (canonical) handle leads. Plan deprecation of legacy layer.
[SUGGESTION]
- SQL injection risk in dynamic WHERE clauses:
routes_inventory.py and routes_mobile_edge.py build WHERE clauses with f-strings. Parameterized values are safe, but column names are interpolated — ensure no user input reaches these.
- Hardcoded tenant ID:
routes_oracle_templates.py uses os.getenv("ORACLE_DEFAULT_TENANT_ID", "tenant_velocity") — consider making this a request-scoped value.
[NIT]
- Import organization: Several files use inline
import json inside functions rather than at module level.
- Magic numbers: Threshold values (e.g.,
30 minutes in session heartbeat) should be constants.
Fact table generated by Chanakya (Review Mode) on 2026-04-21 after full codebase audit.