Version 0.15.0 of package Jabber has just been released in NonGNU ELPA. You can now find it in M-x list-packages RET.
Jabber describes itself as: ================== XMPP/Jabber client ================== More at https://elpa.nongnu.org/nongnu/jabber.html ## Summary: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ JABBER.EL - THE XMPP CLIENT FOR EMACS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1 About ═══════ <https://elpa.nongnu.org/nongnu/jabber.svg> `jabber.el' is an [XMPP] client for Emacs. See the [xmpp.org page] for the full list of supported XEPs. ⁃ [Homepage] ⁃ Source: ⁃ [git.thanosapollo.org] [XMPP] <http://xmpp.org> [xmpp.org page] <https://xmpp.org/software/jabber-el/> [Homepage] <https://thanosapollo.org/projects/jabber/> [git.thanosapollo.org] <https://git.thanosapollo.org/emacs-jabber/about/> 2 Requirements ══════════════ ⁃ Emacs 29.1 or later, compiled with dynamic module support ⁃ [fsm] 0.2.0 or later ⁃ [keymap-popup] 0.2 or later ## Recent NEWS: ━━━━━━━━━━━ CHANGELOG ━━━━━━━━━━━ 2026-10-02 2026-09-05 2026-09-05 1 [0.15.0] ══════════ 1.1 Changed ─────────── • Synchronize server blocklists before fetching peer OMEMO keys; ignore stale blocklist replies and recheck blocked recipients before sending. • Verify received OpenPGP messages against the expected sender's signing key. • Test the declared minimum Emacs, pinned upstream Emacs and Thanos Emacs fork. 1.2 Fixes ───────── • Preserve chat drafts, undo history and reply navigation while updating the transcript; failed sends cannot restore stale text over a newer draft. • Keep popup help bindings and user keymap customizations across Lisp reloads. • Preserve encrypted attachment bytes under compressed filename suffixes. • Keep connection attempts, transport callbacks and queued stanza order attached to the session that owns them. • Retain archive query outcomes and pagination progress until storage commits; preserve unfetched history and reject conflicting message identities. • Preserve OMEMO trust and sessions on identity conflicts; keep encrypted room recipients attached to the current membership snapshot. • Preserve reply targets, retractions, reactions and receipt boundaries during live-message and archive replay. • Stop link-preview scanning from revisiting rejected URLs. • Exclude development administration files from ELPA archives. • Speed up archive duplicate lookup with indexed message identities instead of scanning a contact's history; preserve ambiguous-message and archive-UID checks. • Upgrade existing message databases non-destructively with origin-ID and room-ID indexes while retaining message, archive and encryption state. • Drop rejected incoming message corrections silently, including missing or ambiguous archive targets, instead of flooding `*Messages*'. • Keep contact names, presence, subscriptions, avatars and resource capabilities separate for each connection, including completion and background chat alerts. • Keep unread activity and subscription prompts attached to their originating account when several accounts share a contact or room. • Scope service-discovery observations and pending room errors to their connection; capability retries retain the advertising account and node. • Keep named resources independently selectable, preserving resource case. • Reclaim retired discovery observations when storing new observations, without clearing other live accounts or globally verified capabilities. 1.3 Extension compatibility ─────────────────────────── • Restart Emacs disconnected before first using this version. Existing live global-symbol rosters and pending-room tables are not migrated by reloading Lisp files. • `jabber-jid-symbol', the roster/display/bookmark name helpers and `jabber-avatar-set' accept a final optional connection argument. Pass it when reading or writing automatic roster metadata. Without it, these APIs use only supplied symbols or legacy accountless data, never a guessed account. • Presence hooks and title callbacks keep their existing arities. Their WHO argument is an account-scoped symbol; `jabber-jid-owner' returns its connection. Direct symbol-property reads on WHO remain supported. • `jabber-read-jid-completing' accepts the connection as its seventh argument. An explicitly selected empty account does not fall back to other rosters. • Activity entries now retain connection/JID pairs internally. Existing custom activity formatters and visibility predicates still receive JID strings. Legacy JID-only navigation refuses ambiguous owners instead of choosing one. Legacy JID widgets can carry their owner in the `:jabber-connection' property. 2 [0.14.0] ══════════ 2.1 Fixes ───────── • Restore broadcast presence after connection. A room-recovery check rejected presence without a recipient, leaving the client unavailable to the server: contacts appeared offline and incoming messages could require archive sync 3 [0.13.3] ══════════ 3.1 Added ───────── • Automatically preview shared links locally when URL expansion is enabled … …
