Bonumark Stream v0.8.2 Is Here

Bonumark Stream v0.8.2 is now available on GitHub, with more consistent Likes and comments, clearer ActivityPub administration, and better protection for your work when publishing fails. It also fixes several smaller problems with images, text selection, and accessibility that get in the way of using a publishing system every day.

Making Bonumark Better to Use

I built Bonumark Stream because I wanted the speed of a social feed on a website I controlled. My posts live on my domain, in my database, with my own archive. In v0.8.1, optional ActivityPub support opened that publishing system to the fediverse.

Using it exposed things that needed to work better. An approved reply could appear beneath a post while the comment count still said zero. A Like from the fediverse could reach Bonumark without contributing to the public total. Following another account took more digging through the administration page than it should have.

v0.8.2 addresses those problems and several others I found while publishing, managing media, and reading my own site. Some changes matter most to people using federation. Others help anyone running Bonumark, whether ActivityPub is enabled or not.

Likes and Comments Now Tell the Same Story

A visitor should not have to understand how Bonumark stores interactions to make sense of a number beside a post. If an approved reply is visible in the conversation, the comment count should include it. That was not consistently happening.

v0.8.2 combines approved public local comments and eligible federated replies into one Comment total. Eligible local and remote Likes also contribute to one Like total. Those totals follow the same rules across the public interface, including when interactions change without a full page reload.

This changes a decision I explained in the v0.8.1 announcement. At the time, I defended keeping remote Likes separate because a fediverse Like and an anonymous local Like come from different participation models. That distinction still matters inside the application, but using the product showed me that it did not justify leaving valid remote Likes out of the public number.

The underlying interactions remain distinct. Combining the displayed count does not create local accounts for remote people or expose private reaction identities. It gives readers a more useful total for the post they are looking at. Fuller comment identity information and clearer dates also make it easier to understand who replied and when.

The count also needs to change when an interaction stops qualifying. Undoing a remote Like reduces the total. Replies awaiting moderation stay out of the public count, as do deleted, private, blocked, or otherwise ineligible interactions. Interactions belonging to an older, retired federated publication do not carry over to a new one.

Conversation Replies Stay Out of the Main Stream

I want to participate in conversations from Bonumark without turning my main Stream into a list of replies that make little sense on their own. Someone visiting my site should be able to browse the short-form work I intentionally publish there.

In v0.8.2, owner replies to fediverse posts stay out of the ordinary main Stream, pinned list, and archives. They still exist as local publications, retain their Bonumark permalinks, and remain attached to the conversation they belong to.

That means I can reply to somebody on Mastodon, have the reply arrive under the correct post, and still keep my public Stream focused. The reply is not private or discarded. It simply does not become an ordinary item in the main feed. The separate Following timeline remains private.

ActivityPub Admin Follows the Owner’s Tasks

The ActivityPub Admin page had become technically useful and visually exhausting. Diagnostics, signing details, delivery records, and permanent deactivation were competing for attention with things I actually needed to do regularly.

The page now starts with the federated profile and its status, then organizes Following, Followers, reply moderation, and federation settings into a clearer sequence. Diagnostics and delivery activity remain available, but they no longer dominate routine administration.

Delivery records are split into pages instead of producing a long wall of entries. Important failures remain visible, and permanent deactivation sits in a separate, collapsed Danger Zone. Following another account should not require working past controls that can retire your federation identity.

The language is clearer too. ActivityPub may call an identity an “Actor,” but “federated profile” is more useful to someone managing a site. The protocol detail is still there when it helps explain a problem.

A Failed Publish Should Not Take Your Writing With It

During testing, an emoji-rich post failed to publish. The database already supported the characters. The problem was in how Bonumark processed text while generating metadata, where valid Unicode could be broken before it reached storage.

v0.8.2 corrects that processing. Emoji and other Unicode text should survive metadata generation without turning an ordinary post into a publishing error.

