Changeset f3a58a4 in Klonkt for docs


Ignore:
Timestamp:
08/02/2026 06:22:37 PM (5 weeks ago)
Author:
Bart <bart@…>
Branches:
main
Children:
04d5aeb
Parents:
af035e6
Message:

Ontwerp uitgaande follows: gecorrigeerd en aan de beads gehangen

De aanleiding klopte niet: guardians worden wel degelijk ingelicht als hun ward
iemand gaat volgen (1a2f206, een directe note per guardian). Alleen is dat
informeren en geen gate, precies zoals shaer-p729 het stelt. De deur staat al
open als het bericht aankomt.

Gehangen aan shaer-p729 (bouwen) en shaer-yeo5 (de spec-vraag). Raakvlakken met
shaer-3kp opgeschreven: "following approve" staat daar al als gated feature, dus
het beleid hoort in dat instellingen-object en niet in een eigen mechaniek.

Plus een losse constatering: ap_pending_follows.quorum wordt nooit meegegeven,
dus alles is 'any'. shaer-hxg is gesloten met any/all als opgeleverd en de test
slaagt omdat hij de waarde zelf zet.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • docs/ward-outbound-follows-design.md

    raf035e6 rf3a58a4  
    11# Uitgaande follows van een ward — ontwerp
    22
     3Bijbehorende beads: **shaer-p729** (bouwen) en **shaer-yeo5** (de spec-vraag:
     4informeren of gaten?). Dit document beantwoordt yeo5 en beschrijft wat p729
     5inhoudt.
     6
    37FEP-633c §5.3 houdt follows *naar* een ward tegen tot de guardians beslissen.
    4 Follows *van* een ward gaan ongehinderd de deur uit. `ingestOutboxActivity`
    5 roept bij `case 'Follow'` meteen `followActor()` aan: geen ward-check, geen
    6 guardian, geen wachtrij. `mee` heeft een vastgelegde guardian en kan vandaag
    7 iedereen op de fediverse volgen zonder dat iemand het ziet.
     8Follows *van* een ward gaan ongehinderd de deur uit: `ingestOutboxActivity`
     9roept bij `case 'Follow'` meteen `followActor()` aan, zonder ward-check en
     10zonder wachtrij.
     11
     12De guardians blijven niet in het duister. Sinds 1a2f206 krijgt elke guardian een
     13directe note zodra zijn ward iemand gaat volgen. Maar dat is Robins constatering
     14van 31-7 in één zin: **dat is informeren, geen gate.** De deur is al open op het
     15moment dat het bericht aankomt, en een guardian die te laat kijkt kan alleen nog
     16achteraf iets vinden van iets dat al gebeurd is.
    817
    918De asymmetrie is half te verdedigen. `Block` (Shaers "Orbit") is uitgaand ook
    1019ongated, en dat is de veilige richting: een kind dat zijn eigen wereld kleiner
    1120maakt heeft geen toestemming nodig. Volgen is de richting die hem opent.
    12 
    13 Er staat hierover niets in de docs of de FEP-notities. Dit is dus een gat in het
    14 ontwerp, niet een ongeschreven stuk implementatie.
    1521
    1622## De regel
     
    105111   guardianship eindigt? Automatisch goedkeuren of laten vervallen.
    106112
     113## Raakvlakken met andere beads
     114
     115- **shaer-3kp** (gated features, guardian-overeengekomen instellingen) noemt
     116  "following approve" al met zoveel woorden. Dat is de plek waar het beleid
     117  hoort te wonen: één instellingen-object op de ward met de server als bron van
     118  waarheid. Dit ontwerp moet daar een veld in zijn, geen eigen mechaniek ernaast.
     119- **shaer-h6u** (lokale guardian via de lijn i.p.v. de gedeelde database) raakt
     120  de bezorgweg die hier ook gebruikt wordt.
     121- **shaer-zjt** bouwt het guardian-dashboard mét quorumteller; de nieuwe
     122  wachtrij moet daar meteen in passen.
     123
     124### De quorum-kolom is nooit aangesloten
     125
     126Los van dit ontwerp, en niet in een bead gevonden: `ap_pending_follows.quorum`
     127wordt door de aanroep in `ActivityPubService.js` nooit meegegeven, dus alles
     128valt terug op de default `'any'`. `'all'` bestaat alleen in de vergelijking in
     129`decide()` en wordt nergens geschreven; `'none'` heeft helemaal geen tak en zou
     130zich als `'any'` gedragen in plaats van als "open". shaer-hxg is gesloten met
     131"quorum any/all" als opgeleverd, en `test/follow-gating.test.js` slaagt omdat de
     132test de waarde zelf meegeeft — precies het pad dat productie nooit neemt.
     133
     134Gevolg: een ward met drie guardians gaat vandaag open op één goedkeuring, ook
     135als iemand dacht `all` te hebben ingesteld. Verdient een eigen bead, en de
     136oplossing hangt samen met shaer-3kp: als het beleid daar komt te wonen, is dat
     137meteen de plek waar de inkomende kant zijn quorum vandaan haalt.
     138
    107139## Daemon-pariteit
    108140
Note: See TracChangeset for help on using the changeset viewer.