From 372b018c8e682505f65fcd0040aadef24f704806 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20R=C3=A9mond?= Date: Fri, 13 Feb 2026 12:12:43 +0100 Subject: [PATCH 1/2] chore: bump version to 0.13.1 --- CHANGELOG.md | 26 ++++++++++++++++++++ RELEASE_NOTES.md | 35 +++++++++++++-------------- apps/fluux/package.json | 2 +- apps/fluux/src-tauri/Cargo.toml | 2 +- apps/fluux/src-tauri/tauri.conf.json | 4 ++-- apps/fluux/src/data/changelog.ts | 36 ++++++++++++++++++++++++++++ package.json | 2 +- packages/fluux-sdk/package.json | 2 +- 8 files changed, 84 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7bd519d..c328a19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,32 @@ All notable changes to Fluux Messenger are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.13.1] - 2026-02-13 + +### Added + +- Enhanced logging and diagnostics for connection troubleshooting +- Tracing for keychain, idle detection, link preview, and startup operations + +### Changed + +- Improved XMPP proxy robustness and TCP streaming error handling +- Streamlined avatar restoration logic + +### Fixed + +- Memory and CPU leaks on connection loss +- SRV flip and double-connect on reconnect after sleep +- Background MAM catchup after reconnection +- New message marker rewinding to earlier position +- Room sorting after connection +- Occupant avatar negative cache handling +- Stuck tooltips on rapid hover +- Room members sidebar state lost across view switches +- HTTP upload discovery on server domain +- Pointer cursor missing on interactive buttons +- Windows code signing + ## [0.13.0] - 2026-02-12 ### Added diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 429cb88..a00c033 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,31 +1,28 @@ -## What's New in v0.13.0 +## What's New in v0.13.1 ### Added -- Native TCP connection support via WebSocket proxy (desktop) -- Clipboard image paste support (Cmd+V / Ctrl+V) -- Clear local data option on logout -- Complete EU language coverage (26 languages) -- Improved Linux packaging with native distro tools +- Enhanced logging and diagnostics for connection troubleshooting +- Tracing for keychain, idle detection, link preview, and startup operations ### Changed -- Smarter MAM strategy for better message history loading -- Dynamic locale loading for faster initial load -- Centralized notification state with viewport observer -- Windows tray behavior improvements +- Improved XMPP proxy robustness and TCP streaming error handling +- Streamlined avatar restoration logic ### Fixed -- Attachment styling consistency across themes -- Sidebar switching with Cmd+U -- Scroll-to-bottom reliability on media load -- "Copy Image" paste support (only tested with Safari) -- New message marker position on conversation switch -- Duplicate avatar fetches for unchanged hashes -- macOS layout corruption after sleep -- Markdown bold/strikethrough stripped from message previews -- Context menu positioning within viewport bounds +- Memory and CPU leaks on connection loss +- SRV flip and double-connect on reconnect after sleep +- Background MAM catchup after reconnection +- New message marker rewinding to earlier position +- Room sorting after connection +- Occupant avatar negative cache handling +- Stuck tooltips on rapid hover +- Room members sidebar state lost across view switches +- HTTP upload discovery on server domain +- Pointer cursor missing on interactive buttons +- Windows code signing --- [Full Changelog](https://github.com/processone/fluux-messenger/blob/main/CHANGELOG.md) diff --git a/apps/fluux/package.json b/apps/fluux/package.json index 87c1486..8911d1b 100644 --- a/apps/fluux/package.json +++ b/apps/fluux/package.json @@ -1,6 +1,6 @@ { "name": "@xmpp/fluux", - "version": "0.13.0", + "version": "0.13.1", "private": true, "type": "module", "scripts": { diff --git a/apps/fluux/src-tauri/Cargo.toml b/apps/fluux/src-tauri/Cargo.toml index e5e07b4..342c2fb 100644 --- a/apps/fluux/src-tauri/Cargo.toml +++ b/apps/fluux/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fluux" -version = "0.13.0" +version = "0.13.1" description = "A powerful, productive messaging client that's pleasant to use." authors = ["ProcessOne"] license = "AGPL-3.0-or-later" diff --git a/apps/fluux/src-tauri/tauri.conf.json b/apps/fluux/src-tauri/tauri.conf.json index d7df32f..1d2f2d0 100644 --- a/apps/fluux/src-tauri/tauri.conf.json +++ b/apps/fluux/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Fluux Messenger", - "version": "0.13.0", + "version": "0.13.1", "identifier": "com.processone.fluux", "plugins": { "deep-link": { @@ -57,7 +57,7 @@ ], "macOS": { "minimumSystemVersion": "10.13", - "bundleVersion": "673aeec", + "bundleVersion": "6fa433a", "entitlements": "Entitlements.plist", "signingIdentity": null }, diff --git a/apps/fluux/src/data/changelog.ts b/apps/fluux/src/data/changelog.ts index 4cd05e7..327f704 100644 --- a/apps/fluux/src/data/changelog.ts +++ b/apps/fluux/src/data/changelog.ts @@ -13,6 +13,42 @@ export interface ChangelogEntry { } export const changelog: ChangelogEntry[] = [ + { + version: '0.13.1', + date: '2026-02-13', + sections: [ + { + type: 'added', + items: [ + 'Enhanced logging and diagnostics for connection troubleshooting', + 'Tracing for keychain, idle detection, link preview, and startup operations', + ], + }, + { + type: 'changed', + items: [ + 'Improved XMPP proxy robustness and TCP streaming error handling', + 'Streamlined avatar restoration logic', + ], + }, + { + type: 'fixed', + items: [ + 'Memory and CPU leaks on connection loss', + 'SRV flip and double-connect on reconnect after sleep', + 'Background MAM catchup after reconnection', + 'New message marker rewinding to earlier position', + 'Room sorting after connection', + 'Occupant avatar negative cache handling', + 'Stuck tooltips on rapid hover', + 'Room members sidebar state lost across view switches', + 'HTTP upload discovery on server domain', + 'Pointer cursor missing on interactive buttons', + 'Windows code signing', + ], + }, + ], + }, { version: '0.13.0', date: '2026-02-12', diff --git a/package.json b/package.json index d60290d..576aa99 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "fluux", "private": true, "license": "AGPL-3.0-or-later", - "version": "0.13.0", + "version": "0.13.1", "type": "module", "workspaces": [ "packages/*", diff --git a/packages/fluux-sdk/package.json b/packages/fluux-sdk/package.json index 858d796..35a2416 100644 --- a/packages/fluux-sdk/package.json +++ b/packages/fluux-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@fluux/sdk", - "version": "0.13.0", + "version": "0.13.1", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", From 19f7498a7638292f18eea99e2db0084d39f53a4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20R=C3=A9mond?= Date: Fri, 13 Feb 2026 12:17:56 +0100 Subject: [PATCH 2/2] Fix tests + Macos Warning --- apps/fluux/src-tauri/src/main.rs | 5 ++++- packages/fluux-sdk/src/stores/roomStore.test.ts | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/fluux/src-tauri/src/main.rs b/apps/fluux/src-tauri/src/main.rs index dbe0eda..2071a5a 100644 --- a/apps/fluux/src-tauri/src/main.rs +++ b/apps/fluux/src-tauri/src/main.rs @@ -795,7 +795,10 @@ fn main() { // Register xmpp: URI scheme for deep linking (RFC 5122) // This allows the app to open when users click xmpp: links - #[cfg(desktop)] + // On macOS, URI schemes are registered via Info.plist at build time + // (configured in tauri.conf.json), so runtime registration is only + // needed on Linux and Windows. + #[cfg(any(target_os = "linux", target_os = "windows"))] { match app.deep_link().register("xmpp") { Ok(_) => tracing::info!("Deep link: registered xmpp: URI scheme"), diff --git a/packages/fluux-sdk/src/stores/roomStore.test.ts b/packages/fluux-sdk/src/stores/roomStore.test.ts index 2f9c076..7ab784b 100644 --- a/packages/fluux-sdk/src/stores/roomStore.test.ts +++ b/packages/fluux-sdk/src/stores/roomStore.test.ts @@ -1079,7 +1079,7 @@ describe('roomStore', () => { expect(room?.unreadCount).toBe(1) // Only incremented once }) - it('should set lastReadAt to epoch when undefined and inactive room gets first message', () => { + it('should leave lastReadAt undefined when inactive room gets first message', () => { roomStore.getState().addRoom(createRoom('test@conference.example.com')) // Room is inactive (activeRoomJid is not set) @@ -1087,7 +1087,7 @@ describe('roomStore', () => { roomStore.getState().addMessage('test@conference.example.com', message) const room = roomStore.getState().rooms.get('test@conference.example.com') - expect(room?.lastReadAt).toEqual(new Date(0)) // Epoch - marker will show + expect(room?.lastReadAt).toBeUndefined() // Stays undefined; marker placed via unreadCount on activate }) it('should preserve lastReadAt when inactive room gets new message', () => {