Featured: de kolommen die buildNote nodig heeft (shaer-6oth, laatste punt)
De bead vroeg nog na te gaan of dezelfde kolommen ergens anders ontbraken
waar buildNote op een DB-rij wordt losgelaten. Alle acht aanroeppunten
langsgelopen: zes zijn schoon (twee lezen SELECT *, backfillNewFollower is
15-8 al bijgewerkt, en de drie handgebouwde rijen in de webroutes geven de
velden mee). De featured-collectie was het gat.
De gok in de bead was half raak. Featured filtert wel op fan_only --
daarom leek hij goed -- maar selecteert ap_visibility, paid en excerpt
niet, en filtert daar ook niet op. Twee gevolgen, op een route die
publiek en onbetekend opvraagbaar is:
een vastgezette BETAALDE post lekte zijn volledige tekst, want
buildNote slaat zijn redactie over zodra post.paid undefined is. Precies
het mechanisme van Barts melding van 15-8; toen zijn outboxSlice en
backfillNewFollower bijgewerkt en is deze route gemist.
een vastgezette QUIET-post kreeg to: as:Public in plaats van zijn
volgers -- luider dan de schrijver koos, dezelfde vorm als shaer-6oth.
excerpt hoort erbij, anders valt de teaser na de reparatie terug op de
eerste alinea van precies de tekst die verborgen moet blijven. Het
visibility-filter erbij: niet-publiek hoort niet in een publieke
collectie, ook niet vastgezet.
De toets is een LUS over de publieke collecties die posts dragen, niet
een toets op deze ene query -- dezelfde reden die ap-collection-paging
al noemt: het gat ontstond doordat de ene plek het wel had en de andere
niet, en een toets per plek vraagt om dezelfde vergeetachtigheid. Over
HTTP, want de query zit in de route.
Tegenbewijs: met de kolommen er weer uit vallen precies de twee
featured-toetsen (het lek is dus gemeten, niet beredeneerd), blijft de
outbox groen omdat die al gerepareerd was, en blijft de vrienden-toets
groen -- wat bevestigt dat het fan_only-filter er altijd al was. Eerste
poging tot dat tegenbewijs sloeg niet aan doordat de mutatie niet
matchte; die is overgedaan met controle dat hij er echt in zat.
Volle suite 1245 groen.