Index: CHANGELOG.de.md
===================================================================
--- CHANGELOG.de.md	(revision 2fbced58835a45e2ef377871ef6b623b91b4b168)
+++ CHANGELOG.de.md	(revision c8e3b98d12da4f750449f678be44c60d3b79ccb6)
@@ -6,7 +6,61 @@
 ## [Unreleased]
 
-## [1.7.0] · 2026-08-07
-
-### Hinzugefügt
+## [1.7.0] · 2026-08-21
+
+### Hinzugefügt
+- **Deine Musik reist als Musik, nicht als Verweis darauf.** Ein Track ging als
+  Notiz mit angehängter Datei über die Leitung, ein fremder Server sah also Text
+  mit Anhang und nichts, was sagte: „das ist eine Veröffentlichung dieser
+  Künstlerin oder dieses Künstlers“. Tracks sind jetzt vollwertige Audio-Objekte,
+  ein Album ist ein eigenes Objekt auf der Leitung, und der Outbox trägt die
+  Diskografie mit. Playlists föderieren als ActivityPub-Sammlungen und sind als
+  solche auffindbar. Die Formen folgen dem, was Funkwhale bereits spricht, damit
+  eine Klonkt-Veröffentlichung in einer Funkwhale-Bibliothek landet, statt
+  verworfen zu werden.
+- **Der Beitrag ist die Veröffentlichung.** Einzelne Tracks in einem Beitrag
+  werden zu einer Sammlung, Veröffentlichungsdatum und MusicBrainz-Release-ID
+  reisen mit, und die Hashtags werden aus dem Rohtext gelesen statt aus der
+  gesetzten Fassung — deshalb kamen sie vorher als Unsinn an, oder gar nicht.
+- **Beanspruche dich selbst in MusicBrainz.** Unter Verwaltung → Audio kannst du
+  dich suchen und bestätigen, dass du das bist. Die Verknüpfung geht als
+  `schema:sameAs` auf die Leitung, sodass andere Server dein Klonkt mit der
+  Künstlerin oder dem Künstler verbinden können, die oder der du anderswo längst
+  bist.
+- **Die ganze Seite als Musikkanal.** `/tracks.xml` veröffentlicht alles, was du
+  herausgebracht hast, als einen Feed — für Player, die RSS sprechen und kein
+  ActivityPub.
+- **Zieh mit deinem Konto um und nimm alles mit (FEP-1580).** Deine Beiträge,
+  deine Audios, die Cover, die Playlists und die GUIDs ziehen mit, deine
+  Folgeliste reist als CSV zum Hochladen oder Einfügen, und die Guardianship zieht
+  vor dem Folgen um — in der anderen Reihenfolge stand ein Ward kurz ohne
+  Aufsicht da. Ein umgezogenes Konto verriegelt die ausgehende Seite, damit von
+  einer Adresse, die du nicht mehr nutzt, nichts Neues mehr abgeht. Das steht
+  jetzt auf einer Seite, in Schritten, statt verstreut.
+- **Eine Leseansicht, neben Zeitleiste und Raster.** Ein Beitrag füllt den
+  Bildschirm, die Nachbarn stehen links und rechts bereit, und das Scrollen
+  rastet am oberen Rand des nächsten Beitrags ein. Jede Seite entscheidet selbst:
+  Lesen, Zeitleiste, oder Zeitleiste am Rechner und Lesen am Telefon.
+- **Gäste melden sich mit dem Konto an, das sie schon haben (OpenWebAuth).** Ein
+  Fan meldet sich über sein eigenes Klonkt an und wird hier Follower, nicht noch
+  ein Kontoinhaber mit noch einem Passwort. Zwei Klonkts können einander
+  anmelden, das funktioniert also in beide Richtungen.
+- **Acht Guardianship-Tore, die wirklich schalten.** Das Torpanel ist ein
+  Cockpit: jedes Tor sichtbar, jeder Chip trägt seinen eigenen Stand, und die
+  Apps wissen vorab, was zu ist. Antworten ist ein eigenes Tor, Folgeanfragen
+  werden bei mehreren Guardians per Mehrheit entschieden, ein Ward kann selbst
+  eine Frage stellen, und ein Logbuch bewahrt, warum eine Entscheidung fiel.
+- **Follower zuerst genehmigen, wenn du magst.** Eine Folgeanfrage wartet auf
+  dein Ja, und bis dahin sieht die anfragende Person nichts von deinen Beiträgen.
+- **Jede Sammlung paginiert.** Der Outbox liefert jetzt `first` und `last` und
+  blättert wirklich durch seine Seiten. Funkwhale wies ihn ohne diese beiden
+  rundweg ab — eine Sammlung ohne Paginierung war also kein Schönheitsfehler,
+  sondern eine verschlossene Tür.
+- **Gespräche wissen, was du gelesen hast.** Ungelesen zählt pro Gespräch, eine
+  Lesung ist ein Ereignis statt einer Vermutung, und eine wartende Lesung
+  antwortet mit der Differenz — kein Abholen einer ganzen Liste mehr, um eine
+  neue Zeile zu finden.
+- **Apple-Music- und YouTube-Playlists betten sauber ein**, mit derselben
+  Auswertung wie im Hub und einer Höhe, die zu dem passt, was du tatsächlich
+  eingebettet hast.
 - **Nachrichten ist eine einzige Gesprächsansicht.** Nachrichten, Gespräche und
   Gesendet waren drei getrennte Filter, wodurch ein Austausch auseinanderfiel:
