- Each environment now runs its own PB + LiveKit + Voice Token + frontend
- UAT LiveKit: 7890, Voice Token: 7893 (separate from Dev 7880/7883)
- Remove docker-compose.backend.yml, merge into dev compose
- Delete duplicate bulletin migration files that caused PB crash on startup
- Update CLAUDE.md, nginx configs, and .env files accordingly
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Integrate electron-store for persistent PocketBase auth backup
across localStorage clears and app reinstalls
- Switch build target from portable to nsis to generate latest.yml
for electron-updater generic provider
- Add user confirmation dialogs before download and before install
- Add post-build script to copy .exe/.yml/.nupkg to NAS share and
local electron-update/ directory for nginx volume mount
- Mount ./electron-update into frontend nginx containers via
docker-compose for automatic update file serving
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- LiveKit WebRTC SFU container in docker-compose
- Voice token microservice (Node.js + Express)
- VoiceRoom page with member grid and controls
- useVoiceRoom composable for LiveKit connection
- Voice entry button in TeamSessionPanel
- Nginx proxy for voice-token service API
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Group polls with option/rollcall modes, edit by creator, auto-settle
- Multimedia memories with upload, preview, inline video playback
- In-app notifications for poll/team/group events
- Points system and group stats dashboard
- Group detail tabs with icons (activity/polls/memories/stats)
- Fix: nginx file upload size, static cache blocking API, timezone, auto-cancel
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Fix other members' status not visible due to users collection viewRule restriction
- Fix empty status treated as 'away' instead of 'idle' in membersByStatus
- Auto-set creator to 'in_team' status when creating team session
- Filter current user from idle members invite list
- Fix group store isGroupOwner using pb.authStore instead of localStorage
- Add nginx no-cache headers for index.html
- Add join_requests collection migration and join approval flow
- Update groups collection rules and add requireApproval field
- Add Memory types for Phase 2 planning
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>