Ignore:
Timestamp:
08/08/2026 05:25:06 AM (5 weeks ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
34e63f0
Parents:
2220c49
git-author:
Robin <roboburr@…> (08/08/2026 05:25:04 AM)
git-committer:
roboburr <roboburr@…> (08/08/2026 05:25:06 AM)
Message:

Antwoorden is ook iets: een eigen poort (shaer-r4c)

Bart, 8-8: "Ook meedoen aan een gesprek valt onder een gate, maak die en maak die
zichtbaar."

HIER STOND EEN AANNAME, EN DIE WAS VAN MIJ. compose liet een antwoord bewust
door, met als reden "een antwoord is meedoen aan een gesprek, geen eigen podium".
Dat is een ontwerpkeuze die ik als vanzelfsprekend had opgeschreven, en Bart
draait hem terug: meedoen aan een gesprek is ook iets waar guardians over gaan.

EEN EIGEN POORT, NIET ONDER COMPOSE. Los in beide richtingen, en daar staan
toetsen op: je kunt willen dat een kind meepraat zonder eigen podium, en ook
precies andersom. Zou compose antwoorden meesluiten, dan is de nieuwe rij in het
paneel een knop die niets doet.

DE DEUR NAAST DE POORT. De innamepoort in ingestOutboxActivity dekt alleen C2S --
Shaer. routes/posts.js roept deliverReply op drie plekken RECHTSTREEKS aan, dus
de eigen webinterface van Klonkt loopt er nooit langs. Een poort die alleen in de
app staat is geen poort. De echte controle staat nu in deliverReply zelf, het
knooppunt dat beide paden delen; de outbox houdt zijn eigen check zodat de app
een nette 403 gated_replies krijgt in plaats van een stille null.

De boei komt daar niet langs en dat is geen toeval: een hulpvraag is altijd
direct en loopt via deliverDirectNote. Er is dus geen uitzondering nodig om hem
open te houden -- maar er staat wel een toets op, want dit is het gevaarlijkste
dat deze poort kan doen: een kind dat om hulp vraagt in het draadje waar het
misgaat.

Een direct antwoord wordt door allebei de poorten gedekt (messages en replies).
Een prive-antwoord is allebei, en dan mag allebei hem tegenhouden.

Paneel en shaer:capabilities krijgen hem gratis uit de catalogus. Labels in
nl/en/de. Zes toetsen, drie mutaties gecontroleerd. Suite 646/646.

File:
1 edited

Legend:

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

    r2220c49 rffb371c  
    6363  'shaer:messages': 'gate_messages',
    6464  'shaer:compose': 'gate_compose',
     65  'shaer:replies': 'gate_replies',
    6566  'shaer:music': 'gate_music',
    6667  'shaer:quoteCards': 'gate_quote_cards',
     
    99100  { feature: 'shaer:messages', kind: 'setting', reversible: true, bead: 'shaer-3ow' },
    100101  { feature: 'shaer:compose', kind: 'setting', reversible: true, bead: 'shaer-qgev' },
     102  // MEEDOEN AAN EEN GESPREK IS OOK IETS (Bart, 8-8). Dit stond hier bewust niet:
     103  // een antwoord gold als meedoen en niet als eigen podium, dus compose liet het
     104  // door. Bart heeft dat teruggedraaid -- wie mag antwoorden staat los van wie
     105  // mag posten, en het hoort een eigen poort te zijn die je kunt zien.
     106  //
     107  // Los van compose en niet eronder: je kunt willen dat een kind wel meepraat
     108  // maar geen eigen podium heeft, en ook precies andersom.
     109  { feature: 'shaer:replies', kind: 'setting', reversible: true, bead: 'shaer-r4c' },
    101110  { feature: 'shaer:music', kind: 'setting', reversible: true, bead: 'shaer-rmz' },
    102111  { feature: 'shaer:quoteCards', kind: 'setting', reversible: true, bead: 'shaer-mls' },
Note: See TracChangeset for help on using the changeset viewer.