@@ -36,4 +90,24 @@
 
 ### Behoben
+- **Der Verlauf unter einem fremden Beitrag wird über deinen eigenen Server
+  geholt und nie gespeichert.** Antworten, Like- und Boost-Status und die
+  FEP-9098-Emoji kommen jetzt mit, und die nächste Seite wird ebenfalls gelesen —
+  vorher brach ein langer Verlauf auf halber Strecke ab.
+- **Die Ratenbegrenzung zählte die ganze Seite statt der aufrufenden Stelle**,
+  sodass eine viel besuchte Seite allen 429er gab. Dazu gehört: ob du einem Proxy
+  traust, hängt davon ab, wo du läufst, nicht davon, ob du in Entwicklung oder
+  Produktion bist.
+- **Eine mitlaufende Uhr in der Antwort machte aus dem langen Poll eine
+  Schleife.** Die Antwort änderte sich jede Sekunde, also wartete er nie — er kam
+  nur immer wieder zurück.
+- **Der Editor übersteht einen Seitenwechsel.** An Elemente gebundene Module
+  starten bei jeder Navigation neu, die Bearbeitungsseite lädt ihren Editor nach
+  einem Zurück also wieder, und Speichern ohne Modul löscht nicht mehr, was du
+  geschrieben hattest.
+- **Ein Slug ist ein lokaler Schlüssel, kein Name auf der Leitung.** Halbe Namen,
+  fehlende Namen und drei Schreibweisen desselben Namens kamen alle daher, dass
+  das eine für das andere gehalten wurde.
+- **Der Zirkel fiel über ein Medienfeld, das keine Liste war**, und riss dann die
+  ganze Seite mit, statt nur diesen einen Beitrag.
 - **Menschen auf datenschutzstrengen Servern können dir wieder folgen.** Manche
   Server geben den öffentlichen Schlüssel eines Kontos nur an eine signierte
@@ -65,4 +139,24 @@
 
 ### Sicherheit
