|
Guardian 2: follow-goedkeuring (FEP-633c §5.3)
Een Follow op een ward wordt niet meer automatisch geaccepteerd: hij wacht op
goedkeuring van de guardians. Afgebakend zoals de spec: gating geldt ALLEEN voor
ward-actors (die guardians hebben); een gewone site zonder guardians accepteert
als vanouds, geen gedragswijziging. Een gecommitte guardian die zelf volgt wordt
wel meteen geaccepteerd (Barts regel: die heeft geen gate nodig, en zo werkt het
meekijken). Quorum per ward: 'any' (default, één volstaat), 'all' of 'none'; een
enkele reject weigert.
De guardian ziet de verzoeken in /guardian2 (ward en guardian zitten op dezelfde
familie-Klonkt, dus lokaal leesbaar) en tikt Accept/Deny. Bij goedkeuring stuurt
Klonkt de Accept(Follow) en legt de follower vast, zodat bezorging (ook
followers-only) begint. Cross-instance federatie van de goedkeuring is een latere
verfijning (de daemon heeft het patroon).
Changed files:
src/services/ActivityPubService.js
- inbound Follow: gate voor ward-actors; acceptGatedFollow/rejectGatedFollow
src/config/database.js
- ap_pending_follows + ap_pending_follow_approvals
src/services/guardianship/index.js
- follows-module geexporteerd
src/routes/guardian2.js
- GET /api/follow-requests, POST /api/follow/:id (guardian-gecheckt)
src/views/pages/guardian2.ejs, src/assets/js/guardian2.js
src/services/i18n.js
- guardian2 follow_title/follow_sub (nl/en/de)
New file:
src/services/guardianship/follows.js
- de gating-store + quorum-beslissing (any/all), pure en testbaar
test/follow-gating.test.js
- any/all-quorum en single-reject
remarks: npm test 167/167. v1 /guardian en niet-ward-sites onaangeraakt.
-robo
Co-Authored-By: Claude Opus 4.8 <noreply@…>
|