- Create unified Admin.css with V21 design tokens
- Update Dashboard with stat cards and V21 color scheme
- Update Analytics with V21 chart colors and metrics
- Update UserManagement with V21 table and search styles
- Update LogViewer with V21 filter bar and log level tags
- Update SystemMonitor with V21 progress and resource cards
- Update AdminComingSoon with V21 result styling
- Replace all inline styles with V21 CSS classes
- Apply Indigo/Green/Amber/Purple V21 color palette
- Add V21 styles to WorkspaceDetail page (page-head, cards, buttons)
- Create ProjectTasks.css and update ProjectTasks.tsx with V21 UI
- Create business.css with shared V21 styles (buttons, cards, tables, tags)
- Update InviteMemberModal with V21 modal styles
- Update MemberList with V21 table and tag styles
- Update PermissionMatrix with V21 card and table styles
- Update QuotaDisplay with V21 card and progress styles
- Update App.tsx and App.css with V21 design system
- Add voice extraction and deduplication functionality
- Add dedup.py for video deduplication
- Add voice_extraction.py task for worker
- Resolve CI/CD and deploy workflow conflicts with develop version
- Keep new voice dedup features from feature branch
- Resolve CI/CD and deploy workflow conflicts with develop version
- Resolve database and dependencies conflicts with develop version
- Keep new edit plan generator and API functionality from feature branch
BREAKING CHANGES:
- Removed Workspace, WorkspaceMember, WorkspaceInvitation entities
- Project now has owner_user_id instead of workspace_id
- Added shared_users list to Project for collaboration
- Subscription/quota moved from Workspace to User level
Changes:
- packages/domain/entities.py: Removed Workspace entities, updated Project
- packages/adapters/sqlalchemy_impl/models.py: Updated models
- packages/application/: Removed workspace use cases, updated other use cases
- packages/ports/: Removed workspace repository interfaces
- apps/api/: Updated routes, schemas, dependencies, router
- alembic/versions/007_remove_workspace_concept.py: Database migration
New APIs:
- POST /projects/{id}/share: Share project with user
- DELETE /projects/{id}/share/{user_id}: Unshare project
- P1-1: CORS configuration security - use DEBUG mode to differentiate
production vs development CORS settings
- P1-2: Implement token refresh logic in RefreshTokenUseCase
- Add get_session_by_refresh_token to SessionStore
- Verify session validity and expiry
- Generate new access token on refresh
- P1-3: Fix database connection leak in worker ingest task
- Add proper try-except-finally block
- Ensure db.close() is always called
- P1-4: Implement real media metadata extraction
- Use ffprobe for video metadata
- Use Pillow for image metadata
- Return empty dict on failure (no mock data)