+- **Bezahlte Beiträge gaben ihren vollen Inhalt über den Outbox und den
+  Follower-Backfill preis.** Die Schwärzung selbst funktionierte; die Abfragen
+  reichten ihr eine Zeile ohne die Spalte `paid`, also las das Tor `undefined`,
+  ließ alles durch und sagte nichts. Beide Abfragen holen jetzt, worüber sie
+  entscheiden, und ein Test bewacht die Art des Fehlers statt dieses einen Falls.
+- **Fan-only-Beiträge gingen mit einem öffentlichen Etikett hinaus.** Sie waren
+  richtig adressiert, aber falsch beschrieben — und so einen Widerspruch löst ein
+  fremder Server genau in die falsche Richtung auf.
+- **Ein Leck zwischen Seiten im Tracker-Export.** Eine Seite kam über den
+  Exporter an die Zeilen einer anderen.
+- **Das Playlist-Tor öffnet jetzt nur noch Dateien der Seite selbst.**
+- **Ein Schlüssel ist an den Akteur gebunden, für den er spricht.** Eine Signatur
+  wird nur akzeptiert, wenn Schlüssel, Eigentümer und Akteur übereinstimmen;
+  vorher konnte ein Schlüssel für jemanden bürgen, zu dem er keine Beziehung
+  hatte.
+- **OpenWebAuth entpackt PKCS#1 v1.5 selbst**, ohne frühen Ausstieg und mit einer
+  Obergrenze für Versuche. Node hat den Padding-Modus, der das erledigte,
+  entfernt, weil er über Timing leckt (CVE-2023-46809, der Marvin-Angriff); es
+  von Hand zu tun hält den Pfad gleich lang und schließt das Orakel, statt es
+  wieder zu öffnen.
 
 - **Aktualisierte Komponenten schließen sieben Sicherheitshinweise.** Der
Index: CHANGELOG.md
===================================================================
--- CHANGELOG.md	(revision 2fbced58835a45e2ef377871ef6b623b91b4b168)
+++ CHANGELOG.md	(revision c8e3b98d12da4f750449f678be44c60d3b79ccb6)
@@ -6,7 +6,52 @@
 ## [Unreleased]
 
-## [1.7.0] · 2026-08-07
-
-### Added
+## [1.7.0] · 2026-08-21
+
+### Added
+- **Your music travels as music, not as a link to it.** A track used to federate
+  as a note with a file hanging off it, so a remote server saw a text with an
+  attachment and nothing that said "this is a release by this artist". Tracks are
+  now first-class Audio objects, an album is its own object on the wire, and the
+  outbox carries the discography. Playlists federate as ActivityPub collections
+  and are discoverable as such. The shapes follow what Funkwhale already speaks,
+  so a Klonkt release lands in a Funkwhale library instead of being dropped.
+- **A post is the release.** Loose tracks in one post are gathered into a
+  collection, the release date and the MusicBrainz release id ride along, and the
+  hashtags are read from the raw text rather than the rendered version — which is
+  why they used to arrive as nonsense, or not at all.
+- **Claim yourself in MusicBrainz.** Under Admin → Audio you can look yourself up
+  and confirm "this is me". The link goes on the wire as `schema:sameAs`, so
+  other servers can tie your Klonkt to the artist you already are elsewhere.
+- **The whole site as a music channel.** `/tracks.xml` publishes everything you
+  released as one feed, for players that speak RSS rather than ActivityPub.
+- **Take your account somewhere else, and take everything with you (FEP-1580).**
+  Your posts, your audio, the covers, the playlists and the GUIDs all move, your
+  following list travels as a CSV you can upload or paste, and the guardianship
+  moves before the follow does — the other order left a ward briefly unwatched.
+  A moved account locks on the outgoing side, so nothing new leaves an address
+  you no longer use. It is one page now, in steps, instead of scattered options.
+- **A reading view, next to Timeline and Grid.** One post fills the screen, the
+  neighbours stand ready on either side, and scrolling snaps to the top of the
+  next post. Each site chooses for itself: reading, timeline, or timeline on
+  desktop with reading on a phone.
+- **Guests can sign in with the account they already have (OpenWebAuth).** A fan
+  logs in through their own Klonkt and becomes a follower here, not another
+  account holder with another password. Two Klonkts can introduce each other, so
+  this works in both directions.
+- **Eight guardianship gates that actually switch.** The gate panel is a cockpit:
+  every gate visible, each chip carrying its own state, and the apps are told
+  what is gated before they try. Replying is its own gate, follow requests are
+  decided by majority when there are several guardians, a ward can raise a
+  question itself, and a logbook keeps the reason a decision was made.
+- **Approve followers first, if you want to.** A follow request waits for your
+  yes, and until then the requester sees none of your posts.
+- **Every collection paginates.** The outbox now serves `first` and `last` and
+  really walks its pages. Funkwhale refused it outright without them, so an
+  unpaginated collection was not a cosmetic issue but a closed door.
+- **Conversations know what you have read.** Unread is counted per conversation,
+  a read is an event rather than a guess, and a waiting read answers with the
+  difference — no more polling for a whole list to find one new line.
+- **Apple Music and YouTube playlists embed properly**, with the same parsing the
+  hub uses and a height that matches what you actually embedded.
 - **Messages is one conversation view.** Messages, Conversations and Sent were
   three separate filters, so a single exchange fell apart: what you sent sat
