Skip to content

v0.12.0 — safer reload, OMEMO multi-client/MUC fixes, faster builds

Latest

Choose a tag to compare

@ekollof ekollof released this 24 Jul 09:08
· 25 commits to master since this release

Highlights

0.12.0 makes plugin reload safe, hardens multi-client and MUC OMEMO, and speeds up day-to-day Debug builds.

Plugin lifecycle

  • Safe unload/reload — ordered teardown drains workers, disconnects accounts, and shuts down libstrophe cleanly
  • Atomic installmake install uses temp+rename so a running WeeChat no longer hits SIGBUS when the mapped .so is replaced
  • Documented update path: make install then /plugin reload xmpp (reconnect accounts after)

OMEMO

  • Psi+/multi-client — merge PEP device lists with live sessions; sid learning; do not drop devices missing from incomplete PEP republishes
  • Lazy MUC bootstrap — no connect-time PEP storm for every cohabitant; one-shot device/bundle fetch when you /omemo enable in a non-anonymous room
  • /omemo prune — clear peer sessions/bundles/device lists while keeping your own identity and prekeys
  • Stranger key-transport / bulk prefetch issues from earlier groupchat work are further reduced

UX fixes

  • /upload paths with spaces and ~ / ~user expansion
  • Picker (/list) keeps selection visible when scrolling
  • Skip /icat when the script is not loaded; less duplicate self-echo previews
  • Return focus to the core buffer after startup

Build

  • Doctests link the normal xmpp.so (no second coverage compile on every Debug build)
  • Prefer lld when available; isolate GIT_COMMIT to version.cpp for better ccache
  • .source ELF embed is opt-in (EMBED_SOURCE=1 / make release)

Notes

  • MUC OMEMO remains experimental (non-anonymous rooms; members-only preferred).
  • Feeds can be disabled with /set xmpp.look.feeds off.

Packages

Distribution packages (deb, rpm, Arch, Alpine, Void) are attached by CI after the Packages workflow finishes.