Changeset eb5f978 in Klonkt for CHANGELOG.md


Ignore:
Timestamp:
06/27/2026 01:58:39 PM (2 months ago)
Author:
Robin Genis <roboburr@…>
Branches:
main
Children:
98fe58a
Parents:
0960c1d
Message:

feat(changelog): i18n the public changelog (English base + nl/de)

  • CHANGELOG.md — now the English base (translated from Dutch), the source of truth going forward.
  • CHANGELOG.nl.md — the previous Dutch changelog, kept as the Dutch translation.
  • CHANGELOG.de.md — German translation.
  • routes/changelog.js — serve CHANGELOG.<lang>.md for the visitor's language, fall back to the English base; title/empty-message via i18n.
  • services/i18n.js — changelog.title + changelog.empty (nl/en/de).
File:
1 edited

Legend:

Unmodified
Added
Removed
  • CHANGELOG.md

    r0960c1d reb5f978  
    1 # Wijzigingen — Klonkt
     1# Changelog — Klonkt
    22
    3 Alle noemenswaardige wijzigingen aan Klonkt. Nieuwste bovenaan.
    4 Versies volgen [SemVer](https://semver.org/lang/nl/) (`1.0.0-beta.N` tijdens de beta).
     3All notable changes to Klonkt. Newest at the top.
     4Versions follow [SemVer](https://semver.org/) (`1.0.0-beta.N` during the beta).
    55
    6 > **Twee losse versienummers — niet verwarren:**
    7 > - **App-versie** (deze changelog + footer, `package.json`) = cosmetisch; bump elke release.
    8 > - **Federatie-proto** (`KLONKT_PROTO` in `CircleFederation.js`, nu **2**) = bepaalt of
    9 >   Klonkt-sites in elkaars **cirkel** kunnen federeren (zit in de getekende grondslag).
    10 >   Een app-versie-bump verandert de proto **niet** en breekt cirkels dus niet. Bump de
    11 >   proto **alleen** bij federatie-/security-wijzigingen, en rol die dan in **lockstep**
    12 >   uit naar álle instances (incl. de democirkels) zodat ze blijven samenwerken.
     6> **Two separate version numbers — don't confuse them:**
     7> - **App version** (this changelog + footer, `package.json`) = cosmetic; bump every release.
     8> - **Federation proto** (`KLONKT_PROTO` in `CircleFederation.js`, now **2**) = determines whether
     9>   Klonkt sites can federate into each other's **circle** (it's part of the signed basis).
     10>   An app-version bump does **not** change the proto and therefore doesn't break circles. Bump the
     11>   proto **only** for federation/security changes, and then roll it out in **lockstep**
     12>   to all instances (including the democircles) so they keep working together.
    1313
    1414## [Unreleased]
    1515
    16 ### Toegevoegd
    17 - Zoeken doorzoekt nu ook **nummers** (op titel, artiest én album), niet alleen posts.
    18   Gevonden nummers zijn direct afspeelbaar in de resultatenlijst, met een
    19   "in post →"-link naar de post/album/playlist waarin het nummer voorkomt.
    20 - Posts-zoek gebruikt nu **prefix-matching**: typ "astr" en je vindt "astra"
    21   (elk woord als prefix, AND tussen de woorden) — fijner zoeken-terwijl-je-typt.
    22 - **Fediverse-client**: volg accounts (WebFinger → ondertekende Follow), een
    23   **home-tijdlijn** (`/tijdlijn`) van wie je volgt, een **meldingen-inbox**
    24   (`/meldingen`), en ⭐-like / 🔁-boost / ↩-reageren vanuit de tijdlijn.
    25 - **Liken én reageren via de fediverse** op een post: bezoekers vullen alleen
    26   hun eigen server in (`@jij@server` of `server.com`) en handelen het af op hun
    27   eigen account (`/authorize_interaction`).
    28 - **HTTP-handtekeningen afgedwongen** op de inbox: ongetekende of vervalste
    29   activiteiten worden geweigerd — geen nep-reacties/likes/volgers meer.
    30 - **Blokkeren/defedereren** van een account of een heel domein (`/blokkeren`).
    31 - **Live thema-preview** in Beheer → site-instellingen: accent, thema en palet
    32   meteen zichtbaar vóór je opslaat.
     16### Added
     17- Search now also covers **tracks** (by title, artist and album), not just posts.
     18  Found tracks are directly playable in the results list, with an
     19  "in post →" link to the post/album/playlist the track appears in.
     20- Posts search now uses **prefix matching**: type "astr" and you'll find "astra"
     21  (each word as a prefix, AND between the words) — nicer search-as-you-type.
     22- **Fediverse client**: follow accounts (WebFinger → signed Follow), a
     23  **home timeline** (`/tijdlijn`) of who you follow, a **notifications inbox**
     24  (`/meldingen`), and ⭐-like / 🔁-boost / ↩-reply from the timeline.
     25- **Like and reply via the fediverse** on a post: visitors only fill in
     26  their own server (`@you@server` or `server.com`) and handle it on their
     27  own account (`/authorize_interaction`).
     28- **HTTP signatures enforced** on the inbox: unsigned or forged
     29  activities are rejected — no more fake replies/likes/followers.
     30- **Block/defederate** an account or an entire domain (`/blokkeren`).
     31- **Live theme preview** in Admin → site settings: accent, theme and palette
     32  visible immediately before you save.
    3333
    34 ### Gewijzigd
    35 - **Paletten herzien** naar 8: de neutrale **Klonkt** (wit/zwart, gouden accent)
    36   is nu de standaard, plus 7 echte-kleur thema's (Forest, Ocean, Teal, Lilac,
    37   Sunset, Candy, Amber). Accent-keuze opgeschoond; de Klonkt-achtergrond volgt
    38   nu de gekozen accentkleur.
     34### Changed
     35- **Palettes revised** to 8: the neutral **Klonkt** (white/black, gold accent)
     36  is now the default, plus 7 real-color themes (Forest, Ocean, Teal, Lilac,
     37  Sunset, Candy, Amber). Accent choice cleaned up; the Klonkt background now
     38  follows the chosen accent color.
    3939
    40 ### Verwijderd
    41 - **Hub-modus** verwijderd — Klonkt is voortaan **solo of cirkels**. Een
    42   collectief/label maak je nu via **Cirkels** (gefedereerde losse sites).
    43 - **Native reacties + Google-login** verwijderd — interactie loopt nu volledig
    44   via de **fediverse**.
    45 - **Lokale favorieten (♥)** verwijderd — vervangen door de ⭐ fediverse-like.
     40### Removed
     41- **Hub mode** removed — Klonkt is now **solo or circles**. You now create a
     42  collective/label via **Circles** (federated standalone sites).
     43- **Native comments + Google login** removed — interaction now runs entirely
     44  via the **fediverse**.
     45- **Local favorites (♥)** removed — replaced by the ⭐ fediverse like.
    4646
    47 ### Opgelost
    48 - Mini-speler: spring + scroll naar de spelende track werkt nu ook vanuit een
    49   **album of playlist** (de track-id zat niet in de afspeel-queue).
    50 - De track die nu speelt krijgt een **blijvende highlight** in de post.
    51 - Lege **album/playlist-covers** hersteld (een gemiste verwijzing in de
    52   WebP-conversie) + ze vallen nu terug op de cover van de eerste track.
    53 - Kapotte **avatar/profielfoto** in de kop na de WebP-conversie: de viewer-avatar
    54   (en rol) wordt nu vers uit de database gelezen, dus een oude sessie herstelt
    55   zichzelf zonder opnieuw inloggen.
     47### Fixed
     48- Mini player: jump + scroll to the playing track now also works from an
     49  **album or playlist** (the track id wasn't in the playback queue).
     50- The currently playing track now gets a **persistent highlight** in the post.
     51- Empty **album/playlist covers** fixed (a missed reference in the
     52  WebP conversion) + they now fall back to the cover of the first track.
     53- Broken **avatar/profile photo** in the header after the WebP conversion: the viewer avatar
     54  (and role) is now read fresh from the database, so an old session repairs
     55  itself without logging in again.
    5656
    57 ### Opgelost (eerder)
    58 - Inline content-layout op touch versimpeld: geen opmaak-toolbar/rand meer inline
    59   (je bewerkt toch fullscreen) — alleen de content-preview + de tik-om-te-bewerken-pill.
    60 - Kon niet scrollen op de bewerk-pagina: de fullscreen scroll-lock (overflow:hidden
    61   op html/body) bleef hangen. Lock verwijderd — het fullscreen-frame dekt de pagina
    62   al af en op touch zijn de scrollbalken verborgen.
    63 - Fullscreen verlaten scrolt nu naar de top van de content (i.p.v. door te springen
    64   naar de footer).
    65 - "Tik om te bewerken"-aanwijzing op touch is nu een pill die sticky onderaan de
    66   container plakt (boven de Opslaan-balk) i.p.v. lelijk gecentreerd in de tekst.
    67 - Scrollbalken verborgen op mobiel & tablet (touch) — scrollen blijft werken,
    68   alleen de balk-UI is weg (geen verwarrende/dubbele balken).
    69 - Fullscreen-editor: geen dubbele scrollbalk meer — in fullscreen scrollt alléén
    70   het tekstveld; het frame en de pagina (html+body) erachter zijn vergrendeld.
    71 - Editor: het beeld verspringt niet meer bij het aanklikken van een opmaakknop.
    72   Op mobiel is het schrijfveld nu een begrensde scroll-box met de opmaak-toolbar
    73   STICKY bovenin: de tekst scrollt eronder, de toolbar blijft altijd in beeld, en
    74   de caret-scroll die mobiel Chrome forceert blijft binnen de box i.p.v. de hele
    75   pagina te laten verspringen. (Plus: scrollpositie wordt vastgehouden rond elk
    76   opmaak-commando.) `interactive-widget=resizes-content` weer verwijderd — dat liet
    77   de pagina omhoog scrollen voor het toetsenbord en brak de kb-open-detectie; de
    78   actiebalk + fullscreen regelen het toetsenbord via de visual viewport.
    79 - Post-editor op mobiel: de Opslaan/Annuleren-balk blijft nu net bóven het
    80   toetsenbord (sticky met dynamische bottom-offset = max van toetsenbord- en
    81   audiospeler-hoogte), i.p.v. erachter te vallen of midden in beeld te zweven.
    82   Viewport schaalt mee met het toetsenbord (`interactive-widget=resizes-content`).
    83 - Mobiel toetsenbord vs. layout (site-breed): zodra het toetsenbord opent tijdens
    84   het typen, verbergen de vaste onderbalken (bottom-tab + mini-speler) zich, zodat
    85   ze niet meer over het invoerveld zweven of het overlappen. Ze komen terug zodra
    86   het toetsenbord sluit. (Detectie via visualViewport → `body.kb-open`.)
    87 - Post bewerken op mobiel opende niet meer meteen het toetsenbord: de titel kreeg
    88   niet langer automatisch focus (`autofocus` weg). Op desktop focust de titel nog wel.
    89 - Posts schrijven op mobiel: een opmaakknop (vet/cursief/…) stal de focus uit het
    90   tekstveld → de selectie ging verloren (vet kon niet meer uitgezet worden) en de
    91   pagina sprong naar beneden. De toolbar houdt de focus nu in de editor
    92   (mousedown-preventDefault + focus zonder scroll), dus toggelen werkt en er is geen
    93   sprong meer. Toolbar-taps zijn ook sneller (touch-action: manipulation). Actieve
    94   opmaak is nu duidelijk gevuld met de accentkleur (en :hover plakt niet meer op
    95   touch), zodat zichtbaar is of bv. vet aan of uit staat.
     57### Fixed (earlier)
     58- Inline content layout on touch simplified: no formatting toolbar/border inline
     59  anymore (you edit fullscreen anyway) — only the content preview + the tap-to-edit pill.
     60- Couldn't scroll on the edit page: the fullscreen scroll lock (overflow:hidden
     61  on html/body) stayed stuck. Lock removed — the fullscreen frame already covers the page
     62  and on touch the scrollbars are hidden.
     63- Leaving fullscreen now scrolls to the top of the content (instead of jumping
     64  down to the footer).
     65- The "tap to edit" hint on touch is now a pill that sticks to the bottom of the
     66  container (above the Save bar) instead of being ugly-centered in the text.
     67- Scrollbars hidden on mobile & tablet (touch) — scrolling still works,
     68  only the bar UI is gone (no confusing/duplicate bars).
     69- Fullscreen editor: no more double scrollbar — in fullscreen only the
     70  text field scrolls; the frame and the page (html+body) behind it are locked.
     71- Editor: the view no longer jumps when clicking a formatting button.
     72  On mobile the writing field is now a bounded scroll box with the formatting toolbar
     73  STICKY at the top: the text scrolls underneath it, the toolbar always stays in view, and
     74  the caret scroll that mobile Chrome forces stays within the box instead of making the whole
     75  page jump. (Plus: scroll position is held around each
     76  formatting command.) `interactive-widget=resizes-content` removed again — it made
     77  the page scroll up for the keyboard and broke the kb-open detection; the
     78  action bar + fullscreen handle the keyboard via the visual viewport.
     79- Post editor on mobile: the Save/Cancel bar now stays just above the
     80  keyboard (sticky with a dynamic bottom offset = max of keyboard and
     81  audio-player height), instead of falling behind it or floating in the middle of the screen.
     82  Viewport scales with the keyboard (`interactive-widget=resizes-content`).
     83- Mobile keyboard vs. layout (site-wide): as soon as the keyboard opens while
     84  typing, the fixed bottom bars (bottom-tab + mini player) hide themselves, so
     85  they no longer float over or overlap the input field. They come back as soon as
     86  the keyboard closes. (Detection via visualViewport → `body.kb-open`.)
     87- Editing a post on mobile no longer immediately opened the keyboard: the title no longer
     88  gets automatic focus (`autofocus` removed). On desktop the title still focuses.
     89- Writing posts on mobile: a formatting button (bold/italic/…) stole the focus from the
     90  text field → the selection was lost (bold couldn't be turned off anymore) and the
     91  page jumped down. The toolbar now keeps the focus in the editor
     92  (mousedown-preventDefault + focus without scroll), so toggling works and there's no
     93  more jump. Toolbar taps are also faster (touch-action: manipulation). Active
     94  formatting is now clearly filled with the accent color (and :hover no longer sticks on
     95  touch), so it's visible whether e.g. bold is on or off.
    9696
    97 ### Toegevoegd
    98 - Afbeeldingen → **WebP**: nieuwe uploads (post-afbeeldingen/cover, avatar, site-foto,
    99   hub-hero, audio-cover) worden automatisch naar WebP omgezet (kleiner); bestaande
    100   afbeeldingen zijn in één keer omgezet en alle verwijzingen bijgewerkt.
    101 - Afbeeldingen zijn **lastiger op te slaan** (rechtsklik-"opslaan" + slepen
    102   geblokkeerd) — frictie, geen waterdichte beveiliging.
    103 - Mini-speler (desktop): klik op de spelende track → **spring naar de post én scroll
    104   naar die track** (met highlight); werkt ook voor site-brede tracks via een lookup.
    105 - Tekstvelden (`<textarea>`) groeien nu site-breed mee met de inhoud i.p.v. intern
    106   te scrollen (scroll-binnen-scroll was verwarrend). Het inline schrijfveld groeit
    107   ook gewoon mee; typen op mobiel/tablet gaat sowieso fullscreen.
    108 - Op **mobiel & tablet** (touch) gedraagt de inhoud zich als een post: inline is het
    109   **niet typbaar** (tap-vlak met "✎ Tik om te bewerken"-pill). Eén tik opent een
    110   **fullscreen schrijf-"pagina"** — met echte back-knop-ondersteuning, dus de
    111   browser-back of de **"✓ Klaar"-knop** sluit 'm en je staat terug in het formulier
    112   (alle velden intact), waarna je alles samen opslaat met de gewone Opslaan-knop.
    113 - Schrijfvenster kan op **volledig scherm** (knop in de editor-toolbar, of Escape om
    114   terug te gaan) — fijn voor afleidingsvrij schrijven op mobiel. De opmaak-toolbar
    115   blijft daarbij altijd bovenaan in beeld, ook als het mobiele toetsenbord opent
    116   (frame volgt de visual viewport).
    117 - Beheerder kan z'n **Google-account koppelen** (Account → Inloggen met Google) en
    118   daarna óók met Google inloggen. Veilig: koppelen kan alleen terwijl je met
    119   wachtwoord bent ingelogd, en Google-login geeft alleen beheer als de exacte
    120   gekoppelde Google-account (`google_sub`) matcht. Ontkoppelen kan zolang er een
    121   wachtwoord is.
    122 - Posts liken / favorieten: ingelogde gebruikers kunnen een post liken met een ♥-knop
    123   (toont het aantal likes). Je gelikete posts staan op de nieuwe **Favorieten**-pagina
    124   (`/favorieten`, link in het accountmenu). Niet-ingelogd → de knop leidt naar de login.
     97### Added
     98- Images → **WebP**: new uploads (post images/cover, avatar, site photo,
     99  hub hero, audio cover) are automatically converted to WebP (smaller); existing
     100  images were converted in one go and all references updated.
     101- Images are **harder to save** (right-click "save" + dragging
     102  blocked) — friction, not watertight protection.
     103- Mini player (desktop): click the playing track → **jump to the post and scroll
     104  to that track** (with highlight); also works for site-wide tracks via a lookup.
     105- Text fields (`<textarea>`) now grow site-wide with the content instead of scrolling
     106  internally (scroll-within-scroll was confusing). The inline writing field also grows
     107  along naturally; typing on mobile/tablet goes fullscreen anyway.
     108- On **mobile & tablet** (touch) the content behaves like a post: inline it is
     109  **not typable** (tap area with a "✎ Tap to edit" pill). One tap opens a
     110  **fullscreen writing "page"** — with real back-button support, so the
     111  browser back or the **"✓ Done" button** closes it and you're back in the form
     112  (all fields intact), after which you save everything together with the normal Save button.
     113- The writing window can go **fullscreen** (button in the editor toolbar, or Escape to
     114  go back) — nice for distraction-free writing on mobile. The formatting toolbar
     115  always stays at the top of the view, even when the mobile keyboard opens
     116  (frame follows the visual viewport).
     117- The admin can link their **Google account** (Account → Sign in with Google) and
     118  then also log in with Google. Safe: linking is only possible while you're logged in
     119  with a password, and Google login only grants admin access if the exact
     120  linked Google account (`google_sub`) matches. Unlinking is possible as long as there's a
     121  password.
     122- Liking / favoriting posts: logged-in users can like a post with a ♥ button
     123  (shows the number of likes). Your liked posts are on the new **Favorites** page
     124  (`/favorieten`, link in the account menu). Not logged in → the button leads to the login.
    125125
    126 ### Gewijzigd
    127 - Post-navigatie (Newer/Older) toont nu een 📌 als de gelinkte post vastgepind is.
    128 - De Newer/Older-postnavigatie staat nu óók op de fan-gate (login-wall van een
    129   fan-only post), zodat een bezoeker niet vastloopt maar verder kan bladeren.
    130   Nav verhuisd naar een gedeeld partial (`partials/post-nav.ejs`).
    131 - Login gesplitst: de publieke loginpagina (`/auth/login`) toont voor bezoekers nu
    132   **alleen** Google-login (luisteraars/fans). De beheerders-login (gebruikersnaam +
    133   wachtwoord) staat verborgen op `/auth/admin` (nergens gelinkt).
    134 - Post-navigatie (Newer/Older) houdt nu op elke post dezelfde twee-kaarten-structuur:
    135   ontbreekt er een nieuwere/oudere post, dan staat er een subtiele uitgegrijsde
    136   placeholder ("Nieuwste post" / "Oudste post") i.p.v. een lege plek.
    137 - Bij het openen van een gerelateerde/volgende post spring je nu naar boven van de
    138   pagina (was: je bleef op de oude scrollpositie hangen).
     126### Changed
     127- Post navigation (Newer/Older) now shows a 📌 if the linked post is pinned.
     128- The Newer/Older post navigation now also appears on the fan gate (login wall of a
     129  fan-only post), so a visitor doesn't get stuck but can keep browsing.
     130  Nav moved to a shared partial (`partials/post-nav.ejs`).
     131- Login split: the public login page (`/auth/login`) now shows visitors
     132  **only** Google login (listeners/fans). The admin login (username +
     133  password) is hidden at `/auth/admin` (not linked anywhere).
     134- Post navigation (Newer/Older) now keeps the same two-card structure on every post:
     135  if a newer/older post is missing, there's a subtle grayed-out
     136  placeholder ("Newest post" / "Oldest post") instead of an empty space.
     137- When opening a related/next post you now jump to the top of the
     138  page (was: you stayed stuck at the old scroll position).
    139139
    140140## [1.0.0-beta.2] — 2026-06-19
    141141
    142 Eerste release waarbij we de versie actief bijhouden (zichtbaar in de footer →
    143 klik erop voor deze pagina). Federatie-proto: **2** (ongewijzigd).
     142First release where we actively track the version (visible in the footer →
     143click it for this page). Federation proto: **2** (unchanged).
    144144
    145 ### Toegevoegd
    146 - Release-tracking: versienummer in de footer linkt naar deze wijzigingen-pagina.
    147 - Acht premium-functies (Patreon-gegate): nieuwsbrief/mailinglijst, download-voor-email,
    148   release-planning + fan-only previews, EPK/perskit, pro-statistieken, link-in-bio +
    149   klikstats, inbedbare speler, en show-agenda + notify-me.
    150 - Nieuwsbrief-aanmeldveld in de footer (aan/uit in Beheer → Instellingen).
    151 - SMTP-instellingen instelbaar in Beheer → Instellingen (geen `.env`-edit meer nodig),
    152   met testmail-knop.
     145### Added
     146- Release tracking: the version number in the footer links to this changelog page.
     147- Eight premium features (Patreon-gated): newsletter/mailing list, download-for-email,
     148  release scheduling + fan-only previews, EPK/press kit, pro statistics, link-in-bio +
     149  click stats, embeddable player, and show agenda + notify-me.
     150- Newsletter signup field in the footer (on/off in Admin → Settings).
     151- SMTP settings configurable in Admin → Settings (no more `.env` edit needed),
     152  with a test-mail button.
    153153
    154 ### Gewijzigd
    155 - Beheer → Instellingen: Hub- en Cirkel-config staan nu direct onder de Modus-kaart;
    156   forms netter (gestapelde labels, full-width inputs).
    157 - EPK/perskit toont de top 10 meest beluisterde nummers.
    158 - Nettere 404-pagina (mobielvriendelijk) en duidelijkere login-foutmeldingen.
     154### Changed
     155- Admin → Settings: Hub and Circle config now sit directly under the Mode card;
     156  forms tidier (stacked labels, full-width inputs).
     157- EPK/press kit shows the top 10 most-listened tracks.
     158- Nicer 404 page (mobile-friendly) and clearer login error messages.
    159159
    160 ### Opgelost
    161 - Site-brede audiospeler kreeg geen tracks (verkeerde kolom in de query).
    162 - Knoptekst werd onleesbaar bij hover (zelfde kleur als de knop).
    163 - Datumkiezers volgen nu het thema.
    164 - htmx-navigatie werkt de adresbalk weer bij; geen dubbele kop bij terug/vooruit.
     160### Fixed
     161- The site-wide audio player got no tracks (wrong column in the query).
     162- Button text became unreadable on hover (same color as the button).
     163- Date pickers now follow the theme.
     164- htmx navigation updates the address bar again; no double header on back/forward.
Note: See TracChangeset for help on using the changeset viewer.