@@ -32,4 +77,19 @@
 
 ### Fixed
+- **The thread under a remote post is fetched through your own server and never
+  stored.** Replies, like and boost status and the FEP-9098 emoji now come along,
+  and the next page is read too — before, a long thread stopped halfway.
+- **The rate limiter counted the whole site instead of the caller**, so a busy
+  site handed out 429s to everyone. Related: whether to trust a proxy belongs to
+  where you run, not to whether you are in development or production.
+- **A live clock in the response turned the long poll into a loop.** The answer
+  changed every second, so it never waited — it just kept coming back.
+- **The editor survives a page change.** Modules wired to elements restart on
+  every navigation, so the edit page loads its editor again after a back button,
+  and saving without a module no longer wiped what you wrote.
+- **A slug is a local key, not a name on the wire.** Half names, missing names
+  and three spellings of the same name all came from treating one as the other.
+- **The circle fell over on a media field that was not a list**, which took the
+  whole page with it rather than the one post.
 - **People on privacy-strict servers can follow you again.** Some servers only
   hand out an account's public key to a signed request. Klonkt asked without
@@ -58,4 +118,22 @@
 
 ### Security
+- **Paid posts leaked their full content through the outbox and the follower
+  backfill.** The redaction itself worked; the queries handed it a row without
+  the `paid` column, so the gate read `undefined`, waved everything through and
+  said nothing. Both queries now select what they decide on, and a test guards
+  the class of mistake rather than this one instance of it.
+- **Fan-only posts went out with a public label.** They were addressed correctly
+  but described as public, which is exactly the sort of contradiction a remote
+  server resolves in the wrong direction.
+- **A cross-tenant leak in the tracker export.** One site could reach another
+  site's rows through the exporter.
+- **The playlist gate now opens only files that belong to the site itself.**
+- **A key is bound to the actor it speaks for.** A signature is only accepted
+  when the key, its owner and the actor agree; before, a key could vouch for
+  someone it had no relationship with.
+- **OpenWebAuth unpacks PKCS#1 v1.5 itself**, without an early exit and with a
+  cap on attempts. Node removed the padding mode that used to do this because it
+  leaks timing (CVE-2023-46809, the Marvin attack); doing it by hand keeps the
+  path constant-time and closes the oracle rather than reopening it.
 
 - **Updated components close seven security advisories.** The heaviest one sat
Index: CHANGELOG.nl.md
===================================================================
--- CHANGELOG.nl.md	(revision 2fbced58835a45e2ef377871ef6b623b91b4b168)
+++ CHANGELOG.nl.md	(revision c8e3b98d12da4f750449f678be44c60d3b79ccb6)
@@ -6,7 +6,57 @@
 ## [Unreleased]
 
