-
DinoX v2.2.7
StableAll checks were successfulBuild / Validate Manual Selection (push) Has been skippedBuild / Release Preflight (push) Successful in 4m55sBuild / Mirror AppImage Runtimes (push) Has been skippedBuild / Core Build (push) Successful in 1h9m8sBuild / Build AppImage (push) Successful in 1h34m50sBuild / Build Flatpak (push) Successful in 22m55sreleased this
2026-08-20 20:42:18 +02:00 | 88 commits to master since this releaseDinoX v2.2.7
Modern XMPP client with extended features.
What's New
Added
- Warm-tone video-call effect: One-to-one video calls now offer an optional Warm tone camera effect alongside Grayscale. Effects remain off by default, are selected per call, and share the existing bounded worker-isolated processing path.
- Per-room member status messages: Routine MUC role and affiliation messages are now hidden by default and can be enabled separately for each room. Kicks, bans, membership removals, room destruction, and their reasons remain visible regardless of this setting.
- Reply-aware deletion: The delete dialog can optionally include all currently known direct replies in full. DinoX validates the complete selection before deletion and reports complete, partial, or failed results explicitly.
Changed
- Verified OMEMO recipients in private rooms: DinoX now derives encrypted-room recipients only from a complete, current server-backed member, administrator, and owner snapshot. Every other member's OMEMO device readiness is verified before message input or queued encrypted messages are released. The check is restarted after joins, room reconfiguration, or membership changes, and a previously unsupported member is rechecked when devices become available.
- Cross-platform attachment input: Copied files, clipboard images, Unicode Windows filenames, and drag-and-drop attachments now use one conversation-scoped send flow. Flatpak prefers FileTransfer portal grants, while native Linux and Windows use the stable GTK file-drop path; plain text still goes to the message composer.
- Pinned and measured video-effect runtimes: Packaged Linux and Windows builds now use the immutable Google/libwebrtc ABI 37 / IPC 7 runtime required by Warm tone. Deterministic Direct, Off, Grayscale, and Warm tone baselines cover frame delivery, CPU, memory, watchdog, and bounded-buffer behavior.
Fixed
- Authoritative private-room membership state: Concurrent member, administrator, and owner queries are coalesced, stale or partial results cannot replace current state, and explicit refreshes supersede older join work. This prevents duplicate retries, stale recipient lists, and premature resend of encrypted MUC messages.
- Moderated-room input permissions: Asynchronous encryption checks no longer override visitor or muted-member restrictions or reopen the composer before both room permissions and encryption readiness are current.
- MUC avatars without an existing vCard: Room owners can set, replace, or remove an avatar even when the server reports that no room vCard exists yet.
- MUC stable message identifiers: DinoX recognizes the standardized stable-stanza-ID feature in room discovery and retains authoritative room IDs from live echoes, improving cross-client reply and retraction targeting.
- Reply identity across senders and corrections: Sender-scoped reply resolution prevents colliding stanza IDs from linking to another participant's message. Corrected replies keep their explicit parent, and group-chat replies retain the correct room-assigned target ID.
- Complete deletion of edited own messages: Deleting for everyone now retracts every known physical revision of an edited message in one-to-one chats and MUCs. Incomplete or ambiguous correction chains fail closed instead of leaving older revisions visible.
- Unambiguous message actions: Hovering an embedded quote no longer exposes actions for the surrounding reply row. The action toolbar and destructive confirmation identify the actual sender and message preview, preventing accidental deletion of a reply instead of the intended message.
- Message editing and widget focus: Focus is cleared before corrected or deleted message widgets are replaced, preventing the
gtk_widget_is_ancestorcritical and the associated crash. - Clipboard-image sending and cleanup: Pasted images use an explicit private plaintext lease instead of being mistaken for encrypted DinoX-managed storage, fixing the checksum failure reported in issue #33 and ensuring temporary data is removed after cancellation or sending.
- File-send dialog behavior: Available direct-transfer and server-upload choices appear progressively without resetting the user's selection, unreadable Flatpak drops offer an explicit reselection path, and image previews remain within the dialog's breakpoint dimensions.
- Dismissible non-anonymous-room warning: The real-JID visibility warning can be closed for the current join and is shown again after leaving and rejoining or when the room's visibility state changes.
- Portable Windows icons: OMEMO and OpenPGP trust states, group-call status, sticker actions, join-room branding, and other symbolic actions now use icons included in the Windows distribution instead of missing-image placeholders.
Installation
Ubuntu 24.04 / Linux Mint 22 (.deb)
sha256sum -c dinox_2.2.7_*.deb.sha256 sudo apt install ./dinox_2.2.7_*.debAppImage
sha256sum -c DinoX-2.2.7-*.AppImage.sha256 chmod +x DinoX-*.AppImage ./DinoX-*.AppImageThe matching
.AppImage.sources.tar.xzfile is a separate compliance download.
It is not required to install or run DinoX.Flatpak
sha256sum -c dinox-2.2.7-x86_64.flatpak.sha256 # Required runtimes are resolved automatically from the bundle metadata. flatpak install --user ./dinox-2.2.7-x86_64.flatpak flatpak run im.dinox.dinoxBuild from Source
( set -e tar xf dinox-2.2.7.tar.gz cd dinox-2.2.7 # Install the normal distribution development packages from docs/internal/BUILD.md. test "$(uname -m)" = x86_64 bash scripts/prepare-linux-source-build-deps.sh export DINOX_LIBWEBRTC_RUNTIME_ROOT=$PWD/.vendor-deps/libwebrtc-m150-linux-x86_64-runtime export DINOX_LOCAL_LIBOMEMO_C_ROOT=$PWD/.vendor-deps/linux-source-deps export PKG_CONFIG_PATH=$DINOX_LOCAL_LIBOMEMO_C_ROOT/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} ./scripts/check-libwebrtc-linux-runtime.sh "$DINOX_LIBWEBRTC_RUNTIME_ROOT" meson setup --wipe --prefix=/usr build -Dlocal-libomemo-c-root="$DINOX_LOCAL_LIBOMEMO_C_ROOT" -Dplugin-mqtt=enabled -Dplugin-rtp=disabled -Dplugin-google-webrtc=enabled -Dgoogle-libwebrtc-wrapper=enabled -Dgoogle-libwebrtc-runtime-root="$DINOX_LIBWEBRTC_RUNTIME_ROOT" -Dgoogle-libwebrtc-test-oracle=false -Dlocation-sharing=enabled -Dplugin-http-files=enabled -Dplugin-ice=enabled -Dplugin-omemo=enabled -Dplugin-openpgp=enabled -Dplugin-notification-sound=enabled ./scripts/build.sh ./build/main/dinox --version DINOX_TOR_ALLOW_SYSTEM_FALLBACK=1 ./build/main/dinox )Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
3 downloads