source: Klonkt/CHANGELOG.md@ 14f54a7

main
Last change on this file since 14f54a7 was 14f54a7, checked in by roboburr <roboburr@…>, 2 months ago

fix(ap): self-heal retries until a clean pass; feed re-boost also refreshes

Scale fix (think 1M instances, not this one row): the previous remedies
still had two gaps that only showed up per-user.

  • selfHealTimeline consumed its version even when some origins were unreachable at that exact moment - phone-hosted instances are offline routinely, so their notes stayed stale forever with no retry. The version is now only persisted after a CLEAN pass (0 unreachable); otherwise it retries on the next boots and gives up after 5 attempts (dead origins answer 404/410 and are pruned, so no infinite loop). SELFHEAL_VERSION 6 -> 7 so already-healed instances rerun with the new semantics.
  • The /news feed boost only did markBoosted, so "boost again to heal a stale copy" silently worked from the interact page but not the feed. Boosting from the feed now also re-resolves the note (fire-and-forget) and refreshes the cached row via upsertBoostedNote.

Retry state machine verified in isolation (offline-then-reachable ->
heals; permanently dead -> gives up after 5 passes, then skips). Suite
45/45.

  • src/services/ActivityPubService.js - clean-pass gating + attempts counter (app_settings, no schema change); SELFHEAL_VERSION 7
  • src/routes/posts.js - /news/boost refreshes the cached row on boost
  • CHANGELOG(.nl/.de).md - extended the Unreleased bullet (3 languages)

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

  • Property mode set to 100644
