Post by @stefano

A new build of littleFedi (2026.10.13) is out!

We've made several changes based on reports from our friends on this instance, feedback from those who have started self-hosting, and code reviews by the Little Computer People.

Here's a non-exhaustive changelog:

  • Alt text changed while editing a post from a Mastodon client (Mastodon web,
    Phanpy, Elk, Ivory, Tusky and others) was silently dropped. It is now saved
    and sent to other servers with the edit.
  • Alt text of images already attached to a post can now be edited from the web
    composer.
  • When a remote author adds or changes alt text by editing a post, the change
    now shows up here too. Before, the post kept its old description, and stayed
    hidden for anyone filtering out media without alt text.
  • PUT /api/v1/media/:id can now clear a description, and refuses media that
    is already attached to a post, as Mastodon does. Use the status edit instead.
  • Alt text is limited to 1500 characters on the server too, not only in the
    browser. Longer remote descriptions are cut at the same length. The limit is
    reported as description_limit in /api/v2/instance.
  • Media without alt text now report description as null in the API, so
    clients no longer show an empty ALT badge.
  • New Favourites page in the web interface, in the main menu, listing the
    posts you liked, most recent first.
  • Paging through /api/v1/favourites skipped or repeated posts after the
    first page. It now continues from the last post shown, like bookmarks.
  • When the timeline tabs or the top menu do not fit on one line, they now
    show only their icons. Before, some themes cut the last items off or split
    them over two rows.
  • Keep the canonical instance actor URL public in secure and allowlist modes,
    fixing a key-fetch deadlock with other authorized-fetch servers.
  • With split domains, /api/v1/instance now reports the handle domain as uri,
    and actors carry a webfinger property with their canonical handle.
  • Hashtags can now be followed from the search in Settings > Followed hashtags,
    even before any post uses them. Hashtag pages with non-ASCII names, such as
    #caffè, now open and follow correctly.
  • New [web] redirect_guests_to_about sends signed-out visitors from / to
    /about, and [web] public_blog_directory = false puts /blogs and its
    sitemap index behind the login.
  • public_local_timeline = false now also hides the links to the local
    timeline and asks for login on /public/local and when scrolling, not only
    on /.
  • Signed-out visitors could load the federated and bubble timelines through
    the scrolling endpoint. They now get the login page.
  • Moved profiles now show the destination and replace Follow with a link to
    the new account. Old posts remain accessible, and cached account data is
    refreshed as soon as the move is saved.
  • Move notifications now show and link to the destination, while the account
    name still opens the original profile. Moves by different users stay in
    separate notification rows when grouping is enabled.
  • Cached timelines now pick up new posts when blog publishing is enabled,
    without waiting for the page cache to expire. Incoming boosts also update
    open timelines through streaming.
  • Profile bios can now contain up to 5,000 characters in the web editor,
    up from 500.
  • The notifications page now has a Mark all as read button.
    Clear all still deletes them.
  • Follows imported from CSV are now saved before the upload is confirmed and
    resume after a restart. Settings and the API show progress, existing follows
    and failed lookups. Follow requests and their outgoing deliveries are saved
    together, and only one import can run per account. This uses the existing
    database schema.
  • CSV files over migration.max_follows_import are now rejected instead of
    being silently truncated. Set the limit to 0 to import the whole file.
  • CSV imports now leave an internal notification when they finish or stop
    after a terminal error, with a summary and a link to that import. Retries
    do not duplicate the notice; no email or push is sent.
  • Multiple Mastodon API Fixes
  • Replies in the web interface now keep the original post's content warning,
    both in the timeline and on the thread page.
  • Media can be added to a post by dragging files onto the composer or by
    pasting an image, as well as with the file picker. Files dropped elsewhere
    on the page go to the main composer instead of replacing the page.

Enjoy!

#littleFedi #Fediverse

👍 1 ❤️ 1
Replying to @littlefedi_official
chris
@chris @social.inzeiten.de

@littlefedi_official
with
'public_local_timeline = false'
the timeline is still accessible through the user profile
Littlefedi is meant as single-user-by-default instance, thereby the posts in the profile are the local timeline, still public.

@chris@social.inzeiten.de @littlefedi_official@littleone.littlefedi.social That’s a fair point. On a single-user instance, the profile gives visitors access to much the same posts as the local timeline, so disabling the timeline doesn’t hide those posts.

The idea behind public_local_timeline is to let the administrator decide whether visitors can browse the instance's local timeline without signing in. You might want the front page to lead to an About page or a login screen while keeping your public profile and posts available to share.

Also, littleFedi defaults to a single-user setup, but it supports multi-user instances too. In that case, the local timeline brings together posts from different local accounts, while each profile shows that account’s posts. Restricting the shared timeline while leaving individual profiles public is a useful distinction.

Still, I can see how the setting's name could suggest more than it actually does. We should make that clearer in the configuration example.

It leaves profiles, individual posts, the API and federation unchanged. It controls access to the web timeline; it doesn't make public posts private.

Replying to @stefano
chris
@chris @social.inzeiten.de

@stefano @littlefedi_official The expectation is to keep the timeline/posts off the public web ui, regardless the exact url path, so they can't be browsed there.
This is a deliberate choice to post publicly to ActivityPub/Fedi (or to share only selected posts in the web ui via the blog) but not having all the posts and comments sitting there in a single place for those who are not members of the Fedi community to watch and judge.
I know that this is not a security feature, but it is about choice what media propagation channels to serve or not (and to me it is a sufficient vibe check to keep tourists and nosy people away).