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.
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 managementassemblyai_service.py- Real-time speech-to-text integrationstreaming_orchestrator.py- Main intelligence enginestream_router.py- NDJSON parsing and event routingquestion_handler.py- Manages four-tier answer discoveryaction_handler.py- Tracks and accumulates action itemsanswer_handler.py- Matches answers to questionssegment_detector.py- Identifies meeting breakpointsrag_search.py- Tier 1 knowledge base searchmeeting_context_search.py- Tier 2 meeting history searchgpt_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_insightstable - 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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)
- 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)
- 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)
- 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
- 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)
- 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
- 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)
- 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)
- 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)
- 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)
- 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%
- 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
- 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 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
- Migrated from multi-service architecture to simplified 4-service core
- Moved from Supabase to built-in backend authentication
- Changed repository name from
pm_master_v2totellmemo-app - Updated organization from
the-harpia-iotoTell-Me-Mo - Simplified deployment to Docker Compose only
- Frontend runs on port 8100 (was 80)
- Backend runs on port 8000
- 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
- Consolidated documentation to remove duplicates
- Updated all repository URLs
- Corrected Docker Compose commands (docker compose vs docker-compose)
- Fixed port references throughout documentation
Current Version: 1.0.0-beta
Status: Beta - Feature complete, undergoing testing and refinement
- Web (primary)
- macOS (via Flutter)
- iOS (via Flutter)
- Android (via Flutter)
- Windows (via Flutter)
- Linux (via Flutter)
- Chrome/Edge (recommended)
- Firefox
- Safari
- Docker ≥20.10
- Docker Compose ≥2.0
- 8GB RAM (16GB recommended)
- 20GB disk space
- 4+ CPU cores (recommended)
- 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
See GitHub Issues for planned features and enhancements.
- 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
If you're upgrading from an earlier version or different setup:
-
Backup your data:
docker compose exec postgres pg_dump -U pm_master pm_master_db > backup.sql
-
Update repository:
git pull origin main
-
Update environment variables:
- Copy new variables from
.env.example - Ensure
ANTHROPIC_API_KEYandHF_TOKENare set - Add
OPENAI_API_KEYfor fallback support (optional) - Add
SENDGRID_API_KEYfor email digests (optional)
- Copy new variables from
-
Run database migrations:
cd backend alembic upgrade head -
Restart services:
docker compose down docker compose pull docker compose up -d
-
Start RQ workers (if using background jobs):
python backend/start_rq_worker.py
-
Verify deployment:
- Check all containers are running:
docker compose ps - Access UI at
http://localhost:8100 - Test backend API at
http://localhost:8000/docs
- Check all containers are running:
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
- Documentation: tellmemo.io/documentation
- Issues: GitHub Issues
- Discussions: GitHub Discussions
For older changes and detailed commit history, see Git History.