File size: 13.6 KB
Line 
1# Changelog — Klonkt
2
3All notable changes to Klonkt. Newest at the top.
4Versions follow [SemVer](https://semver.org/).
5
6## [Unreleased]
7
8### Fixed
9- **Boosts that lost their cover get it back automatically.** Posts you boosted
10 before the cover fix were cached without their artwork; they are refreshed
11 once on the next restart. If a post's home server is briefly unreachable at
12 that moment, it is retried on the next restarts instead of being skipped for
13 good. Boosting a post again now also refreshes its cached copy (cover,
14 content) — from the feed as well as the interact page.
15
16## [1.3.3] — 2026-07-03
17
18### Fixed
19- **Boosted music posts keep their cover.** When you boosted a track from
20 someone you don't follow, the cover art went missing; it now shows, just like
21 for people you do follow.
22
23## [1.3.2] — 2026-07-02
24
25### Fixed
26- **The Updates page now works in the Android app.** It now shows the newest
27 available version, and the update button downloads and installs it right on
28 your phone (your posts and settings are kept).
29
30## [1.3.1] — 2026-07-02
31
32### Fixed
33- **Music keeps playing in the background on Android.** When a track ended while
34 your phone was locked or the app was in the background, the next track would
35 start and stop again after a second. The player now feeds the whole queue as
36 one continuous stream, so auto-advancing to the next track no longer counts
37 as "new" playback that the browser is allowed to pause.
38
39## [1.3.0] — 2026-07-02
40
41### Added
42- **Choose a light or dark share card.** The auto-generated share image follows your site theme;
43 under Admin → SEO you can now force it light or dark.
44- **A mention is now a notification.** When someone on the fediverse mentions you in a post —
45 even one that isn't a reply to you — it shows up in your fediverse notifications with a link
46 to the original.
47- **Cover art on openly shared audio.** A track shared openly on the fediverse now carries its
48 cover art (or the post cover), so audio players that support artwork show it instead of a blank tile.
49- **Report a post to the fediverse.** From a fediverse post you can now report it to the moderators
50 of its own home server, with an optional reason — and if someone reports your site, the report
51 shows up in your fediverse notifications.
52- **Set a post's language.** Choose the language you wrote a post in — on the fediverse it enables
53 timeline language filtering and the translate button.
54- **Alt text for images.** Give your cover image a description (and inline images keep their own
55 alt text) — it federates to the fediverse and lets screen readers describe the picture.
56- **Mention people in a post.** Typing `@user@server` in a post now links to their profile and
57 notifies them on the fediverse — even if they don't follow you — just like a mention in a reply.
58- **Short videos in the feed autoplay and loop.** An animated cover or a short (≤30s) clip in the
59 News feed now plays automatically and loops muted, like a GIF; longer videos keep their controls.
60- **Vote on fediverse polls.** A poll from an account you follow now shows in the News feed with its
61 options and current results, and you can cast your vote — it federates back like any Mastodon vote.
62- **Create your own polls.** A post can now carry a poll (single or multiple choice, with a set
63 duration). It federates as a real fediverse poll, so your Mastodon followers can vote from their own
64 app; the live results show on the post and the poll closes itself when the time is up.
65
66### Changed
67- **Sharing audio openly is now one-way.** Once a track is shared openly on the fediverse the file
68 has spread, so "closing" it again would be false security — the editor now locks the choice after
69 opening and warns you before you tick it.
70
71### Fixed
72- **Remote videos show a preview frame.** A video in the News feed or a Circle tile (e.g. from
73 Loops or PeerTube) used to appear as a black box until you pressed play; it now shows a real
74 poster frame. (Longer videos keep their player controls by design — only clips under 30 seconds
75 autoplay like a GIF.)
76- **Mentions, hashtags and links inside brackets now work.** A mention like `(@user@server)`, a
77 `(#hashtag)` or a bracketed URL federated as plain text — and the mentioned person was never
78 notified. They now link (and notify) like their unbracketed forms.
79- **Plain web addresses become links on the fediverse.** A bare URL typed in a post or reply now
80 federates as a clickable link instead of plain text.
81
82## [1.2.0] — 2026-07-01
83
84### Added
85- **PeerTube videos in the feed.** A PeerTube link in a post now shows an inline player in the News
86 feed, like YouTube, Spotify and SoundCloud already did.
87- **Light share images.** Sites whose default theme is Light now get a matching light Open Graph card
88 when a page is shared, instead of always a dark one.
89- **Leave your own visits out of the stats.** As the admin you can now exclude your own IP address
90 from your site statistics, for a truer picture of real visitors.
91- **Right-click "Save" is turned off on covers, images and videos** — a light bit of friction so the
92 artwork isn't one click from being saved (it's friction, not protection).
93
94### Fixed
95- **Animated video covers now render correctly everywhere.** In the Circle and the grid they could
96 show up as a broken image or a blank tile; they now display as a proper looping video that fills the
97 square, centred. Right-clicking a cover gives the normal link menu instead of the browser's video controls.
98- **Following someone no longer gets stuck.** A follow whose first delivery fails (the other server
99 briefly unreachable) is now retried automatically with backoff, instead of staying on "pending" forever.
100- **Boosted posts show their real text** in the Circle, instead of a "RE: <link>" prefix.
101- **Hardened fediverse handling** — stricter signature checks on incoming activity, blocks now also
102 cover a boost of a blocked author, and pinned-post syncing no longer races when you save several times quickly.
103
104## [1.1.0] — 2026-06-30
105
106### Added
107- **Animated covers play smoothly everywhere.** Upload an animated WebP as a cover and Klonkt also
108 makes a muted, looping video of it. iOS Safari — where animated WebP is janky — gets the smooth
109 video, every other browser keeps the crisp WebP, and on the fediverse the cover federates as a
110 video that plays in Mastodon and its apps. Shown on the post, the grid, the feed and related posts.
111- **Media library (Admin → Media).** See every uploaded image, where each one is used, copy its URL,
112 and clean up unused files in one click — including the leftover video/poster of an animated cover.
113 Images, Audio and Playlists now share one tab bar.
114- **Share button** at the bottom of every post (native share sheet, or copy link).
115- **Replace a track's audio file** without re-creating the track.
116- **Music on the fediverse (first step).** Audio posts now carry schema.org *MusicRecording* /
117 *MusicAlbum* data, and a per-post toggle can share a hosted track as a real fediverse audio
118 attachment that plays in followers' feeds.
119
120### Changed
121- **Cleaner embeds on Mastodon.** A post with a YouTube/Spotify/SoundCloud link now lets Mastodon
122 show its player card; link-only tracks share their streaming links. The cover still shows in other
123 Klonkt feeds. (On your own site nothing changes — the player and cover render as before.)
124- **Circles stay in sync the fediverse way** — edits and missed posts catch up automatically via
125 standard ActivityPub, so a Circle no longer drifts out of date.
126- **Everything Klonkt federates is now valid AS2 / JSON-LD**, guarded by a test, so stricter servers
127 accept it.
128- The track list is sorted **newest-first**.
129
130### Fixed
131- **Animated WebP covers are no longer frozen to a single frame** (the crop editor and the thumbnailer
132 left them static).
133- **Link-only tracks** (Spotify/YouTube, no uploaded file) can be inserted into a post again.
134- **Link previews** (og:image / Twitter card) now use absolute image URLs, so they show on Signal,
135 WhatsApp and other scrapers.
136- Several **fediverse delivery fixes**: covers/links no longer turn into a black tile on Mastodon,
137 raw audio files don't clutter a post that already has a player, and dead links from a renamed
138 remote post heal themselves.
139- The **mobile feed** loads full-resolution covers; long titles wrap instead of overflowing.
140- **Self-hosting updates** are more reliable: re-running the installer keeps your channel, and the
141 updater no longer restarts or claims an update when you're already up to date.
142
143## [1.0.0] — 2026-06-30
144
145### Added
146- **Klonkt is now on the fediverse (ActivityPub).** Your site is a real fediverse
147 account: people on Mastodon — or another Klonkt — can follow you, and your posts
148 reach their feeds. You can follow accounts and read their posts in a **News** feed,
149 get **notifications**, and **like, boost and reply** to posts. Incoming activity is
150 verified, so fake replies, likes and followers are rejected.
151- **Anyone can reply, like or boost your posts from the fediverse** — visitors interact
152 from their own account (they just enter their server); no account on your site needed.
153- **Circles**: follow other Klonkt sites and show each other's public posts in your
154 Circle — decentralised, with no central platform.
155- **Sensitive (NSFW) posts** with your own content-warning text: blurred with
156 click-to-reveal across the site, and shown as a content warning on the fediverse.
157- **Block** an account or an entire domain you'd rather not hear from.
158- Search now also finds **tracks** (by title, artist and album), playable straight from
159 the results with a link to the post they appear in — and post search matches as you type.
160- **Live theme preview** in Admin → site settings: accent, theme and palette update
161 instantly, before you save.
162- Uploaded images are automatically optimised to **WebP** for faster pages.
163- A roomier **mobile writing experience**: tap to open a distraction-free fullscreen
164 editor, with the formatting toolbar staying in view above the keyboard.
165- **Long posts collapse in the News feed** with a *read more* toggle, so a long post no
166 longer fills the whole screen — tap to expand or collapse it.
167- **See everyone in a Circle**: when a Circle has more than five sites, the member count
168 opens a popup that lists them all, so a big Circle no longer hides its members.
169
170### Changed
171- **Palettes revised to 8**: the neutral **Klonkt** (gold accent) is the new default,
172 plus seven full-colour themes — Forest, Ocean, Teal, Lilac, Sunset, Candy and Amber.
173- **Your profile federates more completely**: the links on your profile, the date you
174 joined and the accounts you follow now travel along to other servers, so your profile
175 looks complete when someone views it from Mastodon or elsewhere.
176- **Cover images and avatars are sharper** — resized on the server instead of being
177 squeezed by the browser.
178
179### Removed
180- **Hub mode** — Klonkt is now **solo or Circles**; you build a collective or label
181 through **Circles** (federated, standalone sites).
182- **Native comments and Google login** — replies, likes and boosts now run entirely
183 through the fediverse.
184- **Local favourites (♥)** — replaced by the ⭐ fediverse like.
185
186### Fixed
187- **Hashtags and mentions now work in every language and script** (e.g. Japanese, Cyrillic,
188 Arabic), both on your site and when federating — not just the Latin alphabet.
189- **Switching a site to solo (federation off) works again.** Turning the fediverse off could
190 make the whole site return “page not found” instead of just disabling federation; it now
191 cleanly switches federation off while the rest of the site keeps working. (Self-hosters:
192 update to pick up the fix.)
193- The Fediverse and Notifications items now disappear from the menu when federation is off,
194 instead of lingering.
195- The mini-player jumps and scrolls to the track that's playing — also from an album or
196 playlist — and keeps it highlighted.
197- Empty album/playlist covers now fall back to the first track's cover.
198- A profile photo that broke in the header after the WebP switch now repairs itself.
199- Many **mobile post-editor** fixes: reliable scrolling, a formatting toolbar that stays
200 put, no page jumps when you tap a button, and a Save bar that sits just above the keyboard.
201- **Boosts now reach the original poster** — their server registers the boost and notifies
202 them, just like a boost from Mastodon — and a boost is retried if a server is briefly
203 unreachable instead of being sent once and forgotten.
204- **Unfollowing an account now takes effect on the other server** (it could previously fail
205 to register, leaving you still following on their side).
206
207## [1.0.0-beta.2] — 2026-06-19
208
209First release where we actively track the version (shown in the footer — click it for
210this page).
211
212### Added
213- Release tracking: the version number in the footer links to this changelog page.
214- Eight premium features (Patreon-gated): newsletter/mailing list, download-for-email,
215 release scheduling + fan-only previews, EPK/press kit, pro statistics, link-in-bio +
216 click stats, embeddable player, and show agenda + notify-me.
217- Newsletter signup field in the footer (on/off in Admin → Settings).
218- SMTP settings configurable in Admin → Settings (no more config-file edit needed), with
219 a test-mail button.
220
221### Changed
222- Tidier settings forms (stacked labels, full-width inputs).
223- EPK/press kit shows the top 10 most-listened tracks.
224- Nicer 404 page (mobile-friendly) and clearer login error messages.
225
226### Fixed
227- The site-wide audio player wasn't loading any tracks.
228- Button text became unreadable on hover.
229- Date pickers now follow the theme.
230- Back/forward navigation no longer shows a doubled header.
Note: See TracBrowser for help on using the repository browser.