-## [1.7.0] · 2026-08-07
-
-### Toegevoegd
+## [1.7.0] · 2026-08-21
+
+### Toegevoegd
+- **Je muziek reist als muziek, niet als een verwijzing ernaartoe.** Een track
+  ging de draad op als een bericht met een bestand eraan, dus een andere server
+  zag tekst met een bijlage en niets wat zei "dit is een uitgave van deze
+  artiest". Tracks zijn nu volwaardige Audio-objecten, een album is een eigen
+  object op de draad, en de outbox draagt de discografie mee. Playlists federeren
+  als ActivityPub-collecties en zijn als zodanig vindbaar. De vormen volgen wat
+  Funkwhale al spreekt, zodat een Klonkt-uitgave in een Funkwhale-bibliotheek
+  belandt in plaats van te worden weggegooid.
+- **De post is de uitgave.** Losse tracks in één post worden een collectie, de
+  uitgavedatum en het MusicBrainz release-id gaan mee, en de hashtags worden uit
+  de ruwe tekst gelezen in plaats van uit de opgemaakte versie — daardoor kwamen
+  ze eerder als onzin binnen, of helemaal niet.
+- **Claim jezelf in MusicBrainz.** Bij Beheer → Audio kun je jezelf opzoeken en
+  bevestigen dat jij dat bent. De koppeling gaat als `schema:sameAs` de draad op,
+  zodat andere servers je Klonkt kunnen verbinden met de artiest die je elders al
+  bent.
+- **De hele site als muziekkanaal.** `/tracks.xml` publiceert alles wat je hebt
+  uitgebracht als één feed, voor spelers die RSS spreken en geen ActivityPub.
+- **Verhuis je account, en neem alles mee (FEP-1580).** Je berichten, je audio,
+  de hoezen, de playlists en de GUID's gaan mee, je volglijst reist als CSV die
+  je kunt uploaden of plakken, en de guardianship verhuist vóór de follow — in de
+  andere volgorde stond een ward even zonder toezicht. Een verhuisd account gaat
+  op slot aan de uitgaande kant, zodat er niets nieuws vertrekt vanaf een adres
+  dat je niet meer gebruikt. Het staat nu op één pagina, in stappen, in plaats
+  van verspreid.
+- **Een leesweergave, naast Tijdlijn en Grid.** Eén bericht vult het scherm, de
+  buren staan links en rechts klaar, en het scrollen snapt naar de bovenkant van
+  het volgende bericht. Elke site kiest zelf: lezen, tijdlijn, of tijdlijn op
+  desktop met lezen op een telefoon.
+- **Gasten loggen in met het account dat ze al hebben (OpenWebAuth).** Een fan
+  meldt zich aan via zijn eigen Klonkt en wordt hier volger, geen extra
+  accounthouder met nog een wachtwoord. Twee Klonkts kunnen elkaar aanmelden, dus
+  dit werkt in beide richtingen.
+- **Acht guardianship-poorten die echt schakelen.** Het poortenpaneel is een
+  cockpit: elke poort zichtbaar, elke chip draagt zijn eigen stand, en de apps
+  weten vooraf wat er dichtstaat. Antwoorden is een eigen poort, volgverzoeken
+  worden bij meerderheid beslist als er meerdere guardians zijn, een ward kan
+  zelf een vraag stellen, en een logboek bewaart waaróm een besluit viel.
+- **Volgers eerst goedkeuren, als je dat wilt.** Een volgverzoek wacht op jouw
+  ja, en tot die tijd ziet de aanvrager niets van je berichten.
+- **Elke collectie pagineert.** De outbox serveert nu `first` en `last` en
+  bladert echt door zijn pagina's. Funkwhale weigerde hem zonder die twee
+  ronduit, dus een collectie zonder paginering was geen schoonheidsfoutje maar
+  een dichte deur.
+- **Gesprekken weten wat je gelezen hebt.** Ongelezen telt per gesprek, een
+  lezing is een gebeurtenis in plaats van een gok, en een wachtende lezing
+  antwoordt met het verschil — niet langer een hele lijst ophalen om één nieuwe
+  regel te vinden.
+- **Apple Music- en YouTube-playlists sluiten netjes in**, met dezelfde parsing
+  als de hub en een hoogte die past bij wat je werkelijk insluit.
 - **Berichten is één gesprekkenweergave.** Berichten, Gesprekken en Verzonden
   waren drie losse filters, waardoor één uitwisseling uit elkaar viel: wat jij
