# # ChangeLog for src/assets/js in Klonkt # # Generated by Trac 1.6 # 09/09/2026 06:01:56 PM Fri, 07 Aug 2026 18:33:54 GMT Robin [4b5db37] * src/assets/js/mod/admin-audio.js (modified) * src/assets/js/mod/admin-media.js (modified) * src/assets/js/mod/admin-playlists.js (modified) * src/assets/js/mod/admin-videos.js (modified) * src/assets/js/mod/lib.js (modified) * src/assets/js/mod/post-edit.js (modified) * src/views/shell.ejs (modified) Modules herstarten per paginawissel: de editor leeft weer na een ... Fri, 07 Aug 2026 16:22:49 GMT roboburr [7d7b36d] * src/assets/css/guardian.css (modified) * src/assets/js/guardian.js (modified) * src/routes/guardian.js (modified) * src/services/i18n.js (modified) De geschiedenis apart, en onderaan het wardpaneel (shaer-lgo, ... Fri, 07 Aug 2026 15:53:57 GMT roboburr [1ff801d] * src/assets/js/guardian.js (modified) De hulpboei op de wardregel telt alleen wat nog wacht (shaer-lgo, ... Fri, 07 Aug 2026 14:14:10 GMT roboburr [ee78e03] * src/assets/css/guardian.css (modified) * src/assets/js/guardian.js (modified) * src/routes/guardian.js (modified) * src/services/i18n.js (modified) Een afgehandelde hulpvraag gaat naar het archief (shaer-lgo, vervolg) ... Fri, 07 Aug 2026 13:56:58 GMT Robin [7cfe35a] * src/assets/css/guardian.css (modified) * src/assets/js/guardian.js (modified) * src/config/database.js (modified) * src/routes/guardian.js (modified) * src/services/ActivityPubService.js (modified) * src/services/guardianship/delivery.js (modified) * src/services/guardianship/help.js (added) * src/services/guardianship/index.js (modified) * src/services/i18n.js (modified) * test/guardian-help-state.test.js (added) Geen inline scripts meer in de pagina's (shaer-bqr) De CSP staat op ... Fri, 07 Aug 2026 13:51:38 GMT roboburr [a29c8c8] * src/assets/css/guardian.css (modified) * src/assets/js/guardian.js (modified) * src/config/database.js (modified) * src/routes/guardian.js (modified) * src/services/ActivityPubService.js (modified) * src/services/guardianship/delivery.js (modified) * src/services/guardianship/help.js (added) * src/services/guardianship/index.js (modified) * src/services/i18n.js (modified) * test/guardian-help-state.test.js (added) Een hulpvraag oppikken en afsluiten, zichtbaar voor alle guardians ... Fri, 07 Aug 2026 13:38:51 GMT roboburr [fb9a8ad] * src/assets/js/mod/lib.js (modified) * src/assets/js/mod/post-edit.js (added) * src/routes/posts.js (modified) * src/views/pages/post-edit.ejs (modified) De posteditor, de laatste (shaer-bqr, stap 3g) Zeven blokken, ruim ... Fri, 07 Aug 2026 13:38:51 GMT roboburr [6ee289a] * src/assets/js/mod/admin-audio.js (added) * src/assets/js/mod/playlist-editor.js (added) * src/routes/admin-playlists.js (modified) * src/views/pages/admin-audio.ejs (modified) * src/views/partials/playlist-editor.ejs (modified) De audio- en afspeellijst-editors (shaer-bqr, stap 3f) admin-audio ... Fri, 07 Aug 2026 13:38:51 GMT roboburr [156baa3] * src/assets/js/mod/admin-media.js (added) * src/assets/js/mod/admin-playlists.js (added) * src/assets/js/mod/admin-videos.js (added) * src/assets/js/mod/chrome.js (modified) * src/assets/js/mod/paid-gate.js (added) * src/assets/js/mod/paid-passkey.js (added) * src/routes/admin-media.js (modified) * src/routes/admin-playlists.js (modified) * src/routes/paid.js (modified) * src/routes/posts.js (modified) * src/views/pages/admin-media.ejs (modified) * src/views/pages/admin-playlists.ejs (modified) * src/views/pages/admin-videos.ejs (modified) * src/views/pages/paid-gate.ejs (modified) * src/views/pages/paid-passkey.ejs (modified) * src/views/partials/profile-sheet.ejs (modified) * src/views/partials/topnav.ejs (modified) De chrome en vier schermen met servergegevens (shaer-bqr, stap 3e) ... Fri, 07 Aug 2026 13:38:51 GMT roboburr [52fc278] * src/assets/js/mod/download.js (added) * src/assets/js/mod/news.js (added) * src/routes/download.js (modified) * src/routes/posts.js (modified) * src/views/pages/download.ejs (modified) * src/views/pages/news.ejs (modified) De Krant en de downloadpagina, met het data-kanaal in gebruik (shaer- ... Fri, 07 Aug 2026 13:38:51 GMT roboburr [54ee51c] * src/assets/js/mod/chrome.js (modified) * src/assets/js/mod/lib.js (added) * src/assets/js/mod/track-editor.js (added) * src/routes/admin-audio.js (modified) * src/views/partials/page-data.ejs (added) * src/views/partials/profile-header.ejs (modified) * src/views/partials/track-editor.ejs (modified) De profielkop, de track-editor en het data-kanaal (shaer-bqr, stap ... Fri, 07 Aug 2026 13:38:51 GMT roboburr [0475b13] * src/assets/js/mod/admin-epk.js (added) * src/assets/js/mod/admin-help.js (added) * src/assets/js/mod/admin-paid.js (added) * src/assets/js/mod/admin-push.js (added) * src/assets/js/mod/admin-settings.js (added) * src/assets/js/mod/admin-site-edit.js (added) * src/assets/js/mod/auth-register.js (added) * src/assets/js/mod/authorize-interaction.js (added) * src/routes/admin-epk.js (modified) * src/routes/admin-paid.js (modified) * src/routes/admin-push.js (modified) * src/routes/admin-settings.js (modified) * src/routes/admin-sites.js (modified) * src/routes/admin.js (modified) * src/routes/auth.js (modified) * src/routes/posts.js (modified) * src/views/pages/admin-epk.ejs (modified) * src/views/pages/admin-help.ejs (modified) * src/views/pages/admin-paid.ejs (modified) * src/views/pages/admin-push.ejs (modified) * src/views/pages/admin-settings.ejs (modified) * src/views/pages/admin-site-edit.ejs (modified) * src/views/pages/auth-register.ejs (modified) * src/views/pages/authorize-interaction.ejs (modified) Acht schone pagina's uit inline script naar modules (shaer-bqr, stap ... Fri, 07 Aug 2026 12:47:33 GMT roboburr [792af53] * src/assets/css/guardian.css (modified) * src/assets/js/guardian.js (modified) * src/routes/guardian.js (modified) * src/services/guardianship/gated.js (modified) * src/services/i18n.js (modified) * test/guardian-gate-panel.test.js (added) Het gate-paneel: een rij per gate, met het soort en de drempel ... Fri, 07 Aug 2026 12:31:09 GMT roboburr [0db68bd] * src/assets/js/mod/post.js (added) * src/routes/posts.js (modified) * src/views/pages/post.ejs (modified) De post-pagina uit inline script naar een module (shaer-bqr, stap 3a) ... Fri, 07 Aug 2026 12:24:02 GMT roboburr [e64a49b] * src/assets/js/mod/messages.js (added) * src/middleware/render.js (modified) * src/routes/posts.js (modified) * src/views/pages/messages.ejs (modified) Berichten uit inline script naar een module (shaer-bqr, stap 2) De ... Fri, 07 Aug 2026 12:00:22 GMT roboburr [1e172f3] * src/assets/js/mod/chrome.js (added) * src/config/database.js (modified) * src/middleware/render.js (modified) * src/routes/activitypub.js (modified) * src/services/ActivityPubService.js (modified) * src/services/guardianship/follows.js (modified) * src/services/guardianship/queues.js (modified) * src/views/partials/bottom-tab.ejs (modified) * src/views/shell.ejs (modified) Modules laden vanuit de shell in plaats van inline script (shaer-bqr, ... Fri, 07 Aug 2026 10:15:44 GMT roboburr [31e63d1] * src/assets/js/guardian.js (modified) * src/server.js (modified) Acties bovenaan, en de push wekt een openstaande pagina (Guardian ... Thu, 06 Aug 2026 06:54:05 GMT Claude (agent) [99a7b40] * src/assets/js/guardian.js (modified) * src/routes/guardian.js (modified) Guardian-PWA: ward-posts renderen als in de Krant De PWA had het al ... Wed, 29 Jul 2026 12:36:50 GMT Robin [d56d471] * src/assets/css/guardian.css (modified) * src/assets/js/guardian.js (modified) * src/config/database.js (modified) * src/routes/guardian.js (modified) * src/services/guardianship/gated.js (modified) * src/services/guardianship/handshake.js (modified) * src/services/i18n.js (modified) * test/gated-settings.test.js (modified) Een voorstel krijgt een antwoord, een status en een zichtbare kring ... Wed, 29 Jul 2026 10:04:36 GMT Robin Genis [e27b8db] * src/assets/js/guardian.js (modified) * src/config/database.js (modified) * src/routes/activitypub.js (modified) * src/routes/guardian.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/guardianship/gated.js (modified) * src/services/guardianship/index.js (modified) * src/services/guardianship/notes.js (modified) * src/services/i18n.js (modified) * test/gated-settings.test.js (modified) Afspelen in de app als tweede gated feature, en het gat in de gate ... Wed, 29 Jul 2026 07:15:16 GMT Robin Genis [88d7c8f] * src/assets/css/guardian.css (modified) * src/assets/js/guardian.js (modified) * src/config/database.js (modified) * src/routes/guardian.js (modified) * src/services/guardianship/gated.js (modified) * src/services/guardianship/handshake.js (modified) * src/services/i18n.js (modified) * test/gated-settings.test.js (modified) Een gated voorstel bereikte de andere guardians nooit Op de vloot ... Tue, 28 Jul 2026 23:40:37 GMT Robin Genis [0202104] * src/assets/css/guardian.css (modified) * src/assets/js/guardian.js (modified) * src/middleware/render.js (modified) * src/routes/guardian.js (modified) * src/routes/posts.js (modified) * src/services/i18n.js (modified) * src/views/pages/guardian.ejs (modified) * src/views/pages/messages.ejs (modified) De gebruikerskant van 3.6: de ward ziet zijn vangnet, de guardian ... Tue, 28 Jul 2026 20:15:31 GMT Robin Genis [6c152a5] * src/assets/js/guardian.js (modified) * src/routes/guardian.js (modified) * src/services/ActivityPubService.js (modified) * src/services/guardianship/handshake.js (modified) * src/services/guardianship/index.js (modified) * src/services/i18n.js (modified) * test/guardianship.test.js (modified) De Undo bij het loslaten van een ward reist nu echt mee Loslaten ... Tue, 28 Jul 2026 19:58:26 GMT Robin Genis [742ba7e] * src/assets/css/guardian.css (modified) * src/assets/js/guardian.js (modified) * src/routes/guardian.js (modified) * src/services/i18n.js (modified) * test/guardian-panel.test.js (modified) Een ward loslaten vraagt eerst, en zegt wat het doet Loslaten zat ... Tue, 28 Jul 2026 19:43:49 GMT Robin Genis [70677e96] * src/assets/css/guardian.css (modified) * src/assets/js/guardian.js (modified) * src/routes/guardian.js (modified) * src/services/i18n.js (modified) * src/views/pages/guardian.ejs (modified) * test/guardian-panel.test.js (added) Guardian-PWA: een paneel per kind /guardian was een platte lijst ... Tue, 28 Jul 2026 18:30:43 GMT Robin Genis [a7bcf66] * src/assets/js/guardian.js (modified) * src/middleware/render.js (modified) * src/routes/guardian.js (modified) * src/services/ActivityPubService.js (modified) * src/views/partials/msg-item.ejs (modified) * test/timestamps.test.js (added) De Guardian PWA liep twee uur achter Op sound-fabrics staat de ... Tue, 28 Jul 2026 18:17:36 GMT Robin Genis [d9ad6c5] * src/assets/css/guardian.css (modified) * src/assets/js/guardian.js (modified) * src/config/database.js (modified) * src/middleware/render.js (modified) * src/routes/guardian.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/news.ejs (modified) * src/views/partials/msg-item.ejs (modified) * src/views/partials/note-body.ejs (added) * src/views/partials/shared-styles.ejs (modified) * src/views/partials/tl-item.ejs (modified) * test/help-request-timeline.test.js (added) * test/note-body-shared.test.js (added) Een hulpvraag hoort in Berichten, niet in de Krant Een 🛟 van een ... Tue, 28 Jul 2026 10:40:50 GMT Robin Genis [65abc85] * src/assets/js/guardian.js (modified) * src/config/database.js (modified) * src/routes/guardian.js (modified) * src/services/guardianship/gated.js (added) * src/services/guardianship/handshake.js (modified) * src/services/guardianship/index.js (modified) * src/services/i18n.js (modified) * test/gated-settings.test.js (added) Gated settings federeren: guardians beslissen samen, ook van een ... Tue, 28 Jul 2026 09:11:34 GMT Robin Genis [2a76184] * src/assets/js/guardian.js (modified) * src/routes/guardian.js (modified) * src/services/i18n.js (modified) Guardians kunnen linkvoorbeelden aan- en uitzetten per ward De ... Tue, 28 Jul 2026 06:43:39 GMT Robin Genis [c628dcd4] * src/assets/js/guardian.js (modified) * src/routes/guardian.js (modified) * src/routes/paid.js (modified) * src/services/i18n.js (modified) Paid-post pagina krijgt de normale header, en Release a Ward vraagt ... Sat, 25 Jul 2026 10:37:37 GMT Robin [f1c50f9] * src/assets/css/guardian.css (modified) * src/assets/css/guardian2.css (deleted) * src/assets/js/guardian.js (modified) * src/assets/js/guardian2.js (deleted) * src/routes/guardian.js (modified) * src/routes/guardian2.js (deleted) * src/server.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/guardian.ejs (modified) * src/views/pages/guardian2.ejs (deleted) Guardian 2 wordt de nieuwe /guardian; oude v1 eruit Robins besluit: ... Sat, 25 Jul 2026 10:11:15 GMT Robin [787e0d9] * src/assets/js/guardian2.js (modified) * src/routes/guardian2.js (modified) Fix dubbele @@ in guardian2 volgverzoeken renderFollowReqs ... Sat, 25 Jul 2026 08:01:21 GMT Robin [e62f65d] * src/assets/js/guardian2.js (modified) * src/config/database.js (modified) * src/routes/guardian2.js (modified) * src/services/ActivityPubService.js (modified) * src/services/guardianship/delivery.js (modified) * src/services/guardianship/index.js (modified) * src/services/guardianship/notes.js (modified) * src/services/i18n.js (modified) Guardian 2: de zwaai (shaer:wave), warmte zonder publiceren Een ... Sat, 25 Jul 2026 07:51:28 GMT Robin [5c373b8] * src/assets/js/guardian2.js (modified) * src/config/database.js (modified) * src/routes/guardian2.js (modified) * src/services/ActivityPubService.js (modified) * src/services/guardianship/follows.js (added) * src/services/guardianship/index.js (modified) * src/services/i18n.js (modified) * src/views/pages/guardian2.ejs (modified) * test/follow-gating.test.js (added) Guardian 2: follow-goedkeuring (FEP-633c §5.3) Een Follow op een ... Sat, 25 Jul 2026 07:43:37 GMT Robin [28267519] * src/assets/css/guardian2.css (modified) * src/assets/js/guardian2.js (modified) * src/routes/guardian2.js (modified) * src/services/i18n.js (modified) * src/views/pages/guardian2.ejs (modified) Guardian 2: meekijken met je wards (interop-hoofdroute, FEP-633c §5) ... Sat, 25 Jul 2026 06:06:50 GMT Robin [c1f5c23] * src/assets/css/guardian2.css (added) * src/assets/js/guardian2.js (added) * src/routes/guardian2.js (added) * src/server.js (modified) * src/views/pages/guardian2.ejs (added) Guardian 2: kloon van de Guardian-PWA als groeiplek voor losse ... Fri, 24 Jul 2026 20:59:51 GMT Robin [fcd6964] * src/assets/js/guardian.js (modified) * src/routes/guardian.js (modified) * src/routes/posts.js (modified) * src/services/guardianship/handshake.js (modified) * src/services/i18n.js (modified) * src/views/pages/guardian.ejs (modified) * src/views/pages/messages.ejs (modified) * test/guardianship.test.js (modified) Guardianship: ward ziet z'n guardians, PWA-assets no-cache, handle- ... Fri, 24 Jul 2026 19:44:15 GMT Robin Genis [780a7c6] * .claude/launch.json (added) * src/assets/css/guardian.css (modified) * src/assets/js/guardian.js (modified) * src/config/database.js (modified) * src/routes/guardian.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/guardianship/handshake.js (modified) * src/services/guardianship/index.js (modified) * src/services/guardianship/offers.js (added) * src/services/guardianship/queues.js (modified) * src/services/guardianship/relations.js (modified) * src/services/i18n.js (modified) * src/views/pages/messages.ejs (modified) * test/guardianship.test.js (modified) Guardianship Fase 0+1: de echte multi-party handshake (FEP-633c §3) ... Fri, 24 Jul 2026 18:04:03 GMT Robin Genis [c26cc18] * src/assets/css/guardian.css (modified) * src/assets/js/guardian.js (modified) * src/routes/guardian.js (modified) * src/services/ActivityPubService.js (modified) * src/services/guardianship/handshake.js (modified) * src/services/i18n.js (modified) * src/views/pages/guardian.ejs (modified) Guardian-PWA: duidelijker + verstuurde offer altijd zichtbaar Twee ... Fri, 24 Jul 2026 17:03:34 GMT Robin Genis [318d0c2] * src/assets/css/guardian.css (added) * src/assets/js/guardian.js (added) * src/routes/admin-sites.js (modified) * src/routes/guardian.js (added) * src/routes/posts.js (modified) * src/server.js (modified) * src/views/pages/guardian.ejs (added) De Guardian-PWA: /guardian, wards managen, berichtencentrum, eigen ... Sun, 19 Jul 2026 23:36:33 GMT Robin [ff3b8ce] * CHANGELOG.de.md (modified) * CHANGELOG.md (modified) * CHANGELOG.nl.md (modified) * src/assets/css/reply-editor.css (modified) * src/assets/js/reply-editor.js (modified) * src/views/partials/reply-editor.ejs (modified) Polish: reply editor styled as a sibling of the post editor (klonkt- ... Sun, 19 Jul 2026 22:48:15 GMT Robin [e9c9ae1] * CHANGELOG.de.md (modified) * CHANGELOG.md (modified) * CHANGELOG.nl.md (modified) * src/assets/css/reply-editor.css (modified) * src/assets/js/reply-editor.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/authorize-interaction.ejs (modified) * src/views/partials/fedi-node.ejs (modified) * src/views/partials/reply-editor.ejs (modified) * test/rich-reply.test.js (modified) Feature: mentions bar with conversation partners (klonkt-demo-u02) ... Sun, 19 Jul 2026 17:38:25 GMT Robin [5190152] * CHANGELOG.de.md (modified) * CHANGELOG.md (modified) * CHANGELOG.nl.md (modified) * src/assets/js/reply-editor.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/views/pages/authorize-interaction.ejs (modified) * src/views/pages/messages.ejs (modified) * src/views/partials/reply-editor.ejs (modified) * test/rich-reply.test.js (modified) Feature: rich editor on the edit forms too (klonkt-demo-c7f, last ... Sun, 19 Jul 2026 17:25:26 GMT Robin [feced2c] * CHANGELOG.de.md (modified) * CHANGELOG.md (modified) * CHANGELOG.nl.md (modified) * src/assets/css/reply-editor.css (modified) * src/assets/js/reply-editor.js (modified) * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/partials/fedi-node.ejs (modified) * src/views/partials/reply-editor.ejs (modified) * test/rich-reply.test.js (modified) Feature: media in replies — rich replies phase 2 (klonkt-demo-c7f) ... Sun, 19 Jul 2026 17:08:32 GMT Robin [33e1dbd] * CHANGELOG.de.md (modified) * CHANGELOG.md (modified) * CHANGELOG.nl.md (modified) * src/assets/css/reply-editor.css (added) * src/assets/js/reply-editor.js (added) * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/authorize-interaction.ejs (modified) * src/views/partials/fedi-node.ejs (modified) * src/views/partials/reply-editor.ejs (added) * test/rich-reply.test.js (added) Feature: rich replies phase 1 — shared editor, mobile full-screen, ... Thu, 02 Jul 2026 13:21:34 GMT roboburr [421046c] * CHANGELOG.de.md (modified) * CHANGELOG.md (modified) * CHANGELOG.nl.md (modified) * src/assets/js/audio-player.js (modified) * src/views/shell.ejs (modified) fix(audio): gapless MSE playback - background auto-advance survives ... Sun, 28 Jun 2026 10:47:29 GMT Robin Genis [73cffc3] * src/assets/js/audio-player.js (modified) * src/views/shell.ejs (modified) feat(player): remember volume + mute across sessions (localStorage) ... Sat, 27 Jun 2026 08:30:29 GMT Robin Genis [cb95343] * src/assets/css/embed.css (modified) * src/assets/js/embed-player.js (modified) * src/views/shell.ejs (modified) fix(embeds): plain responsive iframe on mobile/touch The custom ... Thu, 25 Jun 2026 14:02:59 GMT Robin Genis [6a51968] * src/assets/js/audio-player.js (modified) * src/views/shell.ejs (modified) audio: Media Session API for reliable mobile auto-advance + lock- ... Tue, 23 Jun 2026 18:14:27 GMT Robin Genis [834bcc3] * scripts/backfill-durations.mjs (modified) * scripts/reset-admin.mjs (modified) * src/assets/js/audio-player.js (modified) * src/assets/js/embed-player.js (modified) * src/assets/js/smooth-scroll.js (modified) * src/config/database.js (modified) * src/config/features.js (modified) * src/config/google.js (modified) * src/config/mailer.js (modified) * src/middleware/auth.js (modified) * src/middleware/rate-limit.js (modified) * src/middleware/render.js (modified) * src/middleware/site.js (modified) * src/routes/account.js (modified) * src/routes/admin-audio.js (modified) * src/routes/admin-circle.js (modified) * src/routes/admin-comments.js (modified) * src/routes/admin-epk.js (modified) * src/routes/admin-newsletter.js (modified) * src/routes/admin-patreon.js (modified) * src/routes/admin-seo.js (modified) * src/routes/admin-settings.js (modified) * src/routes/admin-shows.js (modified) * src/routes/admin-sites.js (modified) * src/routes/admin-stats.js (modified) * src/routes/admin-updates.js (modified) * src/routes/admin-users.js (modified) * src/routes/admin.js (modified) * src/routes/artists.js (modified) * src/routes/audio.js (modified) * src/routes/auth.js (modified) * src/routes/changelog.js (modified) * src/routes/circle.js (modified) * src/routes/comments.js (modified) * src/routes/download.js (modified) * src/routes/embed.js (modified) * src/routes/epk.js (modified) * src/routes/federation.js (modified) * src/routes/hub.js (modified) * src/routes/lang.js (modified) * src/routes/linkbio.js (modified) * src/routes/newsletter.js (modified) * src/routes/notifications.js (modified) * src/routes/posts.js (modified) * src/routes/search.js (modified) * src/routes/shows.js (modified) * src/server.js (modified) * src/services/AudioEmbedService.js (modified) * src/services/AudioTranscoder.js (modified) * src/services/CircleFederation.js (modified) * src/services/CircleService.js (modified) * src/services/ImageWebpService.js (modified) * src/services/NotificationService.js (modified) * src/services/PatreonService.js (modified) * src/services/PermissionsService.js (modified) * src/services/PlaylistService.js (modified) * src/services/Scheduler.js (modified) * src/services/SettingsService.js (modified) * src/services/StatsService.js (modified) * src/services/SubscriberService.js (modified) * src/services/ThemeService.js (modified) * src/services/ensurePrimarySite.js (modified) * src/views/pages/account.ejs (modified) * src/views/pages/admin-circle.ejs (modified) * src/views/pages/admin-google.ejs (modified) * src/views/pages/admin-seo.ejs (modified) * src/views/pages/admin-settings.ejs (modified) * src/views/pages/admin-shows.ejs (modified) * src/views/pages/admin-site-edit.ejs (modified) * src/views/pages/admin-users.ejs (modified) * src/views/pages/auth-login.ejs (modified) * src/views/pages/circle-feed.ejs (modified) * src/views/pages/fan-gate.ejs (modified) * src/views/pages/hub-home.ejs (modified) * src/views/pages/post-edit.ejs (modified) * src/views/pages/post.ejs (modified) * src/views/partials/bottom-tab.ejs (modified) * src/views/partials/footer.ejs (modified) * src/views/partials/like-button.ejs (modified) * src/views/partials/post-nav.ejs (modified) * src/views/partials/shared-styles.ejs (modified) * src/views/partials/topnav.ejs (modified) * src/views/partials/track-editor.ejs (modified) i18n: translate Dutch code comments to English across src/ Comments ... Sat, 20 Jun 2026 06:36:10 GMT roboburr [0f11c69] * src/assets/js/audio-player.js (modified) * src/views/shell.ejs (modified) change(player): player bar only appears on first audio click The ... Sat, 20 Jun 2026 04:46:35 GMT roboburr [fef781e] * src/assets/css/embed.css (modified) * src/assets/js/audio-player.js (modified) * src/assets/js/embed-player.js (modified) * src/routes/audio.js (modified) * src/services/AudioEmbedService.js (modified) * src/views/pages/post-edit.ejs (modified) * src/views/shell.ejs (modified) revert: remove YouTube audio functionality (doesn't work) YouTube ... Sat, 20 Jun 2026 04:42:18 GMT roboburr [8ab20b6] * src/assets/js/audio-player.js (modified) * src/views/shell.ejs (modified) fix(player): muted start to work around YouTube autoplay block ... Sat, 20 Jun 2026 04:39:28 GMT roboburr [8d43aa1] * src/assets/js/audio-player.js (modified) * src/assets/js/embed-player.js (modified) * src/views/shell.ejs (modified) fix(player): prewarm hidden YT player (autoplay within gesture) The ... Sat, 20 Jun 2026 04:31:01 GMT roboburr [e056e56] * src/assets/js/audio-player.js (modified) * src/assets/js/embed-player.js (modified) * src/views/shell.ejs (modified) fix(player): YT album via queue expansion (reliable playback) ... Sat, 20 Jun 2026 04:28:31 GMT roboburr [71e8fa5] * src/assets/js/audio-player.js (modified) * src/assets/js/embed-player.js (modified) * src/views/shell.ejs (modified) fix(player): YT playlist now plays (listType:'playlist') ... Sat, 20 Jun 2026 04:22:32 GMT roboburr [d43ea3f] * src/assets/css/embed.css (modified) * src/assets/js/audio-player.js (modified) * src/assets/js/embed-player.js (modified) * src/views/shell.ejs (modified) feat(embed): YouTube playlist/album as audio on the site An ... Sat, 20 Jun 2026 04:08:28 GMT roboburr [b56afa7] * src/assets/js/embed-player.js (modified) * src/routes/audio.js (modified) * src/views/shell.ejs (modified) feat(embed): show real YouTube title on the audio-only card YT ... Sat, 20 Jun 2026 04:03:58 GMT roboburr [976d36d] * src/assets/js/audio-player.js (modified) * src/assets/js/embed-player.js (modified) * src/views/shell.ejs (modified) fix(embed): bar-free square cover for YouTube audio hqdefault is ... Sat, 20 Jun 2026 03:53:58 GMT roboburr [9e6b54f] * src/assets/css/embed.css (modified) * src/assets/js/audio-player.js (modified) * src/assets/js/embed-player.js (modified) * src/views/shell.ejs (modified) feat(player): YouTube audio via the site audio player (continuous ... Sat, 20 Jun 2026 03:42:00 GMT roboburr [73b41eb] * src/assets/css/embed.css (modified) * src/assets/js/embed-player.js (modified) * src/services/AudioEmbedService.js (modified) * src/views/pages/post-edit.ejs (modified) * src/views/shell.ejs (modified) feat(embed): YouTube audio-only option in posts Per embed you now ... Sat, 20 Jun 2026 03:04:22 GMT roboburr [557a76f] * src/assets/css/embed.css (modified) * src/assets/js/embed-player.js (modified) * src/views/shell.ejs (modified) feat(embed): volume slider + mute for YouTube & SoundCloud YT/SC ... Sat, 20 Jun 2026 02:54:09 GMT roboburr [2873b30] * src/assets/js/embed-player.js (modified) * src/views/shell.ejs (modified) fix(embed): Spotify directly as bare iframe (instant, no API wait) ... Sat, 20 Jun 2026 02:52:15 GMT roboburr [16b0c00] * src/assets/js/embed-player.js (modified) * src/server.js (modified) * src/views/shell.ejs (modified) fix(embed): Spotify API via CSP whitelist + faster fallback ... Sat, 20 Jun 2026 02:37:34 GMT roboburr [5f47671] * src/assets/js/audio-player.js (modified) * src/routes/search.js (modified) * src/views/shell.ejs (modified) fix: tablet opens full-player + clean search snippet - ... Sat, 20 Jun 2026 02:17:12 GMT roboburr [5258945] * src/assets/css/style.css (modified) * src/assets/js/audio-player.js (modified) * src/views/shell.ejs (modified) feat(player): persistent highlight on the active track The ... Sat, 20 Jun 2026 01:52:46 GMT roboburr [fa08981] * src/assets/js/audio-player.js (modified) * src/routes/audio.js (modified) * src/views/shell.ejs (modified) fix(player): scroll-to-track works for site-wide tracks too ... Sat, 20 Jun 2026 01:38:16 GMT roboburr [230e446] * src/assets/css/style.css (modified) * src/assets/js/audio-player.js (modified) * src/services/AudioEmbedService.js (modified) * src/views/shell.ejs (modified) feat(player): mini-player jumps to post AND scrolls to the track ... Thu, 18 Jun 2026 07:24:25 GMT roboburr [0dbb5c1] * src/assets/js/audio-player.js (modified) * src/views/shell.ejs (modified) Mini player: clickable on desktop → navigates to the associated post ... Tue, 16 Jun 2026 03:10:31 GMT roboburr [8453812] * README.md (modified) * package.json (modified) * scripts/migrate-posts-to-html.js (modified) * src/assets/js/audio-player.js (modified) * src/assets/js/embed-player.js (modified) * src/assets/js/smooth-scroll.js (modified) * src/middleware/site.js (modified) * src/routes/artists.js (modified) * src/routes/hub.js (modified) * src/server.js (modified) * src/services/CircleFederation.js (modified) * src/services/SettingsService.js (modified) * src/views/shell.ejs (modified) Branding: 100% PrutCMS/PrutFolio-free — Klonkt as original product ... Mon, 15 Jun 2026 03:56:37 GMT roboburr [33886fb] * src/assets/js/embed-player.js (modified) * src/views/shell.ejs (modified) fix: site player now also pauses fallback embeds (mutual exclusion ... Mon, 15 Jun 2026 03:23:14 GMT roboburr [4c9f29a] * src/assets/css/embed.css (added) * src/assets/js/audio-player.js (modified) * src/assets/js/embed-player.js (added) * src/server.js (modified) * src/services/AudioEmbedService.js (modified) * src/views/shell.ejs (modified) feat: on-brand media embeds via the real player APIs Replaces bare ... Mon, 15 Jun 2026 02:02:56 GMT roboburr [650b601] * src/assets/js/audio-player.js (modified) * src/views/shell.ejs (modified) feat: embed pause applies to every embed (not just .folio-embed) ... Mon, 15 Jun 2026 01:51:37 GMT roboburr [d352b63] * src/assets/js/audio-player.js (modified) * src/views/shell.ejs (modified) feat: site player pauses when an embedded video/audio starts playing ... Mon, 15 Jun 2026 01:29:13 GMT roboburr [e6888ca] * src/assets/js/audio-player.js (modified) * src/views/shell.ejs (modified) feat: audio player persists + resumes across page navigations ... Sun, 14 Jun 2026 22:17:23 GMT roboburr [ddecd9a] * src/assets/css/audio.css (modified) * src/assets/js/audio-player.js (modified) * src/views/shell.ejs (modified) feat: audio player three layouts — desktop mini-only, tablet/auto ... Sun, 14 Jun 2026 04:20:02 GMT roboburr [89d6536] * src/assets/js/audio-player.js (modified) * src/views/shell.ejs (modified) fix: track buttons via event delegation (survives HTMX history- ... Sun, 14 Jun 2026 04:07:28 GMT roboburr [2b52bfb] * src/assets/js/audio-player.js (modified) * src/views/shell.ejs (modified) audio: mobile — back button closes the now-playing sheet (history ... Sun, 14 Jun 2026 04:01:38 GMT roboburr [942028f] * src/assets/.well-known/assetlinks.json (deleted) * src/assets/apk/soundfabrics.apk (deleted) * src/assets/js/install-app.js (modified) * src/server.js (modified) * src/views/partials/footer.ejs (modified) * src/views/shell.ejs (modified) app: remove APK/TWA variant — PWA-only install Robin: only PWA ... Sun, 14 Jun 2026 02:40:35 GMT roboburr [9b36f45] * src/assets/js/audio-player.js (modified) * src/views/shell.ejs (modified) audio: mobile — tapping a track automatically opens the now-playing ... Sun, 14 Jun 2026 01:25:19 GMT Robin Genis [b5bae24] * .well-known/assetlinks.json (added) * deploy/DEPLOY.md (added) * deploy/backup.sh (added) * deploy/nginx.conf.example (added) * deploy/verify.ps1 (added) * scripts/import-v9-posts.js (added) * scripts/migrate-posts-to-html.js (added) * scripts/v9-posts-import.sql (added) * src/assets/js/audio-player.js (modified) * src/assets/js/lenis.min.js (added) * src/assets/js/smooth-scroll.js (added) * src/server.js (modified) * src/views/shell.ejs (modified) reconcile: commit uncommitted live /srv state (playback fix + ... Wed, 20 May 2026 22:14:01 GMT Robin Genis [21522ae] * src/assets/js/audio-player.js (modified) * src/routes/admin-audio.js (modified) * src/routes/admin-playlists.js (modified) * src/routes/audio.js (modified) * src/routes/posts.js (modified) * src/services/AudioStreamService.js (modified) * src/services/PlaylistService.js (modified) * src/views/pages/admin-audio.ejs (modified) * src/views/partials/track-editor.ejs (modified) * src/views/shell.ejs (modified) audio: Spotify-style blob playback + same-origin gate (fix playback ... Thu, 07 May 2026 22:38:43 GMT Robin [8681239] * .beads/issues.jsonl (modified) * src/assets/css/audio.css (modified) * src/assets/js/audio-player.js (modified) * src/views/shell.ejs (modified) audio v3: robust continuous playback — pause+load reset, error auto- ... Wed, 06 May 2026 22:18:18 GMT Robin [7bc636b] * .env.example (added) * .gitignore (added) * README.md (added) * ecosystem.config.cjs (added) * package-lock.json (added) * package.json (added) * src/assets/.well-known/assetlinks.json (added) * src/assets/apk/soundfabrics.apk (added) * src/assets/css/audio.css (added) * src/assets/css/style.css (added) * src/assets/fonts/fraunces-latin-full-italic.woff2 (added) * src/assets/fonts/fraunces-latin-full-normal.woff2 (added) * src/assets/fonts/literata-latin-opsz-italic.woff2 (added) * src/assets/fonts/literata-latin-opsz-normal.woff2 (added) * src/assets/fonts/plus-jakarta-sans-latin-wght-italic.woff2 (added) * src/assets/fonts/plus-jakarta-sans-latin-wght-normal.woff2 (added) * src/assets/js/audio-player.js (added) * src/assets/js/htmx.min.js (added) * src/assets/js/install-app.js (added) * src/config/database.js (added) * src/db/migrate.js (added) * src/db/migrations/001-init.sql (added) * src/middleware/auth.js (added) * src/middleware/rate-limit.js (added) * src/middleware/render.js (added) * src/middleware/site.js (added) * src/routes/account.js (added) * src/routes/admin-audio.js (added) * src/routes/admin-comments.js (added) * src/routes/admin-playlists.js (added) * src/routes/admin-sites.js (added) * src/routes/admin-users.js (added) * src/routes/admin.js (added) * src/routes/audio.js (added) * src/routes/auth.js (added) * src/routes/comments.js (added) * src/routes/feed.js (added) * src/routes/posts.js (added) * src/routes/prutter.js (added) * src/routes/search.js (added) * src/routes/tags.js (added) * src/routes/types.js (added) * src/routes/users.js (added) * src/server.js (added) * src/services/AudioEmbedService.js (added) * src/services/AudioStreamService.js (added) * src/services/AudioTranscoder.js (added) * src/services/CRDTService.js (added) * src/services/HtmlSanitizerService.js (added) * src/services/MarkdownService.js (added) * src/services/PermissionsService.js (added) * src/services/PlatformIcons.js (added) * src/services/PlaylistService.js (added) * src/services/PrutterService.js (added) * src/services/SqliteSessionStore.js (added) * src/services/ThemeService.js (added) * src/views/pages/account.ejs (added) * src/views/pages/admin-audio.ejs (added) * src/views/pages/admin-comments.ejs (added) * src/views/pages/admin-playlists.ejs (added) * src/views/pages/admin-site-edit.ejs (added) * src/views/pages/admin-sites.ejs (added) * src/views/pages/admin-users.ejs (added) * src/views/pages/admin.ejs (added) * src/views/pages/archive.ejs (added) * src/views/pages/auth-login.ejs (added) * src/views/pages/auth-register.ejs (added) * src/views/pages/auth-reset-request.ejs (added) * src/views/pages/auth-reset.ejs (added) * src/views/pages/home.ejs (added) * src/views/pages/post-edit.ejs (added) * src/views/pages/post.ejs (added) * src/views/pages/prutter-conversation.ejs (added) * src/views/pages/prutter-inbox.ejs (added) * src/views/pages/search.ejs (added) * src/views/pages/tag.ejs (added) * src/views/pages/type.ejs (added) * src/views/pages/user.ejs (added) * src/views/pages/welcome.ejs (added) * src/views/partials/bottom-tab.ejs (added) * src/views/partials/footer.ejs (added) * src/views/partials/playlist-editor.ejs (added) * src/views/partials/post-card.ejs (added) * src/views/partials/post-tile.ejs (added) * src/views/partials/profile-header.ejs (added) * src/views/partials/profile-sheet.ejs (added) * src/views/partials/shared-styles.ejs (added) * src/views/partials/topnav.ejs (added) * src/views/partials/track-editor.ejs (added) * src/views/partials/view-switcher.ejs (added) * src/views/shell.ejs (added) Initial commit — PrutFolio v1 source (pulled from Hetzner /srv/prutfolio)