Changeset 88d7c8f in Klonkt for src/config/database.js


Ignore:
Timestamp:
07/29/2026 07:15:16 AM (6 weeks ago)
Author:
Robin Genis <roboburr@…>
Branches:
main
Children:
e27b8db
Parents:
439f095
Message:

Een gated voorstel bereikte de andere guardians nooit

Op de vloot nagekeken waarom YouTube-voorbeelden bij beta uit blijven: het
voorstel van sound-fabrics staat er, met een ja van een van de drie guardians,
en het is stil verlopen. Niet omdat iemand bezwaar had, maar omdat niemand
anders het ooit gezien heeft.

Het voorstel wordt geadresseerd aan de server van het kind, want die telt en
handhaaft (5.6). Maar daarmee bereikt het alleen de voorsteller en het kind. De
twee guardians op andere servers weten van niets, kunnen dus niet antwoorden, en
een drempel van twee is onhaalbaar. Elk voorstel verloopt na een dag.

De ontbrekende schakel is het doorsturen, precies wat 5.3 al doet voor een
gated follow: de server van het kind kent de gezaghebbende guardian-lijst, dus
die stuurt het voorstel door. Elke guardian bewaart een kopie die hij kan
beantwoorden, en het antwoord reist terug naar het kind, dat telt.

Changed files:
src/config/database.js

  • tabel ap_gated_reviews, de guardian-kopie (zelfde vorm als ap_follow_reviews)

src/services/guardianship/gated.js

  • de kopie-opslag: bewaren, lezen, beantwoorden, opruimen

src/services/guardianship/handshake.js

  • ward-kant: doorsturen naar de andere guardians zodra het voorstel openstaat
  • guardian-kant: de doorgestuurde kopie bewaren om te kunnen antwoorden

src/routes/guardian.js

  • gatedReviews in de dashboardstaat; POST /guardian/api/gated/:id stuurt het antwoord naar de inbox van het kind

src/assets/js/guardian.js, src/assets/css/guardian.css

src/services/i18n.js

  • de teksten in nl, en, de

test/gated-settings.test.js

  • de hele keten: voorstellen, doorsturen naar allebei de anderen, de kopie opslaan, antwoorden, en pas bij twee van drie gaat de gate open

remarks: dit forceert niets; het maakt alleen mogelijk wat de spec al bedoelde.
Twee van de drie guardians moeten nog steeds akkoord gaan, en het venster is
24 uur.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/config/database.js

    r439f095 r88d7c8f  
    514514      created_at DATETIME DEFAULT CURRENT_TIMESTAMP
    515515    );
     516    -- The guardian-side COPY of a gated-setting proposal on a ward, forwarded
     517    -- here by the WARD's server (the same shape ap_follow_reviews has for a
     518    -- gated follow). Without it a guardian on another server never learns a
     519    -- proposal exists and can never answer it, so a threshold of two can never
     520    -- be reached and every proposal expires. The answer goes back to the
     521    -- ward's inbox, which tallies (5.6).
     522    CREATE TABLE IF NOT EXISTS ap_gated_reviews (
     523      id TEXT NOT NULL,            -- the offer id, as minted by the proposer
     524      guardian_slug TEXT NOT NULL, -- us, one of the ward's guardians
     525      ward_uri TEXT NOT NULL,
     526      ward_inbox TEXT,
     527      proposer TEXT,               -- who opened it (for display)
     528      feature TEXT NOT NULL,
     529      value INTEGER NOT NULL,
     530      created_at TEXT DEFAULT CURRENT_TIMESTAMP,
     531      PRIMARY KEY (guardian_slug, id)
     532    );
    516533    CREATE TABLE IF NOT EXISTS ap_gated_votes (
    517534      slug TEXT NOT NULL,          -- the WARD, on this server
Note: See TracChangeset for help on using the changeset viewer.