Changeset c8e3b98 in Klonkt for CHANGELOG.md
- Timestamp:
- 08/21/2026 07:21:09 AM (3 weeks ago)
- Branches:
- main
- Children:
- 1294c36
- Parents:
- 2fbced5
- File:
-
- 1 edited
-
CHANGELOG.md (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
CHANGELOG.md
r2fbced5 rc8e3b98 6 6 ## [Unreleased] 7 7 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. 11 56 - **Messages is one conversation view.** Messages, Conversations and Sent were 12 57 three separate filters, so a single exchange fell apart: what you sent sat … … 32 77 33 78 ### 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. 34 94 - **People on privacy-strict servers can follow you again.** Some servers only 35 95 hand out an account's public key to a signed request. Klonkt asked without … … 58 118 59 119 ### 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. 60 138 61 139 - **Updated components close seven security advisories.** The heaviest one sat
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)