Release history

Changelog

Version history from the repo CHANGELOG.md — evidence-named releases, not marketing blurbs. Full notes live under GitHub.

  1. v0.7.4

    • **Mobile Native Crypto**: Implemented hardware-backed security on Android and iOS using native platform storage, replacing WASM fallbacks.
    • **Deep Linking**: Added system-level support for `obscur://` and `nostr://` protocols for seamless invite redemption and peer-to-peer discovery.
    • **Improved Background Handling**: Optimized relay connection persistence and notification handling for mobile environments.
    • **Native Media Uploads**: Switched to native OS file pickers for smoother integration with system galleries and improved upload reliability on mobile.
    • **Group Chat Polish**: Refined member management UI, optimized touch targets, and enabled native avatar uploads for group metadata.
    • **Security Persistence**: Optimized session hydration logic for mobile environments.
    Release notes (docs)
  2. v0.7.2

    • **Dual-Path Upload Architecture**: Re-enabled direct browser uploads for the PWA while maintaining the high-performance Rust-native path for Desktop/Mobile.
    • **Client-Side NIP-98 Signing**: Implemented secure, client-side NIP-98 authentication for browser uploads using the internal `@dweb/nostr` library.
    • **Relay Stability**: Added a defined debounce (2s) to the initial message sync to prevent redundant network requests when multiple relays connect simultaneously on startup.
    • **PWA Uploads**: Resolved the "NIP-96 upload requires desktop app" error by intelligently routing uploads based on the runtime environment.
    • **Initial Sync Spam**: Fixed a race condition where the app would trigger a full message sync for _each_ relay that connected, instead of waiting for the connection pool to stabilize.
    • **Relay Connection Hang**: Fixed a critical race condition where the desktop app would get stuck in a "connecting" state because the backend reported a relay as "already connected" without triggering the necessary frontend events.
    • **Desktop Message Encryption**: Implemented native NIP-04 encryption/decryption in the Rust backend to fix message sending failures on Desktop, covering for the lack of raw key access in the frontend.
    Release notes (docs)
  3. v0.7.1-alpha

    • **In-Memory Native Session**: Implemented a more robust session management pattern that keeps active keys in memory on the Rust backend, reducing reliance on the OS keychain for every operation.
    • **Auto-Hydration**: The desktop backend now automatically loads keys from the OS keychain into the in-memory session on startup, ensuring a seamless experience after app restarts.
    • **NIP-96 Response Parsing**: Added support for servers (like `nostr.build`) that wrap upload results in a `data` array.
    • **Tauri Permissions**: Fixed a "Command not found" error by explicitly allowing `init_native_session` and `clear_native_session` in the app's capability configuration.
    • **Session Sync**: Resolved "Missing native key" errors by making the frontend the source of truth for session initialization.
    Release notes (docs)
  4. v0.7.0-alpha

    • **Native NIP-98 Signing**: Moved NIP-98 authentication event generation and SHA-256 payload hashing entirely into the Rust backend. This ensures a perfect match between uploaded bytes and the authentication tag, eliminating 401 Unauthorized errors.
    • **Native Network Cutover**: Fully audited the Desktop networking stack to ensure 100% of relay and HTTP traffic is routed through the native Rust runtime (ignoring WebView browser fallbacks).
    • **Upload Reliability**: Resolved persistent 401 errors during NIP-96 file uploads by delegating signing to the native layer, which bypasses WebView CORS and IPC overhead.
    • **Relay Connectivity**: Patched adhoc WebSocket leaks in the invite flow to use the native transport.
    • **Stabilization Guardrails**: Hardcoded a stable set of default relays and storage providers for v0.7. Custom relay and provider editing has been disabled in the UI to ensure a reliable "golden path" for the release.
    Release notes (docs)
  5. v0.6.6-alpha

    • **Native Networking Runtime**: Centralized native HTTP + WebSocket networking behind a single Rust runtime to ensure consistent proxy/Tor routing and improve diagnostics.
    • **Relay Probe Diagnostics**: Added `probe_relay` to quickly distinguish DNS/TCP/WebSocket upgrade failures and surface actionable errors (including HTTP gateway responses).
    • **Relay Resilience**: Native relay transport now tracks desired relays and automatically reconnects with exponential backoff after disconnects.
    • **Fallback Relays (Desktop)**: When all configured relays fail to connect, the app adds a small transient fallback set to avoid hard offline state.
    • **Tor UX**: Removed reliance on WebView proxy configuration at window creation time, enabling live Tor switching without requiring an app restart.
    • **Upload Debugging**: Improved native upload diagnostics and strict-provider behavior (no redirects), with multipart field-name compatibility retry.
    Release notes (docs)
  6. v0.6.5-alpha

    • **Android Build**: Isolated native keychain to desktop platforms only (Windows, macOS, Linux) using conditional compilation. Android builds now succeed without OpenSSL dependencies.
    • **Mobile Crypto Fallback**: Android automatically uses WASM-based crypto with encrypted IndexedDB storage, maintaining security without native keychain.
    Release notes (docs)
  7. v0.6.4-alpha

    • **Android Compilation**: Migrated `tokio-tungstenite` from `native-tls` to `rustls` to resolve OpenSSL dependency issues during Android cross-compilation.
    • **Native Key Management**: Secure storage for Nostr private keys (nsec) using the operating system's native keychain (Windows Credential Manager, macOS Keychain) via `keyring`.
    • **Native Signing**: Optimized cryptographic signing of Nostr events in Rust for improved performance and security.
    • **Auto-Unlock**: Automatic detection and authentication using native keys on startup, providing a seamless login experience.
    • **Improved Security Boundaries**: The private key is now isolated at the native layer, never touching the frontend/WebView memory once stored.
    • **Relay Stability**: Fixed "Future is not Send" errors and deadlock issues in the native relay transport by ensuring MutexGuards are not held across await points.
    • **Desktop Permissions**: Refactored capability management to use explicit permission identifiers, ensuring native features work correctly in production bundles.
    • **Dependency Optimization**: Updated `nostr` and `tokio` dependencies for better cross-platform compatibility and performance.
    Release notes (docs)
  8. v0.5.0-alpha

    • **Tor Network Integration**: Full Tor support for desktop, routing all application traffic through a bundled Tor sidecar for enhanced privacy and censorship resistance.
    • **Native Mobile Support (Android)**: Initial alpha release for Android.
    • **Mobile UI Polishing**: Implemented safe area insets for notches and dynamic islands, ensuring content isn't obscured.
    • **Deep Linking**: Support for `obscur://` and `nostr:` links to open invites, profiles, and conversations directly in the app.
    • **Native File Uploads**: Integrated NIP-96 file upload support using native file pickers and camera.
    • **Native Notifications**: Implemented foreground polling and native system notifications for new messages.
    • **Status Bar Sync**: The system status bar now automatically syncs with the app's theme (light/dark mode).
    • **Core Feature Parity**: Validated WASM crypto fallback and essential features on mobile environment.
    • **CI/CD**: Automated Android APK building via GitHub Actions (`mobile-release.yml`).
    Release notes (docs)