Changeset c8e3b98 in Klonkt for CHANGELOG.md


Ignore:
Timestamp:
08/21/2026 07:21:09 AM (3 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
1294c36
Parents:
2fbced5
Message:

Changelog: 1.7.0 dekt nu ook de 226 commits na de bump

De sectie stond op 07-08 en beschreef alleen de toestand van toen, terwijl de
release-commit 234 commits terug ligt en er sindsdien geen enkele
changelog-commit is geweest. Uitgebreid in nl/en/de en de datum meegezet.

Wat erbij komt, kort: muziek federeert als muziek (Audio-objecten, albums,
playlist-collecties, Funkwhale-vormen), accountmigratie met alles erin
(FEP-1580), de leesweergave, gastlogin via OpenWebAuth, acht werkende
guardianship-poorten, paginering op elke collectie, en zes beveiligingsfixes
waarvan het lek in betaalde posts de zwaarste is.

Co-Authored-By: Claude Opus 5 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CHANGELOG.md

    r2fbced5 rc8e3b98  
    66## [Unreleased]
    77
    8 ## [1.7.0] · 2026-08-07
    9 
    10 ### Added
     8## [1.7.0] · 2026-08-21
     9
     10### Added
     11- **Your music travels as music, not as a link to it.** A track used to federate
     12  as a note with a file hanging off it, so a remote server saw a text with an
     13  attachment and nothing that said "this is a release by this artist". Tracks are
     14  now first-class Audio objects, an album is its own object on the wire, and the
     15  outbox carries the discography. Playlists federate as ActivityPub collections
     16  and are discoverable as such. The shapes follow what Funkwhale already speaks,
     17  so a Klonkt release lands in a Funkwhale library instead of being dropped.
     18- **A post is the release.** Loose tracks in one post are gathered into a
     19  collection, the release date and the MusicBrainz release id ride along, and the
     20  hashtags are read from the raw text rather than the rendered version — which is
     21  why they used to arrive as nonsense, or not at all.
     22- **Claim yourself in MusicBrainz.** Under Admin → Audio you can look yourself up
     23  and confirm "this is me". The link goes on the wire as `schema:sameAs`, so
     24  other servers can tie your Klonkt to the artist you already are elsewhere.
     25- **The whole site as a music channel.** `/tracks.xml` publishes everything you
     26  released as one feed, for players that speak RSS rather than ActivityPub.
     27- **Take your account somewhere else, and take everything with you (FEP-1580).**
     28  Your posts, your audio, the covers, the playlists and the GUIDs all move, your
     29  following list travels as a CSV you can upload or paste, and the guardianship
     30  moves before the follow does — the other order left a ward briefly unwatched.
     31  A moved account locks on the outgoing side, so nothing new leaves an address
     32  you no longer use. It is one page now, in steps, instead of scattered options.
     33- **A reading view, next to Timeline and Grid.** One post fills the screen, the
     34  neighbours stand ready on either side, and scrolling snaps to the top of the
     35  next post. Each site chooses for itself: reading, timeline, or timeline on
     36  desktop with reading on a phone.
     37- **Guests can sign in with the account they already have (OpenWebAuth).** A fan
     38  logs in through their own Klonkt and becomes a follower here, not another
     39  account holder with another password. Two Klonkts can introduce each other, so
     40  this works in both directions.
     41- **Eight guardianship gates that actually switch.** The gate panel is a cockpit:
     42  every gate visible, each chip carrying its own state, and the apps are told
     43  what is gated before they try. Replying is its own gate, follow requests are
     44  decided by majority when there are several guardians, a ward can raise a
     45  question itself, and a logbook keeps the reason a decision was made.
     46- **Approve followers first, if you want to.** A follow request waits for your
     47  yes, and until then the requester sees none of your posts.
     48- **Every collection paginates.** The outbox now serves `first` and `last` and
     49  really walks its pages. Funkwhale refused it outright without them, so an
     50  unpaginated collection was not a cosmetic issue but a closed door.
     51- **Conversations know what you have read.** Unread is counted per conversation,
     52  a read is an event rather than a guess, and a waiting read answers with the
     53  difference — no more polling for a whole list to find one new line.
     54- **Apple Music and YouTube playlists embed properly**, with the same parsing the
     55  hub uses and a height that matches what you actually embedded.
    1156- **Messages is one conversation view.** Messages, Conversations and Sent were
    1257  three separate filters, so a single exchange fell apart: what you sent sat
     
    3277
    3378### Fixed
     79- **The thread under a remote post is fetched through your own server and never
     80  stored.** Replies, like and boost status and the FEP-9098 emoji now come along,
     81  and the next page is read too — before, a long thread stopped halfway.
     82- **The rate limiter counted the whole site instead of the caller**, so a busy
     83  site handed out 429s to everyone. Related: whether to trust a proxy belongs to
     84  where you run, not to whether you are in development or production.
     85- **A live clock in the response turned the long poll into a loop.** The answer
     86  changed every second, so it never waited — it just kept coming back.
     87- **The editor survives a page change.** Modules wired to elements restart on
     88  every navigation, so the edit page loads its editor again after a back button,
     89  and saving without a module no longer wiped what you wrote.
     90- **A slug is a local key, not a name on the wire.** Half names, missing names
     91  and three spellings of the same name all came from treating one as the other.
     92- **The circle fell over on a media field that was not a list**, which took the
     93  whole page with it rather than the one post.
    3494- **People on privacy-strict servers can follow you again.** Some servers only
    3595  hand out an account's public key to a signed request. Klonkt asked without
     
    58118
    59119### Security
     120- **Paid posts leaked their full content through the outbox and the follower
     121  backfill.** The redaction itself worked; the queries handed it a row without
     122  the `paid` column, so the gate read `undefined`, waved everything through and
     123  said nothing. Both queries now select what they decide on, and a test guards
     124  the class of mistake rather than this one instance of it.
     125- **Fan-only posts went out with a public label.** They were addressed correctly
     126  but described as public, which is exactly the sort of contradiction a remote
     127  server resolves in the wrong direction.
     128- **A cross-tenant leak in the tracker export.** One site could reach another
     129  site's rows through the exporter.
     130- **The playlist gate now opens only files that belong to the site itself.**
     131- **A key is bound to the actor it speaks for.** A signature is only accepted
     132  when the key, its owner and the actor agree; before, a key could vouch for
     133  someone it had no relationship with.
     134- **OpenWebAuth unpacks PKCS#1 v1.5 itself**, without an early exit and with a
     135  cap on attempts. Node removed the padding mode that used to do this because it
     136  leaks timing (CVE-2023-46809, the Marvin attack); doing it by hand keeps the
     137  path constant-time and closes the oracle rather than reopening it.
    60138
    61139- **Updated components close seven security advisories.** The heaviest one sat
Note: See TracChangeset for help on using the changeset viewer.