- Migration guide: replace PM2 start commands with `bash deploy.sh` Docker deployment scripts (e.g., `--mode lan-http` or `--mode full --domain example.com`).
- Consult the updated Docker Deployment Guide (`docs/DEPLOYMENT_docker.md`) for all supported modes.
- No changes to existing environment variables are required for Docker deployments, but review new CORS options in `docker/scripts/generate-config.sh`.
- Removed all bare‑metal/PM2 deployment methods: `build-and-deploy.sh`, `ecosystem.config.js`, `deploy.config.example`, legacy Docker assets in `backend/docker/` directory, and related documentation (`docs/DEPLOYMENT.md` and `docs/DEPLOYMENT.zh-CN.md`).
- PrivyDrop now requires Docker‑based deployment; no other deployment mechanisms are supported.
- 8‑second slow connection hint via new `useConnectionFeedback` hook (multi‑language support).
- 15‑second room‑join timeout with early success detection to avoid false timeouts.
- New hooks (`useOneShotSlowHint`) and utility (`rtcPhase`) for RTC state management.
Full changelog
PrivyDrop v1.2.0 Release Notes
Release Date: March 28, 2026
Commits: 42 commits since v1.1.1
Files Changed: 131 files | +11,728 / -8,198 lines
⚠️ Breaking Changes
Docker-Only Deployment
PrivyDrop now only supports Docker-based deployment. All bare-metal/PM2 deployment methods have been removed.
What Was Removed:
build-and-deploy.sh(PM2-based deployment script)ecosystem.config.js(PM2 configuration)deploy.config.examplebackend/docker/directory (legacy Docker assets)docs/DEPLOYMENT.mdanddocs/DEPLOYMENT.zh-CN.md(bare-metal guides)
Migration Guide:
If you were using PM2 or bare-metal deployment:
# Old method (no longer supported)
pm2 start ecosystem.config.js
# New method (use Docker)
bash deploy.sh --mode lan-http # Local LAN
bash deploy.sh --mode full --domain example.com # Production
See Docker Deployment Guide for all deployment modes.
🚀 New Features
Enhanced Connection Feedback
8-Second Slow Connection Hint
- New
useConnectionFeedbackhook monitors WebRTC connection state - Shows user-friendly hint if P2P connection takes longer than 8 seconds
- Supports all 7 languages (EN, ZH, JA, KO, ES, DE, FR)
Join Room Timeout Fix
- Implemented 15-second timeout for room joining
- Added early success detection (ready/recipient-ready/offer signals)
- Prevents false "Join room timeout" errors during slow networks
New Hooks & Utilities:
useOneShotSlowHint- Reusable one-shot notification hookrtcPhase- Shared RTC phase mapper for consistent status messages
UI Improvements
Copy Button Feedback
- RoomID and URL copy buttons now show check icon (✓) for 2 seconds after copying
- Consistent with existing QR code copy behavior
QR Code Restoration
- Restored QR code display in ShareCard (was accidentally removed in i18n refactor)
- Copy QR code and download QR code now work correctly
🔧 Improvements
i18n Modernization (Major Refactor)
14 commits dedicated to i18n infrastructure:
| Change | Impact |
|--------|--------|
| Migrated to native next-intl hooks | Cleaner code, better tree-shaking |
| Removed TranslationProvider facade | Reduced bundle size |
| Replaced prop drilling with context | Simpler component APIs |
| Normalized translation keys | Consistent naming across 7 languages |
| Added next-intl routing infrastructure | Better i18n routing support |
Affected Components: 38 files modified across all UI components
Paste Button Label
- Changed paste button in SendTabPanel from "粘贴房间ID" to "粘贴" (Paste)
- More accurate: button pastes any clipboard content, not just room IDs
- "粘贴房间ID" remains in RetrieveTabPanel where contextually appropriate
🐛 Bug Fixes
| Issue | Fix |
|-------|-----|
| React Hydration Mismatch | ThemeToggle now renders placeholder until mounted |
| QR Code Not Displaying | Restored QRCodeSVG component rendering |
| WebRTC Timeout False Positive | Added early success signal detection |
| SSR Window/DOM Access | Added guards for server-side rendering |
| Deployment CORS | Fixed same-origin API and www CORS origin |
📚 Documentation
New Documentation
AI Playbook (English)
- Added complete English version of AI playbook
- Code map, collaboration rules, flow documentation
- Split into modular documents for better navigation
Blog Posts
- New "AI Collaboration Playbook" blog post (7 languages)
- Added cover images and improved formatting
- Fixed missing content in some language versions
Updated Documentation
- Docker deployment guide updated with full-mode runtime behavior
- Added low-memory deployment guidance
- Removed all PM2/bare-metal references
- Updated README files to reflect Docker-only support
📦 Dependencies
- Updated
backend/package-lock.json - Added
next-intlrouting infrastructure - Updated frontend dependencies
🔗 Full Changelog
Upgrade Instructions
-
Update your deployment:
# If using git pull git pull origin main git checkout v1.2.0 # Restart with Docker bash deploy.sh --mode <your-mode> -
If using PM2 (deprecated):
- Migrate to Docker deployment immediately
- See Docker Deployment Guide
-
Environment variables:
- No changes required for existing Docker deployments
- Check
docker/scripts/generate-config.shfor new CORS options
Contributors
Thanks to all contributors who made this release possible!