Changeset fb22f78 in Klonkt for src/routes/activitypub.js


Ignore:
Timestamp:
08/08/2026 04:57:37 AM (5 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
47ca083
Parents:
39a9d21
git-author:
Robin <roboburr@…> (08/08/2026 04:57:33 AM)
git-committer:
Robin <roboburr@…> (08/08/2026 04:57:37 AM)
Message:

De outbox vertelt de discografie mee (shaer-0nh, stap 4)

Een track verschijnt nu als Create(Audio) in de outbox, door de posts heen op
datum. Daarmee is een Klonkt-actor als kanaal uit te lezen: precies zoals ik
Funkwhales kanaal uitlas -- hun achttien tracks stonden in hun outbox.

WAAROM GEEN BEZORGING NAAR VOLGERS, terwijl ik stap 4 eerder zo beschreef.
Mastodon neemt Audio aan als STATUSTYPE. Publiceer je een post met een album,
dan zouden volgers de Note met spelers krijgen EN N losse Audio-statussen:
dezelfde muziek twee keer in hun tijdlijn. Dat is geen spiegel afmaken maar
andermans tijdlijn vervuilen. Een kanaal-lezer HAALT op; hij hoeft niet
geduwd te worden. De post is het bericht, de outbox is de discografie.

DE DEUR BLIJFT DICHT. buildOutbox krijgt de tracks als ARGUMENT en haalt ze
uitdrukkelijk niet zelf op. De route beslist wie wat ziet, en de blocked-tak
daar levert een outbox zonder posts EN zonder tracks. Een bouwer die stiekem
zijn eigen database bevraagt zou dwars door die dichte deur heen leveren --
dat had ik bijna gebouwd, en de tak in de route ving het pas bij nalezen.

Het id van de activiteit is stabiel (<track>#create), zodat twee keer ophalen
niet twee keer nieuws is.

5 tests.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/activitypub.js

    r39a9d21 rfb22f78  
    133133     ORDER BY COALESCE(published_at, created_at) DESC LIMIT 20`
    134134  ).all(site.id);
    135   const ob = AP.buildOutbox(baseUrl(req), site, posts);
     135  // De tracks gaan mee voor iedereen die de deur door mag; de blocked-tak
     136  // hierboven levert bewust een outbox ZONDER posts en zonder tracks.
     137  const ob = AP.buildOutbox(baseUrl(req), site, posts, AP.siteOpenTracks(site.id));
    136138  if (audience === 'friend') {
    137139    // The owner's app builds its feed from this leg, and every note here is
Note: See TracChangeset for help on using the changeset viewer.