Repository navigation
SafeDrop v1.1.0 - Performance & Stability Upgrade 🚀
SafeDrop v1.1.0 - Performance & Stability Upgrade 🚀
Release Date: September 14, 2026
Status: Production Ready
🎯 What's New
This release delivers massive performance improvements and rock-solid background stability across all platforms.
Key Metrics
- 🚀 80% faster startup: Desktop launches in 0.5-1 second (down from 2-5s)
- 📱 95%+ background success: Android transfers reliably complete even when screen is off
- ⚡ Instant response: New global shortcuts work from anywhere
- 🎨 Zero friction: System tray integration for seamless workflow
🚀 Performance Improvements
Desktop: Lightning-Fast Startup
Before: 2-5 seconds waiting for backend to initialize
After: 0.5-1 second instant window display
How we did it:
- Parallel initialization: backend and UI load concurrently
- Non-blocking health checks: window shows immediately
- HTTP
/healthendpoint: faster than TCP probes - Optimized Rust binary with LTO and strip
Android: Bulletproof Background Transfers
Before: 60% success rate for large files with screen off
After: 95%+ success rate on all major devices
Triple keep-alive mechanism:
- Battery optimization exemption with user-friendly guidance
- WakeLock prevents CPU sleep during transfers (10-min timeout)
- 30-second heartbeat keeps foreground service alive
Optimized for:
- OPPO ColorOS
- VIVO FuntouchOS / OriginOS
- Xiaomi MIUI / HyperOS
- Samsung OneUI
- Stock Android
✨ New Features
System Tray Integration (Desktop)
What it does: Minimize SafeDrop to system tray instead of taskbar
Features:
- Left-click to show/hide window instantly
- Right-click menu: Show Window, Hide Window, Quit
- Native quit confirmation dialog (prevents accidental exits)
- Supports Windows, macOS, and Linux
Why it matters: Keep SafeDrop running without cluttering your taskbar.
Global Shortcuts (Desktop)
Work even when SafeDrop is hidden or minimized:
| Shortcut | Windows/Linux | macOS | Action |
|---|---|---|---|
| Toggle Window | Ctrl+Shift+S |
Cmd+Shift+S |
Show/hide main window |
| Quick Send | Ctrl+Shift+Q |
Cmd+Shift+Q |
Open file picker to send |
| Refresh Devices | Ctrl+Shift+R |
Cmd+Shift+R |
Re-scan network for devices |
Why it matters: Access SafeDrop instantly without hunting for the window.
Android Battery Optimization Guidance
What it does: Detects when battery optimization will interfere with transfers and guides users to fix it
Features:
- Friendly dialog explaining why exemption is needed
- Manufacturer-specific instructions (OPPO/VIVO/Xiaomi)
- One-tap jump to system settings
- "Don't show again" option with persistent memory
Why it matters: Most users don't know battery optimization breaks background transfers.
🔧 Technical Changes
Desktop
Framework Migration:
- Migrated from C# launcher to Tauri 2.0
- Tauri provides native system tray and global shortcuts
- Smaller binary size with better performance
New Dependencies:
tokio = { version = "1", features = ["rt", "time"] }
reqwest = { version = "0.11", features = ["blocking"] }Key Code Changes:
WindowBuilder::build()for immediate window display- Background thread for non-blocking health checks
- Cross-platform dialog API (Windows MessageBox, macOS AppleScript, Linux zenity/kdialog)
Android
New Permissions (AndroidManifest.xml):
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />WakeLock Implementation:
private lateinit var wakeLock: PowerManager.WakeLock
private fun acquireWakeLock() {
val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager
wakeLock = powerManager.newWakeLock(
PowerManager.PARTIAL_WAKE_LOCK,
"SafeDrop::TransferWakeLock"
)
wakeLock.acquire(10 * 60 * 1000L) // 10 minutes
}Heartbeat System:
- 30-second notification updates keep service in foreground
- Automatic stall detection (alerts if no progress for 2 minutes)
- Coroutine-based with proper lifecycle management
Version Bump:
versionName: 1.0.1 → 1.1.0versionCode: 1 → 2
Backend
New API Endpoint:
// GET /health - Lightweight health check
// Returns: { "status": "ok", "ready": true }Transfer Progress Infrastructure (for future v1.2.0):
- In-memory Map + disk persistence
progress.jsonstores incomplete transfers- Supports resumable uploads (API coming in v1.2.0)
🐛 Bug Fixes
| Issue | Fix |
|---|---|
| Desktop takes 5+ seconds to start | Parallel initialization + non-blocking checks |
| Android transfers fail when screen off | Triple keep-alive mechanism |
| Tauri 2.0 compilation errors | Updated to compatible API (MenuItemBuilder) |
| System tray menu not showing | Fixed event handler registration |
| High-DPI displays show blurry tray icon | Use vector icon with proper scaling |
📦 Downloads
Windows (Recommended)
| Package | Size | SHA256 | Notes |
|---|---|---|---|
| SafeDrop-Setup-1.1.0.msi | ~5 MB | TBD |
MSI installer (recommended) |
| SafeDrop-1.1.0.exe | ~5 MB | TBD |
Portable executable |
System Requirements:
- Windows 10 (build 1809+) or Windows 11
- 64-bit processor (x64)
- 100 MB free disk space
- WebView2 (auto-installed if missing)
Android
| Package | Size | SHA256 | Notes |
|---|---|---|---|
| SafeDrop-1.1.0.apk | ~28 MB | TBD |
Universal APK |
System Requirements:
- Android 7.0 (API 24) or higher
- 50 MB free storage
- Wi-Fi network (for LAN transfers)
Installation: Enable "Install from Unknown Sources" and open the APK.
macOS & Linux
Status: Code complete, awaiting testing
Expected: Late September 2026
🔄 Upgrade Guide
From v1.0.x
Desktop (Windows):
- Download and run the v1.1.0 installer
- Existing installation will be automatically upgraded
- Your settings and transfer history are preserved
Android:
- Install the new APK (will upgrade existing installation)
- First transfer after upgrade will show battery optimization prompt
- Grant exemption for best experience
Configuration Migration: Automatic, no manual steps required.
⚠️ Known Limitations
- macOS & Linux versions: Code ready but needs testing on real hardware before release
- Global shortcuts: May conflict with other applications (customizable in future release)
- Full-screen games: Global shortcuts may not work in exclusive fullscreen mode (system limitation)
- Linux quit dialog: Requires
zenityorkdialog(pre-installed on most distributions)
🧪 Testing
This release was thoroughly tested:
- Startup speed: 5 rounds of cold/warm starts (averaged 0.7s)
- System tray: Show/hide cycles, menu functionality, exit confirmation
- Global shortcuts: 20+ triggers per shortcut across different apps
- Android background: 10 large files (100MB-1GB each) with screen off for 30+ minutes
- Code review: 92.9/100 score across all components
Full test report: V1.1.0_TEST_RESULTS.md
📚 Documentation
Updated Docs:
- README.md - Refreshed with v1.1.0 features
- CHANGELOG.md - Complete version history
- OPTIMIZATION_V1.1_REPORT.md - Technical deep-dive
New Guides:
🚧 Breaking Changes
None. This is a drop-in replacement for v1.0.x.
🗓️ What's Next (v1.2.0)
Planned for early October 2026:
- Resumable transfers: Pause, resume, and continue after crashes
- Batch download: Select multiple files and download as TAR.GZ
- QR share links: Generate shareable links with 24-hour expiration
- Transfer queue: Better visibility and control over pending transfers
💬 Support & Feedback
Found a bug or have a suggestion?
- Report Issues: GitHub Issues
- Feature Requests: Use the Feature Request template
- Discussions: GitHub Discussions
🙏 Contributors
Special thanks to all who tested and provided feedback during development!
📊 Changelog Highlights
v1.1.0 (2026-09-14)
├── Performance
│ ├── Desktop startup: 80% faster (5s → 0.5s)
│ └── Android background: 95%+ success rate
├── Features
│ ├── System tray integration
│ ├── 3 global shortcuts
│ └── Battery optimization guidance
├── Technical
│ ├── Tauri 2.0 migration
│ ├── WakeLock implementation
│ ├── Heartbeat system
│ └── /health endpoint
└── Testing
└── 92.9/100 comprehensive score
Full changelog: CHANGELOG.md
📜 License
SafeDrop is open source under the MIT License.
Enjoy lightning-fast, rock-solid file transfers!
SafeDrop v1.1.0 - Made with ❤️ by the SafeDrop Team