source: Klonkt/src/services/ActivityPubService.js@ 25f2e64

main
Last change on this file since 25f2e64 was 25f2e64, checked in by Claude (agent) <aiclaude@…>, 5 weeks ago

Weergave gelijkgetrokken: Krant en Cirkel lezen de tussentabel (shaer-9e9)

CORRECTIE: ik meldde fase 2 als klaar, en dat was te vroeg. De Krant TEKENDE
zijn like- en boostknoppen nog uit ap_timeline.liked/boosted (tl-item.ejs leest
p.liked en p.boosted), terwijl de toggle al uit getReaction besliste. Tekenen en
beslissen leunden dus op verschillende bronnen. Ze waren het eens zolang de
migratie ze gelijk hield -- synchronisatie, geen ontwerp.

getTimeline leidt liked/boosted nu af uit de tussentabel, met dezelfde
batch-query als de C2S-tijdlijn: één extra query per pagina, geen N+1. Bewust in
JS en niet als join, want de rijen komen met SELECT * en dan zouden twee
kolommen liked heten -- welke dan wint hangt van de driver af.

getCirkelPosts kon niet in JS: die filtert in de WHERE. Daar is het een LEFT JOIN
op ap_my_reactions geworden, met (rb.target_uri IS NOT NULL) AS boosted zodat de
view ongewijzigd blijft. De UNIQUE(site_slug, target_uri, kind) garandeert
hoogstens één match, dus de join kan geen rijen verdubbelen.

boostedCount telt nu de tussentabel, nog steeds met een join op ap_timeline zodat
de betekenis gelijk blijft: geboost EN in je tijdlijn.

Twee karakteriseringstests gingen hierdoor stuk, en dat is precies waarvoor ze er
staan: ze legden vast dat een kale kolomvlag een post de Cirkel in trok. Dat is
nu niet meer waar. Bewust bijgewerkt met de reden erbij, niet weggehaald.
upsertBoostedNote blijft verantwoordelijk voor de RIJ -- zonder die insert heeft
een boost van iemand die je niet volgt geen post om bij te horen.

Daarmee leest niets in de weergave nog uit de kolommen. Ze worden alleen nog
geschreven (vangnet) en gelezen door de migratie. Dat maakt de drop een losse,
terugdraaibare beslissing in plaats van een verweven.

Geen breaking change: additief en intern, dus kandidaat voor de volgende MINOR.

Suite 441/441.

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

  • Property mode set to 100644
File size: 285.2 KB

HTML preview not available, since the file size exceeds 256.0 KB.Try downloading the file instead.

Note: See TracBrowser for help on using the repository browser.