De outbox pagineert, want zonder first en last weigerde Funkwhale hem
De eerste CONCRETE reden die we hoorden waarom er niets van ons binnenkwam. Uit
hun log:
Error while fetching actor outbox: https://dev.klonkt.com/ap/users/dev/outbox
ValidationError: {'first': This field is required.,
'last': This field is required.}
AS2 eist die velden niet -- een OrderedCollection mag zijn items inline dragen,
en dat deden wij -- maar bijna iedereen pagineert, en een lezer die de
paginaweg volgt liep hier dood. Dagenlang zochten we het bij onze objecten
terwijl het de omslag was.
De items blijven WEL inline op de wortel. Shaer bouwt zijn feed daaruit, en wie
hem vandaag leest hoort er morgen niet voor te hoeven pagineren. Er is precies
een pagina (we kappen op MAX_OUTBOX), dus first en last wijzen naar dezelfde, en
?page=1 geeft een OrderedCollectionPage met partOf terug.
Ook de LEGE outbox van een geblokkeerde lezer draagt ze nu -- juist die zou
anders door dezelfde serializer geweigerd worden, en dan is een blokkade van
buiten niet te onderscheiden van een kapotte server.
Vijf tests. Anker bij het bewerken was .slice(0, MAX_OUTBOX): het retourblok van
buildOutbox is teken voor teken gelijk aan dat van buildFeatured, en een
patroon zonder dat anker raakte er twee.
NIET meegenomen: followers, following en featured missen first/last ook. Daar
klaagde niemand over en Mastodon leest ze zonder morren, dus dat is een aparte
afweging en geen sleepnet.
Co-Authored-By: Claude Opus 5 <noreply@…>