Release history
Changelog
Version history from the repo CHANGELOG.md — evidence-named releases, not marketing blurbs. Full notes live under GitHub.
v0.7.13-alpha
- **Phase 1 Chat Performance Mode (Feature-Flagged)**:
- **Batching Test Coverage**:
- **Message Persistence Throughput**:
- **Conversation UI Update Path**:
- **Message List Runtime Adaptation**:
- **Group Chat Current-Range Stabilization**:
- **Scroll/Render Jank Under Burst Traffic**:
- **Performance Observability Gaps**:
v0.7.12-alpha
- **NIP-04 Protocol Fix**: Resolved "Failed to decrypt message" errors by removing incorrect SHA256 hashing of the shared secret X-coordinate, ensuring full NIP-04 compliance and interoperability with other Nostr clients.
- **UI Interaction Stability**:
- **Messaging Responsiveness**: Optimized NIP-20 `OK` acknowledgment timeout (10s -> 4s) to improve UI snappy-ness after broadcasting events.
- **Multimedia Improvements**:
- **Store Refactoring**: Renamed internal `contactStore` references to `connectionStore` for architectural consistency.
- **Multimedia Support (WP-6)**: Implemented full video and audio upload support in chat via NIP-96.
- **Media Upload Reliability Policy**:
- **Tor Network Integration (WP-5)**: Fixed "os error 3" and "os error 193" when activating Tor by correcting Sidecar paths for Tauri v2.
- **Media CORS Issues**: Removed overly restrictive COOP/COEP headers from `next.config.ts`, unlocking CORS capabilities for playing media from third-party storage providers inside the `VideoPlayer`.
- **UI/UX Enhancements**:
v0.7.11-alpha
- **WP-3: Background Sync**: Implemented background synchronization engines for Android (`WorkManager`) and iOS (`BGAppRefreshTask`) calling into `libobscur` to securely fetch and decrypt messages while the app is suspended.
- **WP-4: Secure Key Storage**: Integrated OS-level hardware-backed keystores (`AndroidKeyStore` and iOS `SecureEnclave`) for robust private key management. Added biometric authentication requirements.
- **WP-5: Mobile UX Adaptation**:
- **WP-6: CI/Release Pipeline**:
v0.7.10-alpha
- **WP-1: Tauri V2 Mobile Scaffold**:
- **WP-2: Privacy-Preserving Push Notifications**:
- **Messaging Controller Decomposition (WP-2)**: Continued extracting logic out of `EnhancedDMController` into focused service modules to improve testability and reduce controller size.
- **Light Theme Polish**: Enhanced light theme color scheme for settings and chat area to improve contrast and "premium" feel.
- **Messaging controller service modules** (Phase 1 / WP-2):
- **WP-2 progress note**: `docs/WP-2_DM_CONTROLLER_DECOMPOSITION_PROGRESS.md`
v0.7.9-alpha
- **Terminology Standardization**: Systematically renamed all "Contact" related terminology to "Connection" across the invite system, services, and UI components to better reflect the underlying cryptographic relationships.
- **Unified Invite Manager**: Completed the final implementation of the `InviteManager` as the central orchestrator for QR codes, shared links, and connection requests.
- **Enhanced Deep Link Handling**: Updated `DeepLinkHandler` and `URLSchemeHandler` to support `obscur://connection/` schemes and `connection` URL search parameters.
- **UI/UX Synchronization**: Refactored major components including `ConnectionRequestInbox`, `ConnectionList`, `ConnectionImportExport`, and `OutgoingConnectionRequests` to use the new connection-based APIs and terminology.
- **Messaging UI Avatars**: Implemented bottom-aligned, orientation-aware avatars in `MessageList`. Incoming avatars appear on the left, outgoing on the right.
- **Unified Invitation Cards**: Refactored `CommunityInviteCard` into a premium "rich card" layout that adapts its footer actions based on invite status and ownership.
- **Response Banner Styling**: Standardized `CommunityInviteResponseCard` with elegant status banners and icons (PartyPopper/Ban).
- **Privacy Settings**: Renamed `allowContactRequests` to `allowConnectionRequests` in the profile privacy configuration for consistent terminology.
- **Search & Performance**: Updated `ConnectionSearchIndex` and internal caching mechanisms with improved terminology and optimized word indexing.
- **Accessibility & UX**: Standardized ARIA labels, keyboard hints, and error messages in `accessibility-ux.ts` to use "connection" terminology.
- **Store TypeError**: Resolved `TypeError: connectionStore.getContactByPublicKey is not a function` by implementing the missing method in `connection-store.ts` and updating the interface.
- **Render Safety**: Added robust null-checks for `.slice()` and string indexing in `UserAvatar`, `ChatHeader`, and `SenderName` to prevent crashes during profile resolution.
v0.7.8-alpha
- **Egalitarian Privacy First**: Deprecated legacy NIP-29 administrative roles. Implemented the "Sealed Communities" (Kind 10105) protocol where all keyholders participate as equal members, ensuring maximum decentralization and privacy.
- **Invite & Key Distribution**: Implemented deterministic NIP-17 Gift-Wrapped DMs for secure, peer-to-peer distribution of Community Room Keys. Support for QR code scanning and `obscur://` deep link invite redemption.
- **Consensus Moderation**: Introduced "Vote to Kick" sealed events. Content moderation and member expulsion now rely on a strictly enforced >50% client-side consensus threshold, eliminating single points of administrative failure.
- **Secure Key Rotation**: Automated cryptographic Room Key rotation upon member expulsion to maintain community integrity.
- **Registry Independence**: Communities can now operate without centralized relay tracking, relying entirely on obscured identifiers and shared secrets.
- **Unified Auth Flow**: Completely redesigned the authentication and onboarding experience. Integrated account creation and login into a single, high-fidelity `AuthScreen` with smooth `framer-motion` animations.
- **"Remember Me" Persistence**: Implemented opt-in session persistence. Users can now choose to save their encrypted session, allowing for seamless auto-unlock on app restart.
- **Instant Discovery**: Account creation now automatically generates and publishes a unique invitation code in the background, making new users immediately discoverable.
- **Sidebar Categorization**: Introduced a unified Segmented Control to toggle between "Chat" (Direct Messages) and "Community" (Groups), replacing static buttons.
- **Chat Management**: Users can now pin, unpin, and soft-delete (hide) conversations directly from the sidebar via a new three-dot context menu. Pinned chats remain reliably at the top.
- **Request Inbox Management**: Added a "Clear All" button to instantly wipe the connection requests inbox history.
- **Community Invitation UI**: Introduced `CommunityInviteResponseCard` to display invitation acceptance/rejection status as an elegant notification pill instead of raw JSON.
v0.7.6-alpha
- **Invite Code Search**: Integrated secure invite code resolution directly into the "New Chat" dialog. Users can now enter an `OBSCUR-...` code to instantly find and connect with peers, streamlining the "Add Contact" workflow.
- **Custom Scrollbars**: Implemented universal, seamless scrollbars that remain hidden by default and appear on hover, providing a more immersive and cleaner interface.
- **Messaging Stability**: Optimized dependency tracking in `EnhancedDMController`, preventing unnecessary relay re-connections and ensuring consistent message delivery during network fluctuations.
- **Performance**: Prioritized critical LCP (Largest Contentful Paint) images in the authentication gateway, significantly improving the initial load experience and Core Web Vitals score.
- **Test Infrastructure**: Refactored `enhanced-dm-controller.test.ts` to use top-level imports and standard Vitest `vi.mocked()` patterns, replacing legacy `require()` calls to improve type safety and maintainability.
- **Chat Layout**: Resolved an issue in the web version where the input composer would disappear below the fold. The input box is now strictly pinned to the bottom of the viewport.
- **History Persistence**: Fixed a critical bug where chat history and contacts were not loading on startup/refresh.
- **UI Interactions**: Added click-outside listeners to predictably close message context menus and reaction pickers.
- **First Message Visibility**: Corrected race condition in message ingestion that prevented initial connection request messages from displaying in real-time.
- **Localization Polish**: Fixed broken translation keys (including `common.searching` and stranger warning titles) and localized hardcoded UI elements.
- **React Hooks**: Resolved internal dependency warnings in the messaging components, ensuring stable and predictable state updates.
v0.7.5-alpha
- **Profile Flow Optimization**: Reverted mandatory profile publishing enforcement to resolve infinite redirect loops on unstable connections. Users can now choose to skip the username step during onboarding if desired.
- **Onboarding UX**: Restored the "Skip" button in the onboarding wizard, allowing for a more flexible user journey when setting up a new identity.
- **Code Stability**: Refactored `AuthGateway` and hook dependencies to fix React strict mode violations and improve application stability during the authentication phase.