Ignore:
Timestamp:
08/09/2026 04:59:31 PM (4 weeks ago)
Author:
Bart <bart@…>
Branches:
main
Children:
89d3c06
Parents:
e62eee4
Message:

Twee richtingen, twee poorten: shaer:following naast shaer:follows

In de catalogus stond één rij voor twee mechanismen. Het paneel telde
listReviewsByDirection(slug, 'incoming') en zette dat getal onder
shaer:follows, dus een guardian las "3 wachtend" en wist niet of er drie
vreemden bij zijn kind wilden of dat zijn kind drie keer had gevraagd of het
iemand mocht volgen. Dat zijn niet dezelfde zorg, en sinds shaer-p729 bestaan
ze allebei echt.

Nu twee poorten, en het verschil ertussen is opzet. §5.3 EIST dat een Follow
naar een ward langs de guardians gaat: shaer:follows blijft dus fixed. Over de
andere richting zegt de FEP niets — wat je verder gated is expliciet aan de
implementatie gelaten — dus shaer:following is onze keuze, en dan hoort hij ook
echt losgelaten te kunnen worden. Verstelbaar, met gate_following als kolom en
dezelfde automatiek als de rest: onbeslist is dicht voor een ward en open voor
ieder ander. Een kind dat erin groeit hoeft niet eeuwig te blijven vragen.

Geen eigen ownFollowsAllowed(): wardGateAllowed() is er al en zegt er zelf bij
dat het één implementatie hoort te zijn. Een derde kopie zou precies de tweede
plek zijn die er anders over kan gaan denken.

De labels zijn nog aan de clients: de server geeft de feature-naam door, de
Guardian PWA en Shaer moeten er nog woorden bij kiezen.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/services/guardianship/queues.js

    re62eee4 r709dc6f  
    158158export function wardGates(mySlug, wardUri) {
    159159  const statuses = wardGuardianStatuses(wardUri);
    160   const wachtend = follows.listReviewsByDirection(mySlug, 'incoming')
     160  // Per richting geteld, want het zijn twee zorgen. "follows: 3 wachtend" liet
     161  // een guardian niet zien of er drie vreemden bij zijn kind willen of dat zijn
     162  // kind drie keer heeft gevraagd of het iemand mag volgen (shaer-p729).
     163  const wachtendIn = follows.listReviewsByDirection(mySlug, 'incoming')
     164    .filter((r) => r.ward_uri === wardUri).length;
     165  const wachtendUit = follows.listReviewsByDirection(mySlug, 'outgoing')
    161166    .filter((r) => r.ward_uri === wardUri).length;
    162167  return gated.gateRows({
     
    172177      feature: p.feature, value: !!p.value, status: gated.sentStatus(p, Date.now()),
    173178    })),
    174     waiting: { 'shaer:follows': wachtend || undefined },
     179    waiting: {
     180      'shaer:follows': wachtendIn || undefined,
     181      'shaer:following': wachtendUit || undefined,
     182    },
    175183    // De vraag van het kind zelf staat APART van wat er in een wachtrij staat
    176184    // (shaer-8ru). Allebei "n waiting" noemen maakt van twee verschillende
Note: See TracChangeset for help on using the changeset viewer.