@@ -34,4 +84,23 @@
 
 ### Opgelost
+- **De draad onder een vreemde post wordt via je eigen server opgehaald en nooit
+  bewaard.** Antwoorden, like- en booststatus en de FEP-9098-emoji komen nu mee,
+  en de volgende pagina wordt ook gelezen — eerder stopte een lange draad
+  halverwege.
+- **De snelheidsbegrenzer telde de hele site in plaats van de beller**, waardoor
+  een drukke site iedereen 429's gaf. Daarbij hoort: of je een proxy vertrouwt
+  hangt af van waar je draait, niet van of je in ontwikkeling of productie zit.
+- **Een levende klok in het antwoord maakte van de lange poll een lus.** Het
+  antwoord veranderde elke seconde, dus hij wachtte nooit — hij kwam alleen maar
+  terug.
+- **De editor overleeft een paginawissel.** Modules die aan elementen hangen
+  starten bij elke navigatie opnieuw, dus de bewerkpagina laadt zijn editor weer
+  na een terugknop, en opslaan zonder module wist niet langer wat je had
+  geschreven.
+- **Een slug is een lokale sleutel, geen naam op de draad.** Halve namen,
+  ontbrekende namen en drie spellingen van dezelfde naam kwamen er allemaal uit
+  voort dat het een voor het ander werd aangezien.
+- **De cirkel viel om op een mediaveld dat geen lijst was**, en nam dan de hele
+  pagina mee in plaats van dat ene bericht.
 - **Mensen op privacy-strenge servers kunnen je weer volgen.** Sommige servers
   geven de publieke sleutel van een account alleen aan een ondertekend verzoek.
@@ -61,4 +130,23 @@
 
 ### Beveiliging
+- **Betaalde posts lekten hun volledige inhoud via de outbox en de
+  volger-backfill.** De redactie zelf werkte; de queries gaven hem een rij zónder
+  de kolom `paid`, dus las de poort `undefined`, liet alles door en zei niets.
+  Beide queries halen nu op waarop ze beslissen, en een test bewaakt de soort
+  fout in plaats van dit ene geval.
+- **Fan-only posts gingen de deur uit met een publiek etiket.** Ze waren juist
+  geadresseerd maar verkeerd omschreven, en zo'n tegenspraak lost een andere
+  server precies de verkeerde kant op.
+- **Een lek tussen sites in de tracker-export.** De ene site kon via de exporter
+  bij de rijen van een andere.
+- **De playlist-poort opent nu alleen bestanden van de site zelf.**
+- **Een sleutel is gebonden aan de actor waarvoor hij spreekt.** Een handtekening
+  wordt alleen aanvaard als de sleutel, zijn eigenaar en de actor het eens zijn;
+  eerder kon een sleutel instaan voor iemand waar hij geen relatie mee had.
+- **OpenWebAuth pakt PKCS#1 v1.5 zelf uit**, zonder vroege uitgang en met een
+  grens op het aantal pogingen. Node heeft de padding-modus die dit deed
+  verwijderd omdat die via timing lekt (CVE-2023-46809, de Marvin-aanval); het
+  met de hand doen houdt het pad even lang en sluit het orakel in plaats van het
+  opnieuw te openen.
 
 - **Bijgewerkte onderdelen sluiten zeven beveiligingsadviezen.** Het zwaarste
