Ignore:
Timestamp:
08/06/2026 09:15:46 AM (5 weeks ago)
Author:
Claude (agent) <aiclaude@…>
Branches:
main
Children:
6bc5ebd
Parents:
14f7cb2
git-author:
Robin <roboburr@…> (08/06/2026 09:15:45 AM)
git-committer:
Claude (agent) <aiclaude@…> (08/06/2026 09:15:46 AM)
Message:

De halve schrijfactie kan niet meer (shaer-9e9 fase 3, deel 1)

markLiked, unmarkLiked, markBoosted, unmarkBoosted, setMyReaction,
getMyReactions en getTimelineReaction staan niet langer op het default-object
van ActivityPubService. Routes importeren dat object, dus daarmee is de helft
schrijven vanaf een route onmogelijk geworden in plaats van afgeraden. De named
exports blijven bestaan voor intern gebruik en voor de tests. Een test bewaakt
het oppervlak, want een afspraak in een comment overleeft geen half jaar.

Meteen ook de laatste halve schrijfactie weg, en die was van mijzelf: in de
interact-boost stond nog een kale setMyReaction "zodat de knop klopt voordat de
resolve terug is". Dat is nu setReaction, dus ook dat korte moment schrijft
beide bronnen; de resolve werkt hem daarna bij met de note zodat de post in je
tijdlijn belandt.

De kolommen zijn gedocumenteerd als afgeleide, op de plek waar iemand ze
tegenkomt. Met het onderscheid erbij: ap_timeline.boosted verdient zijn bestaan
als index (Cirkel-WHERE, boostedCount), ap_timeline.liked niet.

WAT IK BEWUST NIET DOE: ap_timeline.liked weggooien. Het plan zegt dat het kan,
en dat klopt, maar zolang die kolom gevuld blijft is terugdraaien een
code-revert en geen dataherstel. Weggooien hoort pas als fase 2 een tijd goed
heeft gestaan -- niet in dezelfde sessie waarin het leespad is omgezet.

Suite 431/431.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/services/ActivityPubService.js

    r14f7cb2 r68a4d1b  
    33963396  try { if (!_cirkelMembers) _cirkelMembers = db.prepare('SELECT name, url, icon FROM ap_following WHERE slug = ? AND auto_boost = 1 ORDER BY name'); return _cirkelMembers.all(slug); } catch { return []; }
    33973397}
    3398 // Mark a timeline post as boosted so it shows in the Cirkel (mixed by date).
     3398// AFGELEIDE, GEEN BRON (shaer-9e9). De waarheid over "heb ik hierop gereageerd"
     3399// staat in ap_my_reactions; deze vlaggen worden daaruit bijgehouden door
     3400// setReaction en door niets anders. Roep ze niet los aan -- dan schrijf je de
     3401// helft, en dat is precies hoe shaer:liked maandenlang false bleef (04aca12).
     3402//
     3403// ap_timeline.boosted verdient zijn bestaan wel: hij staat in de WHERE van de
     3404// Cirkel-feed (getCirkelPosts) en in boostedCount, dus hij is een index en geen
     3405// kopie. ap_timeline.liked wordt nergens als verzameling bevraagd en kan weg
     3406// zodra fase 2 lang genoeg goed staat; hij is nu nog het vangnet waarmee
     3407// terugdraaien een code-revert blijft in plaats van dataherstel.
    33993408let _markBoost, _unmarkBoost, _boostedCount;
    34003409export function markBoosted(slug, noteId) {
     
    48414850  buildActor, buildNote, buildCreate, buildOutbox, buildFollowers, buildFollowing, buildFeatured,
    48424851  followerCount, deliver, fetchActor, verifyRequest, handleInbox, deliverCreate, deliverDelete, deliverUpdate, deliverActorUpdate, resyncFeaturedPins,
    4843   getInteractions, getInteractionById, setInteractionBoosted, setInteractionLiked, setMyReaction, getMyReactions, buildReplyNote, getOutboxNote, getSentNotes, deliverReply, resolveRemoteNote, noteAudience, mayReadNote,
     4852  getInteractions, getInteractionById, setInteractionBoosted, setInteractionLiked, buildReplyNote, getOutboxNote, getSentNotes, deliverReply, resolveRemoteNote, noteAudience, mayReadNote,
    48444853  listOutbox, deliverOutboxDelete, deliverOutboxUpdate, deliverDirectNote,
    48454854  webfingerResolve, followActor, resolveRemoteActor, unfollowActor, handleMoveInbox, moveAccount, listFollowing, setAutoBoost, backfillFromOutbox, getTimeline, getDirectMessages, isoStamp, timelineAttachments, timelineEmojis, timelineObjectLinks, timelineQuote, timelineEmbed, applyQuoteProps, deliverToActor, sendInteraction, voteOnPoll, voteOnRemotePoll,
     
    48474856  gateOutgoingFollow, performApprovedFollow,
    48484857  parseOwnPoll, pollTally, ownPollView, deliverPollUpdate, maybeCrawlThread, sendReport, localMentionSlugs,
    4849   autoBoostCount, boostedCount, markBoosted, unmarkBoosted, markLiked, unmarkLiked, setReaction, getReaction, getReactionsFor, getTimelineReaction, upsertBoostedNote, getCirkelPosts, getCirkelMembers, selfHealTimeline,
     4858  autoBoostCount, boostedCount, setReaction, getReaction, getReactionsFor, upsertBoostedNote, getCirkelPosts, getCirkelMembers, selfHealTimeline,
    48504859  getNotifications, listBlocks, isBlockedAny, blockTarget, unblock,
    48514860  deliverWithRetry, enqueueDelivery, processDeliveryQueue, startDeliveryWorker,
Note: See TracChangeset for help on using the changeset viewer.