• v2.1.5 75feb14df5

    DinoX v2.1.5
    All checks were successful
    Build / Validate Manual Selection (push) Has been skipped
    Build / Release Static Preflight (push) Successful in 38s
    Build / Mirror AppImage Runtimes (push) Has been skipped
    Build / Core Build (push) Successful in 22m22s
    Build / Build AppImage (push) Successful in 17m38s
    Build / Build Flatpak (push) Successful in 1h30m58s
    Stable

    Ralf released this 2026-06-29 11:31:19 +02:00 | 227 commits to master since this release

    DinoX v2.1.5

    Modern XMPP client with extended features.

    What's New

    Changed

    • Startup and add-conversation responsiveness: Deferred heavy roster, account, group, and preference-list setup so startup and add-conversation dialogs open with less main-loop pressure after large roster or MUC activity.
    • MUC member and occupant state handling: Hardened cached member-list, occupant popover, call-entry, presence, and notification state so large rooms keep more stable UI state while switching, closing, or reopening chats.
    • Encryption details lifecycle: Tightened OMEMO and OpenPGP contact-detail and preference-row callbacks so stale widgets no longer receive key-state updates after their account, chat, or page lifecycle has ended.

    Fixed

    • OMEMO v1 device and bundle repair: Hardened legacy OMEMO reset, bundle fetch, device-list retry, and self-publish handling so older or temporarily inconsistent peer devices can recover without corrupting the active send path.
    • OMEMO MAM replay visibility: Account-level archive catch-up now runs reliably after reconnect, MAM replay messages keep their stable server IDs for deduplication, and undecryptable live or replayed OMEMO payloads remain visible as explicit encrypted-message failures instead of disappearing silently.
    • MUC join and bookmark removal flow: Fixed direct group join selection, bookmark removal state, manual removal protection, stale leave/rejoin state, and join-dialog completion so removed or rejoined rooms do not get reopened by old local state.
    • Roster and account lifecycle handling: Hardened account-scoped roster, contact browser, contact settings, and account combo-box state so preference pages and add-contact dialogs no longer mix stale account data after account or roster changes.
    • MUC startup lifecycle regressions: Fixed stale join continuations, incomplete room metadata handling, and duplicate room-entry state that could leave group-chat dialogs or room details stuck after startup.
    • OpenPGP private MUC readiness: Hardened OpenPGP file-send readiness checks for private MUC contexts so encrypted file preparation fails closed when sender/contact key state is not ready.
    • Chat encryption status callbacks: Guarded chat-input encryption indicators and conversation controllers against stale callback delivery after the active conversation changes.

    Installation

    Debian/Ubuntu

    sha256sum -c dinox_2.1.5_*.deb.sha256
    sudo apt install ./dinox_2.1.5_*.deb
    

    AppImage

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

    Flatpak

    flatpak install flathub org.gnome.Platform//50
    sha256sum -c dinox-2.1.5-x86_64.flatpak.sha256
    flatpak install --user ./dinox-2.1.5-x86_64.flatpak
    flatpak run im.dinox.dinox
    

    Build from Source

    tar xf dinox-2.1.5.tar.gz
    cd dinox-2.1.5
    ./scripts/ci-build-deps.sh
    meson setup build -Dplugin-mqtt=enabled -Dplugin-rtp=enabled -Dlocation-sharing=enabled -Dplugin-rtp-vaapi=enabled
    ./scripts/build.sh --strict
    ./build/main/dinox
    
    Downloads