Een voorstel krijgt een antwoord, een status en een zichtbare kring
Robin meldde drie dingen na de voorstelronde: er lijkt niets te gebeuren, de
status van een voorstel is nergens te volgen, en in /guardian zie je niet wie
de mede-guardians van een kind zijn. Onderzoek op beta wees de kern aan: de
ronde is aangekomen en geteld, maar elk voorstel was shaer:externalEmbeds, en
die stond al aan. Afspelen is nooit voorgesteld, en dat KON ook niet: de knop
"Afspelen voorstellen" verscheen alleen bij embeds === true, en voor een ward
op een andere server is die waarde onbekend, dus null, dus geen knop. Onbekend
is niet uit.
Drie reparaties, een per klacht.
Een: de lus sluit. De server van het kind beantwoordt de Offer die de
beslissing opende, terug naar de voorsteller: Accept als hij settelde op het
voorgestelde, Reject bij het tegendeel. Alleen de stem van het kind-account
telt als uitkomst; een vreemde die onze boeken wil sluiten wordt genegeerd.
Zonder dit kon het scherm van de voorsteller alleen maar eeuwig "wacht"
zeggen, wat er ook gebeurd was: de telling is het prive-grootboek van de
server van het kind.
Twee: de voorsteller houdt een eigen boek bij (ap_gated_sent) en het paneel
toont per ward de stand: wacht, aangenomen, afgewezen, of eerlijk verlopen als
het venster leegliep. Stilte na het venster is geen "loopt nog".
Drie: voor een ward op een andere server toont het paneel nu wel wie de
guardians zijn. Het lidmaatschap is publiek op het actordocument
(shaer:guardians, 2.1); de beschikbaarheid is en blijft het prive-grootboek
van hun server (3.6.1) en wordt alleen benoemd, niet getoond.
Changed files:
src/config/database.js
- tabel ap_gated_sent (het boek van de voorsteller)
- kolom proposer op ap_gated_offers, voor het antwoord naar huis
src/services/guardianship/gated.js
- recordSent/recallSent/settleSent/listSent en sentStatus (puur, getest)
- rememberGatedOffer onthoudt de voorsteller
src/services/guardianship/handshake.js
- answerGatedProposer: het settle-antwoord naar de voorsteller
- de inbox herkent dat antwoord en settelt het eigen boek; alleen het
kind-account mag dat
src/routes/guardian.js
- proposeGated schrijft het boek; dashboardState serveert per ward de
voorstellen met status
- GET /wards/guardians: lokaal met beschikbaarheid, remote de publieke
lijst van hun actordocument
src/assets/js/guardian.js
- de afspeel-knop verschijnt ook bij onbekende embeds-stand (de bug)
- statusregels onder de instellingen-knoppen
- remote guardians opgehaald bij het openen van het paneel
src/assets/css/guardian.css
- g-prop-kleuren: de staat spreekt voor de woorden uit
src/services/i18n.js
- prop_*- en panel_guards_far-strings, NL/EN/DE
test/gated-settings.test.js
- de lus sluit: de voorsteller krijgt het antwoord, van alleen het kind
- het boek: open, aangenomen, afgewezen, verlopen
remarks: 334 tests groen, server start op een schone database. De guardian-kant
(sound-fabrics) en de ward-kant (beta) hebben allebei deze commit nodig: de
knop en de status leven bij de guardian, het antwoord bij het kind.
-robo
Co-Authored-By: Claude Opus 5 <noreply@…>