That failure also exposed a separate problem: the composer could lose what had just been entered. Fixing the original error would not have protected the next person who encountered a different failure.

Rejected or failed submissions now retain editable input so the owner can correct the problem. When an asynchronous submission fails without leaving the page, selected files are retained too. A full page navigation still requires selecting those files again.

Bonumark also tracks submission outcomes to protect against duplicate saves. If a post was saved but the response was interrupted, blindly sending it again is not a safe recovery strategy. The composer now handles that uncertainty instead of treating every missing confirmation as permission to create another post.

Clearer Image Descriptions and Media Reporting

Image descriptions had a similar failure pattern. An alt description longer than the existing limit could produce a generic error and disappear from the form. The limit already existed, but the interface was not explaining it properly.

v0.8.2 explicitly validates the existing 255-character limit, measured in Unicode code points, and keeps rejected Admin input available for correction. Authored descriptions and deliberately empty values are preserved. Missing descriptions no longer automatically inherit the post title or excerpt, which may say nothing useful about the image.

Media-usage reporting has also been corrected. An image could be visible in a published gallery while its Media Edit screen reported no current content reference. That is a bad answer to give someone deciding which files they still need.

The report now correctly includes current post and Page galleries, along with legacy import references. If usage cannot be checked, Bonumark reports that it is unavailable instead of presenting a misleading zero.

There is still a boundary to that report. It does not cover every Profile or revision-history reference, and it does not certify that permanent deletion is safe. It is a clearer account of current post and Page usage.

Reading and Interacting Feel Less Awkward

Bonumark lets visitors click blank space on a Stream card to open the post. That convenience became a nuisance when selecting text could also trigger navigation. I should be able to copy a sentence without being taken somewhere else.

Stream cards now respect text selection and pointer drags while keeping blank-space navigation available. Links, media, and other controls retain their own behavior. I checked text selection and copying on an actual phone as part of accepting this release.

The accessibility work goes further than that visible fix. v0.8.2 improves page landmarks and skip destinations, gives untitled posts better semantic structure, and makes comment loading, errors, and status changes clearer to assistive technology. Focus handling and background updates are also more careful about preserving what someone is doing.

Like controls now use visible “Like” and “Liked” wording. These changes live in Bonumark core because the application is responsible for how its controls and document structure work across themes.

Automated checks, accessibility-tree inspection, loading behavior, and focus handling were verified. Actual screen-reader listening remains unverified.

Upgrading From v0.8.1

v0.8.2 adds no database migration. The upgrade from public v0.8.1 retains the existing schema and migration history, and it uses Bonumark’s established Admin ZIP or owner-run upgrade process.

The release package passed a fresh installation and an upgrade from public v0.8.1, followed by application and federation checks. Replies threaded correctly with Mastodon, approved incoming replies contributed to the Comment total, and remote Like totals changed correctly after Undo. I also checked mobile layout and usability.

My own site at JimLunsford.net is now running v0.8.2. I upgraded through the normal Admin ZIP updater, with my content, media, configuration, custom theme, and ActivityPub identity preserved. The production System Check finished with 39 passes, no warnings, and no failures.

Before upgrading your own installation, have a verified backup and follow the project’s upgrade instructions. Download the packaged bonumark-stream-v0.8.2.zip asset from the release page.

Get Bonumark Stream v0.8.2

v0.8.1 gave Bonumark a way to participate in the fediverse. v0.8.2 improves what happens when you actually use that connection, and it strengthens the publishing and media workflows underneath it.

That is the work this release needed. The counts should match the conversation. The controls should be understandable. A failed submission should leave you with a way to recover your work.

Bonumark Stream v0.8.2 is available now on GitHub. The release page includes the downloadable package and full release notes, and the project repository contains the source and documentation. You can see my own Bonumark site in daily use at JimLunsford.net.


New Here?

Read Next:


Get the Work
Articles on discipline, recovery, identity, and ownership. Delivered when published.