Skip to content

Latest commit

 

History

History
530 lines (448 loc) · 22.3 KB

File metadata and controls

530 lines (448 loc) · 22.3 KB

Changelog

All notable changes to TellMeMo will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added (October 2025)

🚀 Proactive Meeting Assistance - Real-Time Intelligence System (PR #XX - 2025-10-31)

Revolutionary Feature: Live meeting intelligence that differentiates TellMeMo from competitors.

Core Capabilities:

1. Real-Time Question Detection & Four-Tier Answer Discovery

  • GPT-5-mini streaming analyzes live transcripts as they're spoken
  • Detects explicit and implicit questions instantly (<500ms latency)
  • Tier 1: Knowledge Base Search (RAG)
    • Searches organization's document repository
    • Returns top 3-5 relevant documents with progressive streaming
    • 2-second timeout, displays with "📚 From Documents" label
  • Tier 2: Meeting Context Search
    • Searches earlier in current meeting transcript
    • Identifies if question was already answered with timestamp
    • 1.5-second timeout, displays with "💬 Earlier in Meeting" label
  • Tier 3: Live Conversation Monitoring
    • Monitors subsequent conversation for 15 seconds
    • Semantically matches answers to questions
    • Displays with "👂 Answered Live" label when detected
  • Tier 4: GPT-Generated Answer (Fallback)
    • Only triggers when Tiers 1-3 fail
    • GPT-5-mini generates answer with confidence score (>70% threshold)
    • Prominent disclaimer: "AI-generated, not from documents or meeting"
    • Displays with "🤖 AI Answer" label and warning badge

2. Automatic Action Item Tracking

  • Real-time detection of commitments and task assignments
  • Extracts owner, deadline, and description automatically
  • Accumulates details as conversation progresses (action_update events)
  • Smart alerting at natural meeting breakpoints (not constant noise)
  • Completeness scoring: 0.0-1.0 based on description, owner, and deadline presence
  • Cross-reference resolution for pronouns and implicit subjects

3. Real-Time Transcription Display

  • AssemblyAI real-time transcription with speaker diarization
  • Live transcript feed with partial and final states
  • Auto-scroll with manual override (pause when user scrolls up)
  • Speaker color-coding and name attribution
  • Clickable timestamps for playback navigation
  • Virtualized list rendering for performance (last 100 segments in memory)

Technical Architecture:

Frontend (Flutter):

  • Audio capture: PCM 16kHz, 16-bit, mono (100-200ms chunks)
  • WebSocket streaming (binary audio frames + JSON events)
  • Recording panel with integrated AI Assistant toggle
  • Live transcription widget with auto-scroll
  • Question and action cards with progressive updates
  • Clear source attribution (4 distinct visual styles for each tier)

Backend Services:

  • websocket_live_insights.py - WebSocket server and connection management
  • assemblyai_service.py - Real-time speech-to-text integration
  • streaming_orchestrator.py - Main intelligence engine
  • stream_router.py - NDJSON parsing and event routing
  • question_handler.py - Manages four-tier answer discovery
  • action_handler.py - Tracks and accumulates action items
  • answer_handler.py - Matches answers to questions
  • segment_detector.py - Identifies meeting breakpoints
  • rag_search.py - Tier 1 knowledge base search
  • meeting_context_search.py - Tier 2 meeting history search
  • gpt_answer_generator.py - Tier 4 fallback generation

Data Storage:

  • Redis hot state: transcript buffer (60s rolling window), active questions/actions
  • PostgreSQL persistent storage: live_meeting_insights table
  • Session lifecycle: recording_id = session_id (1:1 mapping)
  • Insights persisted at recording end for historical access

Features:

  • Toggle AI Assistant ON/OFF mid-meeting without reconnection
  • Clear source attribution for all answers (100% transparency)
  • Progressive result streaming (show results as they arrive)
  • Non-blocking UI with dismissible alerts
  • Post-meeting summary includes all captured insights
  • Cost optimization: <$1.05 per meeting hour

Success Metrics:

  • Question answer rate: 90%+ across all four tiers
  • Answer source clarity: 100% attribution (every answer labeled)
  • Action item detection accuracy: 90%+
  • Latency to first result: <500ms
  • GPT-generated answers: <15% of total (rare fallback only)

Cost Efficiency:

  • AssemblyAI: $0.90/hour (real-time transcription + speaker diarization)
  • GPT-5-mini: ~$0.15/hour (streaming intelligence)
  • Total: ~$1.05/hour meeting cost (shared connection across all participants)

Database Schema:

  • New table: live_meeting_insights (id, session_id, recording_id, insight_type, content, metadata, created_at, organization_id, project_id)
  • Alembic migrations: f11cd7beb6f5_add_live_meeting_insights_table.py
  • Database indexes for optimized queries

Testing:

  • 1,105+ lines of comprehensive integration tests
  • Unit tests for all intelligence handlers
  • WebSocket connection tests
  • End-to-end streaming tests
  • GPT-5-mini streaming performance validation

Documentation:

  • PROACTIVE_MEETING_ASSISTANCE_HLD.md - Complete technical specification (1,211 lines)
  • System architecture diagrams
  • GPT-5-mini prompt specifications
  • Four-tier answer discovery workflow
  • AssemblyAI integration guide

Why This Differentiates TellMeMo:

  • Instant Knowledge Access: No need to search later - answers appear during the meeting
  • Zero Overhead: No extra work required - system monitors automatically
  • Complete Transparency: Every answer clearly shows its source (documents, meeting, live, or AI)
  • Smart Fallback: AI-generated answers only when necessary, always with disclaimer
  • Action Tracking: Never miss commitments - automatic extraction and completeness tracking
  • Cost Effective: <$1.05/hour for enterprise-grade meeting intelligence

UI/UX Improvements (PR #76 - 2025-10-18)

  • Time Expectation Messages: Added "This usually takes 1-2 minutes" messaging during summary generation
    • Clear time expectations in summary generation modal dialog
    • Compact "⏱ Takes 1-2 min" message in bottom overlay progress indicator
    • Smart conditional rendering only for summary generation jobs
    • Theme-aware, non-intrusive design
  • Mobile UX Enhancements: Sticky bottom action bar for mobile edit/create modes
  • Enhanced Item Detail Panels: Improved mobile support across task, risk, blocker, and lesson panels

Email Digest System (PR #54 - 2025-10-12)

  • SendGrid integration for automated email delivery
  • User email preferences management (digest frequency, content types)
  • Daily, weekly, and monthly digest generation with APScheduler
  • Onboarding welcome emails for new users
  • Inactive user reminder emails (7-day inactivity detection)
  • Beautiful HTML email templates with responsive design
  • JWT-based unsubscribe functionality
  • Admin endpoints for testing and manual triggers
  • Rate limiting for SendGrid free tier (100 emails/day)
  • Empty digest prevention (no spam)
  • Email preferences UI in Flutter app
  • Preview digest functionality before sending
  • Send test email capability

Intelligent LLM Provider Fallback (PR #69 - 2025-10-13)

  • Automatic OpenAI fallback when Claude is overloaded (529 errors)
  • Intelligent model translation (Claude Haiku → GPT-4o-mini, Sonnet → GPT-4o)
  • Provider cascade architecture with configurable retry strategies
  • Comprehensive fallback metadata tracking for observability
  • Langfuse integration for monitoring fallback events
  • Zero code changes required - transparent failover
  • Configurable per-organization or globally
  • Maintains equivalent model quality across providers
  • Circuit Breaker Pattern - Production resilience with purgatory library
    • Automatically opens circuit after configurable threshold (default: 5 failures)
    • Prevents cascading failures by skipping primary provider when circuit is open
    • Auto-recovery with configurable timeout (default: 5 minutes)
    • Transparent integration with existing fallback system
    • Environment-based configuration (ENABLE_CIRCUIT_BREAKER, threshold, timeout)
  • Detailed documentation in backend/FALLBACK_IMPLEMENTATION.md
  • Full test coverage with 16 integration tests

Meeting Upload Quality Improvements (PR #73 - 2025-10-16)

  • Semantic deduplication service with embedding-based similarity detection
    • Detects semantic duplicates with 85%+ similarity threshold
    • Expected to reduce semantic duplicates by 70%
  • Date context enhancement to prevent incorrect year parsing
  • Automatic closure detection for tasks/risks/blockers
    • Detects completion mentions in meeting transcripts
    • Auto-closes items when mentioned as "completed", "done", "resolved"
  • Enhanced assignee extraction with multiple pattern matching
    • Aggressive assignee extraction with participant name extraction
    • Implicit assignment detection ("I'll do X" → speaker name)
    • Expected to reduce unassignment rate from 30% to <10%
  • Database migration for title embeddings
  • Backfill script for existing data

Item Updates Tracking System (PR #71 - 2025-10-15)

  • Automatic update tracking for all item types (tasks, risks, lessons, summaries)
  • Real-time Flutter UI integration with live updates
  • Enhanced Updates tab with filter and improved send button
  • Comprehensive test coverage for item updates functionality
  • Task menu improvements with Edit and Delete options
  • Consolidated delete confirmation dialogs

UI/UX Enhancements

  • Right Panel UI Pattern (PR #70 - 2025-10-14)
    • Migrated all item dialogs to consistent right panel pattern
    • Modernized form field styling across all item detail panels
    • AI assistant integration in lesson learned panel
    • Reduced notification noise for create/update operations
    • Standardized item detail panel styling and summary status badges
  • Text Selection and Truncation (PR #72 - 2025-10-15)
    • Added text selection and copying across all detail panels
    • Read more/less text truncation for better readability
    • Comment count badges on Updates tab
    • Fixed project name truncation issues
  • Mobile UX Improvements (PR #74 - 2025-10-17)
    • Smart title truncation at 70 characters with word-boundary detection
    • Consolidated action buttons into 3-dot menu for cleaner mobile UI
    • Tooltip displays full title on long-press
    • No changes to desktop experience

Infrastructure & Development

  • Redis Queue (RQ) Migration (PR #40 - 2025-10-09)
    • Replaced custom upload_job_service with production-ready RQ
    • Multi-priority queues (high, default, low)
    • Real-time job updates via Redis pub/sub
    • Horizontal scaling support
    • RQ Dashboard for job queue visualization
  • Automated Testing Workflows (PR #35 - 2025-10-07)
    • GitHub Actions workflows for backend and frontend tests
    • Smart path-based triggering
    • Coverage tracking with Codecov integration
    • Tests block PR merge on failure
  • Audio Recording Improvements (PR #51 - 2025-10-10)
    • AAC codec support for iOS web browsers
    • Fixes MediaStreamTrack errors on Safari, Chrome, Firefox iOS

Changed

UI/UX (PR #76 - 2025-10-18)

  • Tasks & Lessons Screens: Fixed tab highlighting and hid mobile navigation for cleaner mobile UX
  • Risks Screen: Removed redundant Critical filter chip from navigation
  • Summary Generation Dialog: Refactored for better error handling and user feedback
  • Navigation: Improved filter displays and interactions across multiple screens

Backend (PR #76 - 2025-10-18)

  • Summary Service: Refactored summary generation service with enhanced error handling
  • WebSocket Jobs: Improved job status updates and progress tracking
  • Queue Configuration: Enhanced RQ queue configuration for better reliability

Architecture

  • Migrated from custom job service to Redis Queue (RQ) for background task processing (PR #40)
  • Migrated from SnackBar to centralized NotificationService across entire app (PR #53)
  • Refactored job cancellation with decorator pattern (81% code reduction) (PR #53)
  • Database schema: Converted ItemUpdateType from PostgreSQL enum to VARCHAR for flexibility (PR #71)

Performance

  • Fixed async event loop blocking in hybrid search diversity optimization (PR #72)
  • Optimized upload dialog and recording lifecycle (PR #38)
  • Reduced redundant API calls during recording (PR #38)

UI/UX

  • Major refactor of simplified_project_details_screen.dart (~2000 lines reduction) (PR #53)
  • Enhanced dashboard with improved layout and responsiveness (PR #36)
  • Better hierarchy screen organization and navigation (PR #36)
  • Improved mobile UI across integrations, organizations, and documentation views (PR #38, #39)

Security

Vulnerability Fixes (PR #33 - 2025-10-05)

  • Updated python-jose from 3.3.0 to 3.5.0 to patch known vulnerabilities
  • Addressed ReDoS (Regular Expression Denial of Service) attack vectors
  • Added input validation to prevent DoS attacks
    • Slug generation: 200 character limit
    • Text normalization: 10KB limit
  • Replaced vulnerable regex patterns with safe alternatives
  • Fixed security issues in organizations, text_similarity, chunking_service

General Security

  • JWT-based authentication with automatic token generation
  • Built-in user management
  • Secure API key handling
  • Environment variable configuration
  • JWT-based email unsubscribe tokens (90-day expiration)

Fixed

Frontend (PR #76 - 2025-10-18)

  • Test Fixes: Fixed failing tests in lessons_learned_screen_v2_test.dart and query_provider_test.dart
    • Fixed category tabs test to account for mobile layout behavior (11 tests passing)
    • Fixed createNewSession test to match backend session ID assignment behavior (27 tests passing)
  • Ask AI Panel: Eliminated duplicate conversation history entries
  • Query Provider: Refactored to reduce code complexity (113 lines removed, 38 added)
  • Mobile Layout: Fixed tab highlighting and navigation issues on mobile viewports

Backend

  • Language validation and improved error handling in transcription API (PR #39)
  • Backend test failures in error handling (PR #38)
  • Project matcher logic with better error handling (PR #36)
  • Fixed auth middleware organization switching logic (cache invalidation) (PR #40)
  • Audio transcription temp file paths for container accessibility (PR #48, #49)
  • Logstash HTTP port exposure for Python application logging (PR #37)

Frontend

  • Task status updates now reflect immediately in UI without page refresh (PR #53)
  • Upload dialog stuck progress and page refresh issues (PR #38)
  • Mobile UI overflow in integrations cards (PR #38)
  • Layout overflow in OrganizationSettingsDialog (PR #39)
  • Recording functionality with better state management (PR #36)
  • Permission check on web browsers for browser-native handling (PR #52)
  • Fixed 7 failing tests after NotificationService migration (PR #53)
  • Dialog rounded corners visual issues (PR #71)

Infrastructure

  • Docker Compose environment variable configuration (PR #50, #74)
  • YAML syntax errors in workflow files (PR #42-46)
  • Nginx MIME types for Flutter WebAssembly deployment (PR #38)

Documentation

  • Created comprehensive email digest feature plan (1,462 lines) (PR #54)
  • Updated HLD.md with email digest system, dual auth, and missing components
  • Added INTELLIGENT_DEDUPLICATION_IMPLEMENTATION.md (380 lines) (PR #73)
  • Added UPLOAD_QUALITY_EVALUATION_2025-10-13.md with progress tracking (PR #70, #73)
  • Added MIGRATION_COMPLETED.md documenting UI migration (PR #70)
  • Added Kafka implementation guide (docs/kafka.md) (PR #40)
  • Added Redis implementation guide (docs/redis.md) (PR #40)
  • Added Replicate transcription performance analysis (PR #40)
  • Updated USER_JOURNEY.md with email preferences section (PR #54)
  • Updated Feature Branch Model workflow documentation (PR #30, #31, #32)
  • Backend and frontend testing strategy documentation (PR #35)

Testing

  • Added 30 comprehensive integration tests for email digest system (PR #54)
  • Added 12 integration tests for LLM fallback (PR #69)
  • Added 250+ features tested for item updates functionality (PR #71)
  • Added 14 unit tests for RQ utils with 100% coverage (PR #53)
  • Added 457 lines of transcription endpoint integration tests (PR #39)
  • Added 483 lines of frontend widget tests (PR #39)
  • Added comprehensive RQ integration tests (PR #40)
  • Added no_snackbar_test.dart to prevent SnackBar usage (PR #53)
  • Overall Coverage: Backend 97%, Frontend 99%

[1.0.0-beta] - 2025-10-03

Added

Core Features

  • Initial release of TellMeMo (formerly PM Master V2)
  • AI-powered meeting intelligence platform
  • RAG (Retrieval Augmented Generation) for meeting analysis
  • Flutter web frontend
  • FastAPI backend with built-in authentication
  • PostgreSQL for metadata storage
  • Qdrant vector database for semantic search
  • Claude 3.5 Haiku integration for LLM reasoning
  • Google EmbeddingGemma-300m for local embeddings
  • Docker Compose deployment configuration

Business Features

  • User authentication system (email/password)
  • Project hierarchy (Portfolio → Programs → Projects)
  • Meeting transcript upload and processing
  • Automatic action item extraction
  • Risk detection from meeting content
  • Context-aware chat interface
  • Summary generation (Executive, Technical, Stakeholder, General)
  • Semantic search across all content
  • Multi-turn conversation with context

Documentation

  • Documentation website (tellmemo.io)
  • Comprehensive user documentation
  • API documentation
  • Installation guide
  • Docker-first deployment documentation
  • User guide with business-focused workflows
  • Configuration reference with all environment variables
  • Troubleshooting guide for common issues
  • Updated README.md and CONTRIBUTING.md

Changed

  • Migrated from multi-service architecture to simplified 4-service core
  • Moved from Supabase to built-in backend authentication
  • Changed repository name from pm_master_v2 to tellmemo-app
  • Updated organization from the-harpia-io to Tell-Me-Mo
  • Simplified deployment to Docker Compose only
  • Frontend runs on port 8100 (was 80)
  • Backend runs on port 8000

Removed

  • Supabase authentication dependency (now built-in)
  • Langfuse from core architecture (optional)
  • ELK Stack from core architecture (optional)
  • Redis from core architecture (optional)
  • MinIO from core architecture (optional)
  • Complex multi-option deployment guides

Fixed

  • Consolidated documentation to remove duplicates
  • Updated all repository URLs
  • Corrected Docker Compose commands (docker compose vs docker-compose)
  • Fixed port references throughout documentation

Project Status

Current Version: 1.0.0-beta

Status: Beta - Feature complete, undergoing testing and refinement

Supported Platforms

  • Web (primary)
  • macOS (via Flutter)
  • iOS (via Flutter)
  • Android (via Flutter)
  • Windows (via Flutter)
  • Linux (via Flutter)

Browser Support

  • Chrome/Edge (recommended)
  • Firefox
  • Safari

Minimum Requirements

  • Docker ≥20.10
  • Docker Compose ≥2.0
  • 8GB RAM (16GB recommended)
  • 20GB disk space
  • 4+ CPU cores (recommended)

API Keys Required

  • Anthropic API Key (Claude 3.5) - Primary LLM provider
  • OpenAI API Key (Optional) - Fallback provider for high availability
  • Hugging Face Token (for embedding models)
  • SendGrid API Key (Optional) - For email digest system

Upcoming Features

See GitHub Issues for planned features and enhancements.

Planned for Future Releases

  • Real-time meeting transcription
  • Integration with Zoom, Google Meet, Microsoft Teams
  • Calendar integration
  • Slack notifications
  • Mobile app improvements
  • Performance optimizations
  • Multi-language support
  • Advanced analytics dashboard
  • Team collaboration features
  • Email digest enhancements:
    • Organization-level email filtering
    • Per-project opt-in/opt-out for digest inclusion
    • Email analytics tracking (open rates, clicks)
    • SendGrid webhook for bounce/spam handling
    • A/B testing for email content

Migration Guide

From Earlier Versions

If you're upgrading from an earlier version or different setup:

  1. Backup your data:

    docker compose exec postgres pg_dump -U pm_master pm_master_db > backup.sql
  2. Update repository:

    git pull origin main
  3. Update environment variables:

    • Copy new variables from .env.example
    • Ensure ANTHROPIC_API_KEY and HF_TOKEN are set
    • Add OPENAI_API_KEY for fallback support (optional)
    • Add SENDGRID_API_KEY for email digests (optional)
  4. Run database migrations:

    cd backend
    alembic upgrade head
  5. Restart services:

    docker compose down
    docker compose pull
    docker compose up -d
  6. Start RQ workers (if using background jobs):

    python backend/start_rq_worker.py
  7. Verify deployment:

    • Check all containers are running: docker compose ps
    • Access UI at http://localhost:8100
    • Test backend API at http://localhost:8000/docs

Notable Pull Requests

This changelog is based on the following merged pull requests:

  • PR #76: UI improvements and test fixes (in progress)
  • PR #75: Comprehensive documentation improvements for HLD, CHANGELOG, and README
  • PR #74: Mobile UX improvements for item detail panels
  • PR #73: Quality improvements for meeting upload processing
  • PR #72: Enhanced right panel UX with text selection and truncation
  • PR #71: Item updates tracking system with UI enhancements
  • PR #70: Migrate item dialogs to right panel UI
  • PR #69: Intelligent OpenAI fallback for Claude API overload
  • PR #54: Email Digest System
  • PR #53: Job cancellation improvements and NotificationService migration
  • PR #51: AAC codec for iOS web browsers
  • PR #40: Redis Queue (RQ) migration
  • PR #39: UI/UX improvements and ELK logging
  • PR #38: UI/UX improvements and bug fixes
  • PR #36: Recording functionality enhancements
  • PR #35: Automated testing workflows
  • PR #33: Security vulnerability fixes
  • PR #30-32: Feature Branch Model documentation
  • PR #1-3, #23-29: Initial development and merge fixes

For complete PR history, see: https://github.com/Tell-Me-Mo/tellmemo-app/pulls?q=is%3Apr+is%3Amerged

Support


For older changes and detailed commit history, see Git History.