Skip to content

v2.0.0

Latest

Choose a tag to compare

@rootagi rootagi released this 01 Jul 02:52
0450f44

Changelog

v2.0.0

New Features (Android)

  • Home Screen — Added a new landing screen with typewriter hero text, pigeon logo, and Hotspot/WiFi mode selection
  • QR Code Scanning — CameraX + ZXing-based QR code scanner for quick peer pairing
  • QR Code Generation — Generate QR codes to share connection details
  • Wi-Fi Hotspot Direct Share — Android LocalOnlyHotspot manager for programmatic hotspot creation, enabling transfers without an existing WiFi network
  • Embedded HTTP File Server — Pure Java ServerSocket-based HTTP file server serves files over the hotspot for browser-based downloads
  • Hotspot Share Screen — File picker, hotspot credentials display, and QR code sharing in a single screen
  • Curtain Transition Animation — Samsung One UI "Now Bar" style curtain reveal transition component
  • Stacked Swipe Mode Selector — Animated stacked swipe pill component with AGSL liquid metal shader effect for switching between Send and Receive modes

Performance Improvements

  • Buffered Network I/O — Added 2MB buffered reader/writer on both sender and receiver sides to aggregate writes into fewer, larger TLS records, reducing encryption overhead
  • Buffered File Writing — Receiver now wraps destination files in a 256KB buffered writer, with explicit flush at completion
  • File Pre-allocation — Received files are pre-allocated on disk (seek to Size-1) to prevent filesystem fragmentation and incremental allocation during transfer
  • Per-Connection TLS — Moved from tls.Listen/tls.Dial to raw TCP with explicit per-connection tls.Server/tls.Client handshakes; cipher suites now explicitly prefer AES-GCM over ChaCha20 for hardware AES-NI acceleration
  • TCP Socket TuningTCP_NODELAY enabled, read/write socket buffers increased to 2MB
  • Reduced AllocationsChunkedWriter now uses a reusable [4]byte header buffer instead of allocating make([]byte, ...) on every write

Stability & Correctness

  • Fixed goroutine leak in ScanPeers() — The entries channel from the mDNS resolver is now explicitly closed when the scan context expires, preventing ScanPeers from blocking indefinitely
  • Fixed data race in history loadingloadHistory() now creates a defensive copy of the entries slice before returning, preventing race conditions between concurrent Wails JSON serialization and addHistoryEntry writes

Downloads

Platform File Notes
🐧 Linux synapse-linux-amd64.tar.gz Extract and run ./synapse
🪟 Windows (Installer) synapse-amd64-installer.exe Recommended — setup wizard
🪟 Windows (Portable) synapse-windows-amd64.zip Extract and run synapse.exe
📱 Android synapse.apk Sideload on Android 8.0+

Requirements

  • Linux: sudo apt install libgtk-3-0 libwebkit2gtk-4.1-0
  • Windows: WebView2 Runtime (pre-installed on Windows 10/11)
  • Android: Enable "Install from unknown sources"