Changeset 5a6a457 in Klonkt for src/server.js


Ignore:
Timestamp:
06/25/2026 05:15:48 AM (3 months ago)
Author:
Robin Genis <roboburr@…>
Branches:
main
Children:
d7526bd
Parents:
99234c3
Message:

feat(fediverse): federate on save+scheduler, delivery retry-queue, music as listen-link

#1 Posts now federate to followers not only on create, but also when a draft/

scheduled post becomes published (editor save) and when the Scheduler flips a
scheduled post live — previously those silently didn't reach followers.

#2 Delivery retry-queue (ap_delivery): a failed delivery (down server/timeout) is

queued and retried with backoff (1/5/15/60/180/360 min, 6 tries) by a worker,
instead of fire-and-forget. Signing key re-derived from the slug, never stored.

#3 Music posts: audio shortcodes federate as a '🎵 listen on the site' link to the

post (protected player) instead of the raw mp3 — keeps Klonkt's audio friction
intact (no downloadable file handed to Mastodon).

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/server.js

    r99234c3 r5a6a457  
    6161import ogRoutes from './routes/og.js';
    6262import apRoutes from './routes/activitypub.js';
    63 import { apWants } from './services/ActivityPubService.js';
     63import { apWants, startDeliveryWorker } from './services/ActivityPubService.js';
    6464
    6565// SESSION_SECRET: use the env var if set. Otherwise auto-generate a strong one
     
    163163initializeDatabase();
    164164startScheduler(); // release planning: publish scheduled posts when publish_at is reached
     165startDeliveryWorker(); // retry failed fediverse deliveries with backoff
    165166
    166167// Safety net: guarantee that there is always a primary site (solo/hub/circle).
Note: See TracChangeset for help on using the changeset viewer.