gb/TODO.md

269 lines
9.3 KiB
Markdown
Raw Normal View History

# TODO: Platform Module Audit & Implementation Status
**Last Audit Date:** 2025-01-20
**Auditor:** Automated Code Analysis
---
## 🔴 CRITICAL: Modules Using In-Memory Storage (Need Database)
### 1. Meet Module (`botserver/src/meet/`)
**Status:** IN-MEMORY ONLY - Data lost on restart
**Files with HashMap storage:**
- `service.rs` - `rooms: Arc<RwLock<HashMap<String, MeetingRoom>>>`
- `service.rs` - `connections: Arc<RwLock<HashMap<String, mpsc::Sender<MeetingMessage>>>>`
- `whiteboard.rs` - `whiteboards: Arc<RwLock<HashMap<Uuid, WhiteboardState>>>`
- `whiteboard.rs` - `broadcast_channels: Arc<RwLock<HashMap<Uuid, broadcast::Sender<WhiteboardMessage>>>>`
- `whiteboard_export.rs` - `export_history: Arc<RwLock<HashMap<Uuid, Vec<ExportResult>>>>`
- `recording.rs` - `active_sessions: Arc<RwLock<HashMap<Uuid, RecordingSession>>>`
- `recording.rs` - `transcription_jobs: Arc<RwLock<HashMap<Uuid, TranscriptionJob>>>`
**Priority:** MEDIUM (real-time data, but meeting history should persist)
**Tables Needed:**
- `meetings` - Meeting room definitions
- `meeting_participants` - Participant records
- `meeting_recordings` - Recording metadata
- `meeting_transcriptions` - Transcription records
- `whiteboards` - Whiteboard state persistence
- `whiteboard_elements` - Whiteboard elements
**Missing UI Routes:** Yes - No `meet/ui.rs` file
---
### 2. Insights Service (`botserver/src/analytics/insights.rs`)
**Status:** STUB - Returns empty data
**Stub Methods:**
```
L284-294: get_weekly_insights() returns empty daily_breakdown, top_apps
L311-313: get_trends() returns Ok(vec![])
```
**Priority:** LOW (analytics feature)
**Tables Needed:**
- `user_activity_tracking` - Usage data
- `daily_insights` - Aggregated daily stats
- `app_usage` - Application usage tracking
---
## 🟡 WARNING: Modules with Partial Stubs
### 3. Auto Task Module (`botserver/src/auto_task/`)
**Status:** PARTIAL STUBS
**Stub Locations:**
- `autotask_api.rs:2008` - `get_task_logs()` returns hardcoded data with TODO comment
- `autotask_api.rs:2027` - `apply_recommendation()` is stub with TODO comment
- `intent_compiler.rs:803` - `store_compiled_intent()` is stub
**Priority:** MEDIUM
---
### 4. Face API Service (`botserver/src/basic/keywords/face_api.rs`)
**Status:** MULTIPLE PROVIDERS NOT IMPLEMENTED
**NotImplemented Providers:**
- AWS Rekognition (L688-709)
- OpenCV (L719-740)
- InsightFace (L750-771)
**Priority:** LOW (optional integrations)
---
### 5. Canvas Collaboration (`botserver/src/canvas/mod.rs`)
**Status:** STUB
**Stub Location:**
- `L1163-1166: get_collaboration_info()` returns `Ok(Json(vec![]))`
**Priority:** LOW
---
### 6. Contacts Integration Services (`botserver/src/contacts/`)
**Status:** EMPTY SERVICE STRUCTS
**Empty Services:**
- `calendar_integration.rs:183` - `CalendarIntegrationService {}`
- `tasks_integration.rs:330` - `TasksIntegrationService {}`
**Priority:** LOW (integration features)
---
## 🟢 COMPLETED: Modules with Database Persistence
| Module | Storage | API Routes | UI Routes | Status |
|--------|---------|------------|-----------|--------|
| tickets | PostgreSQL | ✅ | ✅ | COMPLETE |
| people | PostgreSQL | ✅ | ✅ | COMPLETE |
| attendant | PostgreSQL | ✅ | ✅ | COMPLETE |
| CRM/contacts | PostgreSQL | ✅ | ✅ | COMPLETE |
| billing | PostgreSQL | ✅ | ✅ | COMPLETE |
| products | PostgreSQL | ✅ | ✅ | COMPLETE |
| canvas | PostgreSQL | ✅ | ✅ | COMPLETE |
| workspaces | PostgreSQL | ✅ | ✅ | COMPLETE |
| calendar | PostgreSQL | ✅ | ✅ | COMPLETE |
| goals/OKR | PostgreSQL | ✅ | ✅ | COMPLETE |
| video | PostgreSQL | ✅ | ❌ | NEEDS UI |
| research | PostgreSQL | ✅ | ❌ | NEEDS UI |
| social | PostgreSQL | ✅ | ❌ | NEEDS UI |
| tasks | PostgreSQL | ✅ | ❌ | NEEDS UI |
| email | PostgreSQL | ✅ | ❌ | NEEDS UI |
| learn | PostgreSQL | ✅ | ❌ | NEEDS UI |
| sources | PostgreSQL | ✅ | ❌ | NEEDS UI |
| designer | PostgreSQL | ✅ | ❌ | NEEDS UI |
| dashboards | PostgreSQL | ✅ | ❌ | NEEDS UI |
| legal | PostgreSQL | ✅ | ❌ | NEEDS UI |
| compliance | PostgreSQL | ✅ | ❌ | NEEDS UI |
---
## 🟢 COMPLETED: File Storage Modules
| Module | Storage | Status |
|--------|---------|--------|
| drive | S3/MinIO | ✅ COMPLETE |
| docs/paper | S3/MinIO | ✅ COMPLETE |
| sheet | S3/MinIO | ✅ COMPLETE |
| slides | S3/MinIO | ✅ COMPLETE |
| player | S3/MinIO (streaming) | ✅ COMPLETE |
---
## 📋 Missing UI Routes (Need `ui.rs` files)
The following modules have API routes but NO UI routes:
| Module | API Routes File | Needs UI |
|--------|-----------------|----------|
| video | `video/mod.rs` | ✅ |
| research | `research/mod.rs` | ✅ |
| social | `social/mod.rs` | ✅ |
| email | `email/mod.rs` | ✅ |
| learn | `learn/mod.rs` | ✅ |
| sources | `sources/mod.rs` | ✅ |
| designer | `designer/mod.rs` | ✅ |
| dashboards | `dashboards/mod.rs` | ✅ |
| legal | `legal/mod.rs` | ✅ |
| compliance | `compliance/mod.rs` | ✅ |
| meet | `meet/mod.rs` | ✅ |
**Existing UI Routes (for reference):**
- `attendant/ui.rs` - configure_attendant_ui_routes()
- `calendar/ui.rs` - configure_calendar_ui_routes()
- `canvas/ui.rs` - configure_canvas_ui_routes()
- `people/ui.rs` - configure_people_ui_routes()
- `tickets/ui.rs` - configure_tickets_ui_routes()
- `workspaces/ui.rs` - configure_workspaces_ui_routes()
- `analytics/goals_ui.rs` - configure_goals_ui_routes()
- `billing/billing_ui.rs` - configure_billing_routes()
- `contacts/crm_ui.rs` - configure_crm_routes()
- `products/` - configure_products_routes() (in mod.rs)
---
## 📋 Routes Registered in main.rs
**Confirmed Registered:**
-`botserver::dashboards::configure_dashboards_routes()`
-`botserver::legal::configure_legal_routes()`
-`botserver::compliance::configure_compliance_routes()`
-`botserver::tasks::configure_task_routes()`
-`botserver::analytics::configure_analytics_routes()`
-`botserver::docs::configure_docs_routes()`
-`botserver::paper::configure_paper_routes()`
-`botserver::sheet::configure_sheet_routes()`
-`botserver::slides::configure_slides_routes()`
-`botserver::video::configure_video_routes()`
-`botserver::research::configure_research_routes()`
-`botserver::sources::configure_sources_routes()`
-`botserver::designer::configure_designer_routes()`
-`botserver::social::configure_social_routes()`
-`botserver::canvas::configure_canvas_routes()`
-`botserver::player::configure_player_routes()`
-`botserver::workspaces::configure_workspaces_routes()`
-`botserver::tickets::configure_tickets_routes()`
-`botserver::people::configure_people_routes()`
-`botserver::attendant::configure_attendant_routes()`
-`botserver::billing::api::configure_billing_api_routes()`
-`botserver::products::api::configure_products_api_routes()`
-`botserver::contacts::crm::configure_crm_api_routes()`
-`crate::calendar::configure_calendar_routes()` (feature gated)
-`crate::attendance::configure_attendance_routes()` (feature gated)
**NOT Registered (meet module uses different pattern):**
- ⚠️ Meet module uses `crate::meet::configure()` - needs verification
---
## ⚠️ File Size Warnings (>1000 lines)
Per PROMPT.md, files should not exceed 1000 lines:
| File | Lines | Action Needed |
|------|-------|---------------|
| `dashboards/mod.rs` | ~1462 | Split into types.rs, handlers.rs |
| `compliance/mod.rs` | ~1416 | Split into types.rs, handlers.rs |
---
## 📝 Implementation Priority
### HIGH Priority
1. **Meet Module Database** - User meeting history is lost on restart
2. **Missing UI Routes** - Users can't access features from web UI
### MEDIUM Priority
3. **Auto Task Stubs** - Task logs and recommendations incomplete
4. **Insights Service** - Analytics dashboard shows no data
### LOW Priority
5. **Face API Providers** - Optional integrations
6. **Canvas Collaboration** - Real-time feature
7. **Contact Integration Services** - Optional integrations
---
## 🔧 Technical Debt
1. **Recursion Limit** - Added `#![recursion_limit = "512"]` to lib.rs due to many tables
2. **LegalService Stub** - Empty struct kept for backward compatibility with AppState
3. **Empty Service Structs** - CalendarIntegrationService, TasksIntegrationService
---
## ✅ Recently Completed (2025-01-20)
1. **Dashboards Module** - Full PostgreSQL persistence
- 6 tables: dashboards, dashboard_widgets, dashboard_data_sources, dashboard_filters, dashboard_widget_data_sources, conversational_queries
- Full CRUD API with spawn_blocking pattern
2. **Legal Module** - Full PostgreSQL persistence
- 7 tables: legal_documents, legal_document_versions, cookie_consents, consent_history, legal_acceptances, data_deletion_requests, data_export_requests
- GDPR-compliant consent tracking
3. **Compliance Module** - Full PostgreSQL persistence
- 8 tables: compliance_checks, compliance_issues, compliance_audit_log, compliance_evidence, compliance_risk_assessments, compliance_risks, compliance_training_records, compliance_access_reviews
- Multi-framework support (GDPR, SOC2, ISO27001, HIPAA, PCI-DSS)
---
## 📊 Summary
| Category | Count |
|----------|-------|
| Modules with Database | 21 |
| Modules with File Storage | 5 |
| Modules with In-Memory Only | 1 (meet) |
| Modules with Stubs | 4 |
| Modules Missing UI Routes | 11 |
| Total API Route Functions | 40+ |
| Total UI Route Functions | 10 |