Changeset 32a4ffb in Klonkt for src/config/database.js


Ignore:
Timestamp:
08/06/2026 01:27:37 PM (5 weeks ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
621126b
Parents:
279ca0b
git-author:
Robin <roboburr@…> (08/06/2026 01:27:28 PM)
git-committer:
roboburr <roboburr@…> (08/06/2026 01:27:37 PM)
Message:

Onthoud de URI van antwoorden die we al ontvangen (shaer-e9g)

Antwoorden van accounts die je volgt komen gewoon binnen, ondertekend door de
schrijver zelf. belongsInTimeline houdt ze uit de Krant -- een antwoord hoort in
zijn draad, niet in de tijdlijn -- en daarna bewaarden we ze nergens. Kwam er
later een DOORGESTUURD antwoord op zo'n bericht, dan kende knownNoteUri de ouder
niet en werd het afgewezen. Terwijl we die ouder wel degelijk hadden gehad.

Op boiert ging daar 72% van het doorstuurverkeer op stuk: 18 unieke reacties
geweigerd tegen 7 geaccepteerd, in drie uur. Alle achttien waren echte antwoorden
in echte gesprekken, en de ontbrekende ouders waren stuk voor stuk geschreven
door accounts die boiert volgt.

Nieuwe tabel ap_seen_notes, alleen de URI. Geen inhoud, niets extra's op het
scherm, geen tweede administratie naast ap_timeline: dit beantwoordt uitsluitend
de vraag 'kennen wij dit bericht?'. Na 30 dagen gesnoeid, af en toe tijdens het
schrijven zodat een server die weken doorloopt ook opruimt -- doorsturen gebeurt
kort na het antwoord.

De grens zit in WIE er onthouden wordt, en dat is de hele veiligheidsvraag.
Alleen schrijvers die je zelf volgt. Zou het voor iedereen gelden, dan kan een
vreemde eerst een bericht neerleggen en daarna met een doorgestuurd antwoord
daarop de dereference naar een adres van zijn keuze sturen. Er wordt dus niets
van een onbekende aangenomen dat we niet al hadden.

Dit volgt op Barts keuze om gesprekken van anderen NIET te gaan volgen: dat
blijft zo. We stoppen alleen met weggooien wat we al kregen.

Gecontroleerd dat de tests bijten: haal de lookup uit knownNoteUri en geval 5
valt om, haal de volg-eis weg en geval 3. Suite 478/478.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/config/database.js

    r279ca0b r32a4ffb  
    469469      UNIQUE(slug, actor_uri)
    470470    );
     471    -- Antwoorden van accounts die we volgen komen gewoon binnen, ondertekend
     472    -- door de schrijver, maar horen niet in de Krant (belongsInTimeline) en
     473    -- werden daarna nergens bewaard. Kwam er later een doorgestuurd antwoord OP
     474    -- zo'n bericht, dan kenden we de ouder niet en wezen we het af (shaer-e9g).
     475    -- Alleen de URI, geen inhoud: dit voedt uitsluitend de vraag "kennen wij dit
     476    -- bericht?". Wordt na 30 dagen gesnoeid; doorsturen gebeurt kort na het
     477    -- antwoord, dus langer bewaren levert niets op.
     478    CREATE TABLE IF NOT EXISTS ap_seen_notes (
     479      uri TEXT PRIMARY KEY,
     480      created_at DATETIME DEFAULT CURRENT_TIMESTAMP
     481    );
     482    CREATE INDEX IF NOT EXISTS idx_ap_seen_notes_age ON ap_seen_notes(created_at);
    471483    CREATE TABLE IF NOT EXISTS ap_timeline (
    472484      id TEXT NOT NULL,              -- the remote note's AP id
Note: See TracChangeset for help on using the changeset viewer.