Mbin Releases

0 readers
1 users here now

Here you will get the release notes for new releases of mbin. The release notes in GitHub are very developer centric, so here you will find the relevant changes splitted for users and instance administrators.

Rules

Please post feature requests, questions and alike either to !mbinmeta@gehirneimer.de or in the official issue tracker

founded 1 year ago
MODERATORS
1
 
 

This release is a bit earlier than usual. The reason for it is our major rewrite of the docker setup. Other than that we have a few bug fixes and translation updates.

For Users

nothing new

For Admins

Docker setup rework

If you are running Mbin via Docker, please read our migration guide (in the PR description) very carefully. The new setup uses base templates from Symfony and frankenphp in conjunction with Caddy. For more changes please have a look at PR 1542

Bug fixes

  • the handler for sending application answer mails did not work , fixed now
  • a few warnings have been fixed
2
 
 

The v1.8.1 release of mbin brings a lot of bug fixes, UI and documentaion improvements

For Users

Improve light themes

We improved the contrast our light themes have a lot -> they just look better

We fixed a lot with our new inline previews

  • We do not just remove a link when we cannot find an activity for it
  • if a link contained a title we do not render the preview, but the title instead
  • Community links from lemmy sometimes use this syntax: [!community@instance.tld](https://instance.tld/c/community) which our preview parser couldn't handle -> now it can
  • All previews are now inlined, so they can be put in brackets for example (they do not take up a whole line anymore): screenshot of the same markdown testing post as in v1.8.0 but with the new rendering

Always put thumbnails in a lightbox

When you click a thumbnail in a list view, the default behavior is to open that image in a lightbox now. You can disable that new behavior via the appearance settings. If you have this option disabled then clicking on the link will open up the post like it did before

Fix tooltips not working for the appearance settings

Most of the appearance settings have a helptext, which is now displayed again when hovering over the setting.

Blocked or Deleted Users cannot send you private messages anymore

Deleting User Images

When you deleted your avatar or cover it did not properly federate to remote mbin servers, we fixed that

Modlog avatars

The modlog now properly respects the setting for displaying user avatars. You can also disable the "new user" icon in the modlog.


For Admins

Nginx documentation updates

New command for removing DMs and ban sending users

As we all have witnessed multiple nicoles in our DMs at this point, we added a command that can search through DMs with a query. Afterwards it will delete the found messages and band the sending user. Have a look at the documentation for more details.

We officially support PHP 8.4

Updated bare metal installation docs

We updated the docs to use the correct way of installing php on debian 12. We also mention installing php 8.4 there.


For App Developers

Add Id to push notifications

The push notification payload will now contain the corresponding notification id if there is one

Fix NotificationSettingApi

Previously you would always get a unauthorized response, this is now fixed

Add some endpoints to public access

These endpoints are now publicly accessible:

  • /api/info
  • /api/instance
  • /api/federated
  • /api/defederated
  • /api/dead
3
 
 

The v1.8.0 release of mbin brings a lot of new features, some of them quite big, so with these release notes I will dive a bit deeper into the bigger features.

For Users

Big new features

Bookmarks

You can now bookmark threads, microblogs and comments. But not just that, you can organize them in different lists.
When looking at a post you have this new bookmark icon next to the boost button:
A screenshot of a thread
The bookmark icon can be clicked to add it to your default list. If you don't have a default list, yet, a new one with the name "default" will be created (that can be changed later).
If you have multiple lists you can choose the list to add the bookmark to via the "more" button:
A screenshot of a thread, with the more menu displayed. There are 4 bookmark lists.
If a thread is bookmarked in any list, the icon will be colored orange. Clicking the button will remove the thread from all bookmark lists. In the more menu you can see which list(s) the thread is bookmarked to and remove it from specific lists.

To view the lists and create new ones you click on your user and click the "Bookmark Lists" link.
A screenshot of a thread

If you open a list you will see all content from this list combined: threads, microblogs and comments.
A list could look like this: A screenshot bookmark list with 3 bookmarked threads

Notification Settings per User/Magazine/Thread/Microblog

Underneath a user, magazine, thread and microblog you will notice a new widget to set the notification setting:
The new notification setting widget underneath the mbin releases magazine

The settings are (from left to right): muted, default and loud.

Default respects your global notification settings, while the other two modify it. They are processed hierarchically, meaning a muted user commenting on a loud thread which belongs to a muted magazine will not trigger a notification, while a loud or default user would. Another example: a muted thread in a loud magazine will not trigger a notification for new comments unless the commenting user is set to loud.

Inline Previews of linked posts

We added rich rendering of activity pub entities. That may sound very technical, but the gist of it is: if you mention a user or a magazine we will now render a component for it, with the avatar, the name, the hover preview, etc.
We did the same for threads, microblogs and comments. So when you put the "original URL" (ActivityPub id) in your post we will now render an inline preview of that post.

An example post with a lot of preview elements

This also allowed us to implement a new appearance setting to always display the domain of users and magazines (two separate settings).

We will change it a bit in v1.8.1 again so the inline previews do only trigger if the link text is the same as the URL, see GitHub Issue 1434.

Smaller features

Improved smartphone / touch experience

You do not have to click on the header of a thread anymore to open the thread, if you're on a touch device. Additionally you can now click on comments to open the page for it.

Related panels now respect the block settings

exactly that.

improved search experience

You can now filter the search results by the magazine it was posted to, the user authoring it and whether it is a thread or a microblog.

Default Sort Option

You can now set a default sort option for the front page and comment pages in your user settings.


For App Developers

Bookmark API

This API is tested and finished. The documentation can be found here and here.

Search API

The API gets the new search parameters as well: authorId, magazineId and type (docs).

Notification Settings

This API is not yet tested and will probably get a small revamp in v1.8.1

Nodeinfo endpoints are now available even if federation is disabled

The mbin nodeinfo endpoints (/.well-known/nodeinfo and /nodeinfo/2.1) were not accessible when federation is disabled, removing the only way to tell the mbin version of an instance. This is now fixed.


For Admins

Big new features

Signup Requests

You can now activate the new admin setting "New users have to be approved by an admin before they can log in.". After that users will be asked to supply an application text upon registration:

the register page with the new input "Application Text"

If you have the new signup notifications enabled you will get a link to jump to the new users signup request. Otherwise you can go there from the admin menu.

The signup requests page with one example entry

Smaller features

Signup Notifications

You can now enable/disable signup notifications in your user settings. They are enabled by default.

Image Delete Command

We now have a command to delete older federated images, see docs.

Nginx Config Fine Tuning

We have updated the Nginx config in our docs with an improved regex filter.

4
 
 

This is also a smaller bug fix release, but we have been working on new features for v1.8.0 for a while now and we are excited to share them with you. A very big thing with v1.7.4 is something that you will not notice unless you are a developer: we got the automated testing working (not again, for the first time). This will help us to identify issues easier and it should prevent regressions in the future. Here is what changed:

For Users

  • The search experience was improved a whole lot when searching for URLs from other servers. You will now see the result directly when the page is loaded
  • You will now get push notifications for reports
  • The magazine description and rules fields no longer have a minimum length
  • Our html to markdown parser now supports strikethrough tags. That was mainly a problem with mastodon, but also other software that does not send out the source markdown.

For App Developers

  • the local subsciber count is now exposed in the API

For Admins

  • The nginx and postgresql docs were updated
  • Most CLI commands are documented now
  • When a deliver to another server fails with a 4xx response code (other than 429) we will not do a retry anymore
  • Limit the federation of the random magazine even further so remote instances cannot find it anymore
  • Add a check for banned instances in more places so no requests will be made to the banned instances
  • If we receive an activity from an instance we consider to be dead it will be "revived"
  • removed the default url that was attached to all threads (there is also a command to remove it from existing entries: mbin:update:local-domain). It is mainly a performance consideration as the domain the url belongs to has to be updated for each created entry.
  • A newly created remote magazine could throw exceptions in the frontend rendering for admins, that is now fixed
  • Most logger calls now have their origin as a prefix for easier debugging
  • Added a command to create a magazine
5
 
 

We are excited to announce the latest release of Mbin; v1.7.3! It's a big patch release once again.
This version is focused on bug fixes and improvements rather than new features.

For Users

  • Able to use the toolbar editor during editing an existing thread
  • Improved federation page/overview
  • More stability on the server

For Admins

  • Improved PHP (max_children), Nginx (improved logging using map, upstream block for Mercure and open_file_cache) and PostgreSQL documentation (adding commit_delay config option and better defaults).
  • Better RabbitMQ messenger defaults
  • Fixed security Symfony audit & update all Symfony packages
  • Fixed self-delivery looping
  • Improved delivery handler by not rolling back InvalidApPostException exceptions
  • Fixed private comments retrieval via API
  • Fixed dead instance query (by allowing lastSuccessfulDeliver to be NULL)

More details can be found at: https://github.com/MbinOrg/mbin/releases

6
 
 

We are excited to announce the release of Mbin v1.7.2! This version focused on bug fixes rather than new features.

For Users

  • The CSRF issues are a thing of the past, so if you let mbin sit for a while you should still be able to vote and comment on things
  • You should now stay logged in for 4 months
  • the textarea toolbar now has a button for adding a spoiler
  • You should not get mention or created thread notifications by blocked users anymore
  • The body field of a thread is not marked as required anymore, so you can edit image or link posts that have no body

For Admins

  • Cleaned the prod.log so you don't get spammed with irrelevant information

  • We added down vote modes. You can set it to either

    • enabled (default): the current behaviour
    • hidden: downvotes are hidden, so there is no counter on the downvote buttons anymore, but they still get counted and they are still weighed into the sorting
    • disabled: downvote buttons are hidden and remote downvotes are not counted anymore, and they don't weigh into the sorting anymore
  • reduce invalid requests getting to controllers -> remove irrelevant errors

  • sessions are now stored in the DB instead of redis

  • Valkey is now listed in the docs as a valid redis replacement

7
 
 

We focused on fixing bugs this release and there were quite a few

For Users:

  • If you try to upload an image that is too large you will now get a proper error message. Additionally the maximum allowed file size is now displayed in the upload form
  • We changed our hashtag matching. What this does is match content (mostly from mastodon) to magazines by the hashtags the content uses. You can define such hashtags in the magazine panel. However previously each magazine had its own named predefined as a hashtag to match content against. We removed this behavior, since it was not intuitive and there was no way to turn it off. This meant a magazine like kbinMeta which had the magazine name meta would have matched every mastodon posts it gets containing the hashtag meta to this magazine
  • Fix a problem with editing content. If a magazine was hosted on an mbin server it would not allow a user to edit it's own content, because of some faulty conditions. This is now fixed
  • Fix a wrong like/dislike/boost count on peertube videos
  • If you delete your account (but do not select the "instant" option) you can just login to your account to restore it

For Admins:

  • There was an error when saving the admin settings, that should be fixed by now (if you're not jumping from release to release then you might have a MAX_IMAGE_BYTES setting of 0 right now (just be aware of it in case of image upload problems)
  • In the user panel you now have a view for banned and suspended accounts
  • there is now a command for setting a users password: mbin:user:password <user> <password>
  • you can now activate/verify accounts in the UI
  • you can now configure the trusted proxies via TRUSTED_PROXIES
  • You should not get any content of the banned instances anymore. Previously you could get the content anyways for example if a user from another instance liked content from a banned instances.
  • Fix messenger deadlocks caused by cache locks. For an explanation have a look at the fixing PR #1066
  • We now log the error message of an invalid register form for debugging

API

  • magazines now have a property isPostingRestrictedToMods
  • Add isAdmin and isGlobalModerator fields to user api response
  • Add field to all content response DTOs: canAuthUserModerate
8
 
 

We just released v1.7.0 of #mbin which brings a lot of federation improvements and additions (DMs, pins, #PeerTube support, ...), a lot better scaling, a new federation page, push notifications and a lot more.
A detailed list of changes can be seen in the @mbinReleases magazine.

I think this is our biggest release, yet.

9
 
 

This release has been in the works for 2 months after v1.6.0. Since the last release we've added the https://joinmbin.org website.

For Users

  • Full federation with PeerTube: threads are created for new uploads, synced likes, dislikes and comments

  • Direct messages will work across servers now, supporting lemmy instances (mastodon private mentions are not working, yet). We added a button on the profile page of users as well

  • we completely redesigned the messages view to resemble a chat interface

  • Pinning and unpinning entries will now federate

  • We now support push notifications. They can be enabled on the notifications page (/settings/notifications). If you do not see a button for enabling push notifications, that usually means that your browser does not support them

  • New supported languages: Brazilian Portuguese, Danish, Filipino, Galician

  • Modlog changes:

    • the instance wide modlog now includes the magazine in which the moderator action occurred
    • adding and removing a moderator are now shown in the modlog
  • creating threads on magazines can now be restricted to moderators and we added support for remote magazines that already have this setting enabled

  • Add a cake day display on the profile page and the user popup

  • we increased the cookie lifetime, so you do not have to login as regular as before (7 days -> 3 weeks)

  • you can now hide the related panels via the appearence settings

  • there are now notifications for reports

    • created: admins, global mods, magazine mods
    • approved: reported user
  • When editing a thread that is posted to a remote magazine hosted on an mbin instance the edit will now correctly federate

  • We updated the federation page. It now shows federated, defederated and dead instances. It also shows the software and the version of it the instance is running on

  • When editing your profile or a magazines profile, your changes should be visible on remote instances nearly instantly

  • we show a leaf icon next to users and magazines which have been active for less than 30 days now

  • when editing a thread you can now edit all fields

  • fix the aggressive fetching of the URL field when editing it


For Admins

  • New SSO Providers: Authentik, Privacy Portal and Discord (check out the new SSO docs)
  • Admins can now see when a remote actor was last updated
  • The "Table too large for buffer" error should be a thing of the past
  • We updated the robots.txt, using the user-agent blocklist of the nginx-ultimate-bad-bot-blocker
  • Change how the messengers are connecting to the DB. They now Connect for one message and disconnect right after handling that message. That creates a higher load on the DB, but it allows for scaling the messengers. Previously the locks a messenger creates would only ever be released when the messenger process restarts (once per hour), which often caused every messenger but one to go into a wait state. So for big servers this should result in much better scaling for the background workers. You might want to check out pgbouncer which optimizes opening and closing connections
  • If you delete a remote user, this user cannot be recreated anymore and every incoming activity with a deleted user as the actor will be rejected
  • Admins can now see the last sucessful delivery and receive date on the /federation page
  • We updated the Redis docs with a suggested configuration
  • You can now set the maximum size of images via the .env file: MAX_IMAGE_BYTES. The default is 6,000,000 bytes