Changeset f06ed56 in Klonkt for src/config/database.js


Ignore:
Timestamp:
08/10/2026 03:42:31 AM (4 weeks ago)
Author:
Bart <bart@…>
Branches:
main
Children:
7e53594
Parents:
8064da1
Message:

Een logboek, zodat de reden ergens blijft staan

Guardianship-events waren vluchtig: onGuardianshipEvent wekte de long-poll,
zocht in een tabel van zeven soorten of er een push bij hoorde, en liet de rest
vallen. Elf van de achttien soorten verdwenen spoorloos, met hun inhoud. Een
weigering droeg reason: 'not_a_teapot' tot precies daar en niet verder --
terwijl §4.2 eist dat de ward en zijn guardians die reden te HOREN krijgen, en
niet dat ze hem afleiden uit een aanbod dat opeens weg is.

Vastleggen en melden zijn nu twee dingen. Alles komt in ap_guardian_events;
welke gebeurtenis een mens wakker maakt blijft de aparte, korte lijst die het
altijd al was.

Ingeklapt en onderaan, want hier vraagt niets om een antwoord. Zou dit tussen
de wachtrijen staan, dan wordt "moet ik iets doen" onleesbaar -- dezelfde reden
waarom de afgehandelde hulpvragen daar al staan.

200 per account, jongste eerst. Een logboek dat oneindig groeit wordt er een
die niemand opent, en afkappen aan de verkeerde kant zou hem onbruikbaar maken
op het moment dat er juist iets gebeurt. Schrijffouten worden geslikt: het
logboek is bijzaak en mag de commit of de weigering zelf nooit meesleuren.

Onbekende soorten vallen in de PWA terug op hun ruwe naam. Zichtbaar en lelijk
is beter dan netjes en afwezig.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/config/database.js

    r8064da1 rf06ed56  
    8282  db.exec(`CREATE UNIQUE INDEX IF NOT EXISTS idx_ap_outgoing_follows_target
    8383           ON ap_pending_outgoing_follows(ward_slug, target_uri)`);
     84  // Wat er gebeurd is, en waarom (shaer-p729, §4.2). Guardianship-events waren
     85  // vluchtig: onGuardianshipEvent wekte de long-poll en stuurde eventueel een
     86  // push, en de rest van de gebeurtenis loste op. Een weigering droeg
     87  // `reason: 'not_a_teapot'` tot in die functie en verder niet -- de ward en
     88  // zijn guardians hoorden het alleen doordat het aanbod uit de wachtrij
     89  // verdween. §4.2 eist dat ze het TE HOREN krijgen, met de reden erbij.
     90  //
     91  // Een logboek, geen wachtrij: hier staat niets dat om een antwoord vraagt.
     92  // Daarom hoort het ook ingeklapt te staan -- naast wat nog wel wacht, maakt
     93  // afgelopen nieuws de open vraag onleesbaar.
     94  db.exec(`CREATE TABLE IF NOT EXISTS ap_guardian_events (
     95    id INTEGER PRIMARY KEY AUTOINCREMENT,
     96    slug TEXT NOT NULL,
     97    kind TEXT NOT NULL,
     98    payload TEXT,
     99    created_at TEXT DEFAULT CURRENT_TIMESTAMP
     100  )`);
     101  db.exec('CREATE INDEX IF NOT EXISTS idx_ap_guardian_events_slug ON ap_guardian_events(slug, id DESC)');
    84102  db.exec(`CREATE TABLE IF NOT EXISTS ap_outgoing_follow_approvals (
    85103    follow_id TEXT NOT NULL,
Note: See TracChangeset for help on using the changeset viewer.