gb/TODO.md

9.3 KiB

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

  1. Auto Task Stubs - Task logs and recommendations incomplete
  2. Insights Service - Analytics dashboard shows no data

LOW Priority

  1. Face API Providers - Optional integrations
  2. Canvas Collaboration - Real-time feature
  3. 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