#ActivityPub 95 hashtags

Todd SundstedWeek in Fediverse :fediverse_light:
Todd Sundsted
Release v3.12.1 of Ktistec

Release v3.12.1 patches a bug that's been present for about two years and fixes issue #163 in the process. Looking at FediDB, it appears most servers on v3.X.X made it through the upgrade to v3.5.0, which is where the bug would have bitten, but the consequences of the bug are annoying enough that a patch is warranted.

Changed

  • Gather query planner statistics on startup and before reconciling materialized views.

Up-to-date query statistics ensure that the expensive migration in v3.5.0 completes in seconds or minutes, instead of hours!

#ktistec #crystallang #activitypub #fediverse

Todd Sundsted
Release v3.12.0 of Ktistec

This release encompasses two broad sets of changes: widening the pool of candidates for feeds and more carefully checking the origin of inbound activities (broadly FEP-fe34, Origin-based security model).

Candidates for feeds were originally limited to posts in the actor's mailboxes. This decision made authorization easy but omitted clearly acceptable posts (for example, posts addressed to the public collection) that arrived via other means (for example, filling in a thread).

Prior to this release, inbox processing did not consistently define an object's origin nor did it apply consistent rules to what it admitted based on the origin.

FEP-fe34 is still not fully enforced, and truth be told, I'm still reviewing some of its mandates, so I'm not yet listing it in Ktistec's federation documentation.

Here's the full list of changes:

Added

  • Notify a deck pane when it has new posts.

Fixed

  • Retry an unresolved quote authorization.
  • Label a draft with the status of its quote request.
  • Compare origins when deciding whether to trust an IRI, key document, or owner.
  • Ignore a trailing slash when matching a dereferenced document's IRI.
  • Allow only Create and Update to update objects.
  • Ignore an inbound vote that fails the FEP-9967 checks.
  • Expand commonly omitted ActivityStreams context terms.
  • Break a long link rather than let it overflow.

Changed

  • Widen the feed scan to every object the server holds.
  • Address a published feed by slug rather than by id.

Removed

  • The proxyUrl property from the actor document.

I am still working hard on the feed deck. Both notifications and feed ordering now work. It's now my preferred reading interface, and should be ready by the next release!

#ktistec #crystallang #activitypub #fediverse

Todd SundstedWeek in Fediverse :fediverse_light:
Todd Sundsted
Release v3.11.0 of Ktistec

Despite the fact that a shared inbox is an optional actor endpoint, some servers assume Mastodon and deliver to /inbox instead of the actor's inbox. Okay, fine. This release of Ktistec includes support for shared inboxes.
🖐️🎤

Here's the full changelog:

Added

  • Accept inbound activities at a shared inbox.
  • Bound the time an inbound activity spends fetching remote objects.
  • Collapse long posts behind a generated summary.

Fixed

  • Keep a repeat follow request from ignoring the response already sent.
  • Fix poll's closed namespace, and treat closed and endTime interchangeably.
  • Remove geometry adjustments from the highlighted CSS class.

Changed

  • Be more liberal with the timestamp formats accepted.

My current passion project is the Ktistec feed deck—multiple, parallel panes in the same window, each displaying an algorithmic feed. It will be in usable shape in time for the next release.

#ktistec #crystallang #activitypub #fediverse

Todd Sundsted
Release v3.10.0 of Ktistec

The last two releases of Ktistec added backend and frontend support for algorithmic feeds. This release adds polish and links it into the navigation alongside posts, drafts, and bookmarks.

Algorithmic feeds are feeds that include (and exclude) posts with certain keywords, hashtags, and mentions. They are built on top of the materialized views that I introduced a few months ago. And they're fast!

The implementation will evolve toward something that looks like Mastodon's advanced web interface, Misskey antennas, or Friendica channels.

Here's the full changelog:

Added

  • Link to feeds index page from secondary menu.
  • Garbage collect abandoned feed drafts and orphaned feed state.
  • Backfill feeds with historical posts.

Fixed

  • Quote post request, authorization, and release fixes.
  • Recognize a swipe anywhere in the image viewer.

Changed

  • Feed editor usability improvements.
  • Bust the asset cache when a bundle's contents change.

I'm currently deep in adding shared inbox support. A few servers insist on delivering to /inbox (whether or not Ktistec actors advertise a shared inbox).

#ktistec #crystallang #activitypub #fediverse

Todd SundstedWeek in Fediverse :fediverse_light:
Todd SundstedWeek in Fediverse :fediverse_light:
Todd Sundsted
Release v3.9.0 of Ktistec

I shipped back-end support for algorithmic feeds in the last release. In this release I shipped front-end support. The feature needs testing and polish, so it's still not possible to navigate to the feeds editor, but if you know where to look, you can try it 😉.

"Algorithmic feeds" currently means support for custom hashtag, mention, and keyword feeds (e.g everything that mentions "#fediverse" and "#activitypub" but not "x" or "facebook").

Here's the full changelog:

Added

  • Front-end support for user-defined algorithmic feeds.
  • Allow editing optional properties on published posts.
  • Support undoing a dislike.

Fixed

  • Handle concurrent duplicate inbox delivery.
  • Don't apply custom themes on the drafts and posts pages.
  • Adapt duration units in thread analysis.
  • Restore the spinning loader.

Changed

  • Restrict theme overrides to color and reduce reliance on !important.
  • Render the homepage description in a basic segment.

Removed

  • The deliver_to state and the recipients fallback.

In the next release, algorithmic feeds get wired into the navigation!

#ktistec #crystallang #activitypub #fediverse

Todd SundstedWeek in Fediverse :fediverse_light: