Ignore:
Timestamp:
08/07/2026 11:58:49 PM (5 weeks ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
a9bc6ab
Parents:
9ce14b8
git-author:
Robin <roboburr@…> (08/07/2026 11:58:47 PM)
git-committer:
roboburr <roboburr@…> (08/07/2026 11:58:49 PM)
Message:

Waarschuwen voor wat er blijft hangen (shaer-nf9)

Barts opdracht: waarschuw bij het openen en het accepteren van een gate-voorstel.
Zijn zin was "Een geopende poort gaat niet meer dicht!"

DIE ZIN STAAT ER NIET, EN DAT IS MET OPZET. Als uitspraak over de INSTELLING is
hij onwaar: shaer-ahy eist het tegendeel en de code doet het -- een voorstel
draagt true of false. Een waarschuwing die aantoonbaar niet klopt neemt de rest
van het scherm mee in zijn val zodra iemand het merkt.

Wat wel onomkeerbaar is, is het GEVOLG, en die versie is zwaarder:

Wat hier doorheen komt, komt niet meer terug. Je kunt deze instelling later
weer dichtzetten -- wat je kind gezien heeft niet.

Independence krijgt zijn eigen tekst, want dat draagt gezag over en is wel echt
onomkeerbaar (shaer-90v). Welke tekst je krijgt volgt uit de catalogus, dus een
nieuwe gate hoeft niets te bedenken.

ONBEKEND KRIJGT DE ZWAARSTE. Een guardian elders kan iets voorstellen dat onze
catalogus niet kent. Bij twijfel waarschuwen we zwaarder, niet lichter -- de
faalstand die pijn doet is een guardian die iets doorlaat omdat het scherm er
licht over deed.

ALLEEN BIJ OPENZETTEN. Dichtzetten laat niets nieuws door, en een waarschuwing
die overal staat wordt nergens gelezen.

BIJ ACCEPTEREN KON HET GEVRAAGDE NIET. De bead stelde voor te tonen of jouw
antwoord de drempel haalt, want gatedProgress bestaat al. Maar die werkt op een
LOKALE slug, en er zijn geen lokale wards -- voor deze kaart komt hij altijd op
null uit. Een verzonnen "1 van 2" zou hier het gevaarlijkste getal op het scherm
zijn: het leest als "er kan nog iemand na mij". Er staat nu wat waar is: wij zien
de telling niet, die loopt op de server van het kind, en jouw ja kan de doorslag
geven -- want de tally settelt op het moment dat de drempel gehaald is.

Geen window.confirm, zoals bij het loslaten van een ward: de uitleg staat er, en
dan pas de knop. Drie talen. Vier toetsen, twee vallen om bij mutatie. 619/619.

File:
1 edited

Legend:

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

    r9ce14b8 rb2646cc  
    207207}
    208208
     209/**
     210 * Wat er blijft hangen als deze gate opengaat (shaer-nf9).
     211 *
     212 * BARTS ZIN KLOPT NIET LETTERLIJK, en dat is precies waarom dit hier staat. "Een
     213 * geopende poort gaat niet meer dicht" is onwaar over de INSTELLING -- shaer-ahy
     214 * eist het tegendeel en de code doet het: een voorstel draagt true of false. Maar
     215 * het GEVOLG is wel onomkeerbaar. De poort gaat later weer dicht; wat er in de
     216 * tussentijd doorheen kwam komt niet terug. Een kind dat iets gezien heeft, heeft
     217 * het gezien.
     218 *
     219 * Dat verschil moet in de tekst, om twee redenen. Een waarschuwing die aantoonbaar
     220 * onwaar is neemt de rest van het scherm mee in zijn val zodra iemand het merkt.
     221 * En de ware versie is ZWAARDER: "je kunt dit terugdraaien maar niet ongedaan
     222 * maken" zet je harder stil dan een verbod dat niet blijkt te kloppen.
     223 *
     224 * ONBEKEND KRIJGT DE ZWAARSTE TEKST. Een mede-guardian elders kan een feature
     225 * voorstellen die onze catalogus niet kent, en dan weten wij niet wat het doet.
     226 * Bij twijfel waarschuwen we zwaarder, niet lichter -- de faalstand die hier pijn
     227 * doet is een guardian die iets doorlaat omdat het scherm er licht over deed.
     228 */
     229export function gateConsequence(feature) {
     230  const g = GATE_CATALOGUE.find((x) => x.feature === feature);
     231  if (!g) return 'unknown';
     232  return g.reversible === false ? 'irreversible' : 'reversible';
     233}
     234
    209235/** The open decision for a feature, for showing progress ("1 of 2"). */
    210236export function gatedProgress(slug, feature) {
     
    371397export default {
    372398  GATE_CATALOGUE, gateRows, knownSetting,
    373   tallyGatedSetting, thresholdFor, featureColumn, recordGatedVote, gatedProgress, GATED_WINDOW_MS,
     399  tallyGatedSetting, thresholdFor, featureColumn, recordGatedVote, gatedProgress, gateConsequence, GATED_WINDOW_MS,
    374400  parseGatedSetting, buildGatedOffer, rememberGatedOffer, recallGatedOffer,
    375401  recordGatedReview, getGatedReview, listGatedReviews, removeGatedReview, clearGatedReviews,
Note: See TracChangeset for help on using the changeset viewer.