Button Color Fix:
- Changed CSS selector to target data-testid="baseButton-primary"
- Primary buttons now yellow (#FFC407) with black text
- Hover state: darker yellow (#E6B006)
- Delete/Remove buttons stay red for safety
- Better font-weight (600) for buttons
Critical Issue Documented:
- Created CRITICAL_ISSUE.md documenting data leakage
- ALL users share ONE LlamaCloud pipeline
- Chat queries return documents from ALL notebooks (not just user's)
- SEVERE privacy/security issue
- Must be fixed before production use
Issue Details:
- utils.py uses single PIPELINE_ID from .env
- All documents added to same index
- query_index() searches entire shared index
- No user/notebook isolation in queries
Recommended Fix:
- Per-notebook pipelines (best for NotebookLM model)
- Store pipeline_id in notebooks table
- Create pipeline when notebook created
- Query only that notebook's pipeline
- Complete data isolation
Background Queue Status:
- Document processing IS using background queue ✓
- Some tasks failing with "Event loop is closed"
- Need to investigate async/threading issues
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Permission System Upgrade:
- Added SHARE permission level to database enum
- Three permission tiers now:
* READ: View and chat only
* WRITE: View, chat, add documents, generate podcasts
* SHARE (Write+Share): All of WRITE + can share with others
- Only owners can grant SHARE permission
- Users with SHARE can add more collaborators
Voice Selection for Podcasts:
- Added 8 popular ElevenLabs voices to choose from
- Speaker 1 (Analytical): Brian, Adam, Charlie, Daniel
- Speaker 2 (Explanatory): Sarah, Bella, Charlotte, Emily
- Voice IDs stored in task parameters
- Passed through to audio generation
- Default: Brian + Sarah (original voices)
Voice Options:
- Brian (Default Male) - nPczCjzI2devNBz1zQrb
- Sarah (Default Female) - Xb7hH8MSUJpSbSDYk0k2
- Adam (Deep Male) - pNInz6obpgDQGcFmaJgB
- Bella (Friendly Female) - EXAVITQu4vr4xnSDxMaL
- Charlie (Casual Male) - IKne3meq5aSn9XLyUdCD
- Charlotte (Professional Female) - XB0fDUnXU5powFXDhCwa
- Daniel (British Male) - onwK4e9ZLuTAKqWW03F9
- Emily (Warm Female) - LcfcDJNUP1GQjkzn1xUU
UI Updates:
- Voice selection dropdowns in podcast generation
- Helpful descriptions for each speaker role
- Permission level shown as "Write + Share" in UI
- Help text explains each permission tier
- Share button visible for users with SHARE permission
Technical:
- Updated audio.py to accept voice parameters
- Updated background_tasks.py to pass voices
- Database enum extended
- Permission checks updated throughout
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Typography:
- Applied Montserrat font globally across all pages
- Reduced main headers from 44px to 20px
- Subheaders scaled to 18px and 16px
- Body text standardized at 16px
- Source citations reduced to 14px for better readability
- Captions and small text at 13px
Style Improvements:
- Consistent font weights (300-700 range)
- Better line-height for readability (1.3-1.5)
- Reduced spacing for cleaner look
- Styled chat messages for consistency
- Smaller button text (14px)
- Refined expander headers
- Professional color scheme maintained
Files Modified:
- Created styles.py with centralized CSS
- Applied to App.py
- Applied to all 4 notebook pages
- Custom CSS injected via st.markdown
User Experience:
- Cleaner, more professional appearance
- Better visual hierarchy
- Easier to scan and read
- Sources less overwhelming
- Consistent across all pages
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major Changes:
- Implemented notebook-first architecture (multi-document collections)
- Added user authentication and multi-tenancy
- Created comprehensive database schema (7 tables)
- Built complete notebook management system
- Implemented notebook-level chat across multiple documents
- Added podcast generation from notebooks
- Implemented notebook sharing with permissions
- Fixed MCP server crashes by bypassing for document processing
- Added all enterprise features requested
New Features:
- User login/signup with bcrypt password hashing
- Create/edit/delete notebooks
- Upload multiple PDFs to notebooks
- Add documents to existing notebooks
- Chat across all documents in a notebook
- Generate podcasts from entire notebooks
- Share notebooks with other users
- View shared notebooks
- Persistent chat history per notebook
- Document summaries, Q&A, and highlights
Technical Improvements:
- PostgreSQL database with SQLAlchemy ORM
- Connection pooling and proper cleanup
- Bypassed buggy MCP server for document processing
- Direct LlamaCloud API calls for reliability
- Proper CASCADE deletes
- Session management
- Error handling and logging
Documentation:
- ENTERPRISE_SETUP.md - Setup guide
- IMPLEMENTATION_SUMMARY.md - Technical details
- SIMPLIFIED_PLAN.md - Architecture overview
- CURRENT_STATUS.md - Status and known issues
- FINAL_README.md - User guide
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>