• beta-0.910 0fd492852c

    beta-0.910 Pre-release

    loweel released this 2026-05-25 11:57:51 +02:00 | 41 commits to main since this release

    Release notes for beta-0.910

    This release covers the changes after beta-0.902, up to commit
    0f7e7b4b.

    Features

    • Added optional IPFS-backed media distribution. Local storage remains
      authoritative, while public local media can also be added to a configured Kubo
      node and exposed with the Aktor-specific AKT_IPFS_CID URL hint.
    • Added remote IPFS media import for federated Aktor instances. When an incoming
      attachment URL contains AKT_IPFS_CID, Aktor can fetch the bytes through its
      configured Kubo API, validate them through the normal media pipeline, store
      them locally, and then serve the attachment from the local fileserver.
    • Introduced a modular remote media hint layer so IPFS is only the first backend
      implementation. The same structure can later support other content-addressed
      or remote distribution systems such as torrent-style hashes or Syncthing-like
      backends.
    • Added generic remote media hint metadata to attachment storage while retaining
      compatibility with the IPFS-specific fields used by this release.
    • Added explicit IPFS runtime observability. When IPFS mode is configured,
      startup logs now report Kubo RPC probe success or failure, and each local
      media processing job logs whether it was added to IPFS and which CID was
      produced.
    • Added plain-text editor surfaces for post composition and administrative text
      fields, including terms and conditions, instance description, and profile bio
      editing. These editors preserve plain text, newlines, and blank lines without
      converting user text into HTML.
    • Added EAL5+-style function and test preambles across several Go source
      batches, documenting function purpose, preconditions, postconditions,
      invariants, and test assertions to make the inherited GoToSocial code easier
      to audit and maintain.

    Fixes

    • Fixed local follow lookup for newly approved local accounts by accepting local
      account handles in the follow lookup path. This keeps local follows from
      failing with a spurious 404 when the target account exists locally.
    • Tightened signup approval so approval notifications and admin approval flow
      are gated on email confirmation. Unconfirmed accounts remain pending and can be
      cleaned up by the inactive-account cleanup task instead of becoming approved
      users too early.
    • Improved public profile rendering so long post bodies are constrained by their
      frame instead of overflowing the containing layout.
    • Improved public-page color contrast, including cases where red text on blue,
      white text on white, or similarly low-contrast combinations made public pages
      and blocked-server pages hard to read.
    • Unified Settings people-list rendering to avoid inconsistent account/admin
      list behavior between panels.
    • Rejected malicious remote media hints whose CID bytes do not validate as
      supported media. A URL that looks like an image but resolves to non-media or
      executable-like bytes now fails the normal media processing path instead of
      becoming a usable local attachment.

    Documentation

    • Documented the IPFS/Kubo deployment model in IPFS.md, including a ready to
      use Docker Compose example, required Aktor environment variables, Kubo ports,
      and which ports must remain private.
    • Documented the IPFS federation behavior: AKT_IPFS_CID is a fetch hint only;
      after a successful remote fetch, the receiving Aktor instance stores and
      serves the media locally.
    • Documented the IPFS privacy/performance tradeoff. IPFS can behave like a
      distributed CDN for public media while reducing repeated origin-server
      downloads, but it is not anonymity; IPFS logs may reveal interest in a CID at
      the node/network level without reliably identifying the final user or the
      original publisher.
    • Updated INSTALL.md and IPFS.md with the optional IPFS media mode, remote
      media hint configuration, local-storage authority model, and greppable IPFS:
      operational log markers.

    Tests and quality

    • Added IPFS media contract smoke coverage for the happy path and failure path.
    • Added regression coverage for non-media bytes fetched through a remote media
      hint.
    • Added an end-to-end IPFS runtime smoke test that starts a real Kubo container,
      uploads media through Aktor, creates a public post, verifies that the
      serialized media URL contains AKT_IPFS_CID, and verifies that the server logs
      contain the IPFS: startup/add markers.
    • Re-ran the full smoke suite during the IPFS implementation work and verified
    Downloads