• v2.2.7 f3f0d70537

    DinoX v2.2.7
    All checks were successful
    Build / Validate Manual Selection (push) Has been skipped
    Build / Release Preflight (push) Successful in 4m55s
    Build / Mirror AppImage Runtimes (push) Has been skipped
    Build / Core Build (push) Successful in 1h9m8s
    Build / Build AppImage (push) Successful in 1h34m50s
    Build / Build Flatpak (push) Successful in 22m55s
    Stable

    Ralf released this 2026-08-20 20:42:18 +02:00 | 88 commits to master since this release

    DinoX 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_ancestor critical 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_*.deb
    

    AppImage

    sha256sum -c DinoX-2.2.7-*.AppImage.sha256
    chmod +x DinoX-*.AppImage
    ./DinoX-*.AppImage
    

    The matching .AppImage.sources.tar.xz file 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.dinox
    

    Build 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