3.7 (Released)

This major release mainly focuses on improving server code, API consistency and protocol handling for better interoperability. There's to note that there have been extensive changes to the internal API / datastore format so compatibility with previous versions and partial compatibility with Prosody plugins may have been voided, this changes include the following:

  • MUC API
  • MUC Logging
  • SASL API

Changes, improvements:


  1. Remove certmanager and s2smanager from core, they're now util plugins.
  2. Don't fire authentication failure before the handler is cleaned.
  3. Fixed auth failure session closings.
  4. Add compatibility for non-manifesto compliant servers.
  5. Auto-except multiplexed streams and always authenticate with db on pre-1.0 streams.
  6. Prevent traceback on resourceless muc presences.
  7. Add configurable clients resources limit.
  8. Simplify anonymous detection code.
  9. Sanitize PubSub subscriptions in storage.
  10. Add account identity to service discovery queries directed to bare jid.
  11. Add missing pubsub-to-jid on bare disco info replies.
  12. Always force a wide stanza limit with mod_muc_limits when not enabled per room.
  13. Fixed endless routing loop caused by SM unhandled stanza errors.
  14. Fixed mediated muc invitations.
  15. Flag MAM store as changed when prefs are set.
  16. Fire a muc-room-destroyed event when room:destroy() is called.
  17. Refactor muc logging code, this marks incompatibility with previous versions:
    • The day datastore should NOT use yy-mm-dd date format, I know there's not much hope Metronome will last to the next millennia but it's better if someone goes back in time prior to 2000 and brings Metronome with him/herself
    • This will also allow to remove a lot of useless code
    • Wipe all logs when either the room is destroyed or logs are disabled
    • Don't allow enabling logs into non-persistent rooms, makes no sense
    • Allow enabling logs into hidden rooms
  18. Implement a XEP-297 based interface to retrieve logs (see issue 197).
  19. Handle module features for muc components more appropriately.
  20. Improve MUC API events, this marks plugins incompatibility with previous versions (see issue 200).
  21. Add Stanza API function to get an element based on attribute value.
  22. Update MAM to support latest draft.
  23. Make error reporting by module:require() more descriptive.
  24. Add MUC API to retrieve if a jid got an affiliation to a room.
  25. Fixed MAM dataforms parsing.
  26. Don't reject RSM requests with an empty before only.
  27. Always append the RSM set to MAM ":0" queries.
  28. Add missing indexing to MAM's RSM.
  29. Remove hashes after a cleanlist failed check (mod_register_json).
  30. Fixed handling of dhparams by certmanager.
  31. Fixed SASL External handling and presentation, slightly changed proxying eventing.
  32. Renamed mod_websockets to mod_websocket and changed default path.
  33. Fixed privacy lists from not handling global lists.
  34. (Last Minute) Fixed handling of empty log entries.
  35. (Last Minute) Fixed shebang in muc log generation script.
  36. (Last Minute) Corrected typo into example configuration file.