Changeset 29eb745 in Klonkt for src/services/guardianship/handshake.js
- Timestamp:
- 08/08/2026 08:53:20 PM (4 weeks ago)
- Branches:
- main
- Children:
- dc0da72
- Parents:
- ea211b9
- git-author:
- Robin <roboburr@…> (08/08/2026 08:53:18 PM)
- git-committer:
- roboburr <roboburr@…> (08/08/2026 08:53:20 PM)
- File:
-
- 1 edited
-
src/services/guardianship/handshake.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/services/guardianship/handshake.js
rea211b9 r29eb745 44 44 if (type !== 'Undo') return null; 45 45 return parseRelationship(activity && activity.object); 46 } 47 48 /** 49 * De overgebleven guardians opnieuw vertellen of ZIJ nu de doorslag geven 50 * (shaer-8vt, Barts correctie 8-8). 51 * 52 * "Doorslaggevend" is geen eigenschap van een moment maar van een STAND: zodra 53 * er nog een stem nodig is, is iedereen die nog moet antwoorden het. Eenmalig 54 * berekenen bij het doorsturen bevriest een antwoord dat verandert. 55 * 56 * Nooit dragend: lukt de update niet, dan blijft de oude waarde staan. Die is 57 * dan te voorzichtig of te stil -- en juist daarom staat de FAALSTAND aan de 58 * kant van waarschuwen (isDecisive leest onbekend als "ja, jij beslist"). 59 */ 60 function herzieDoorslag(site, offerId, gsOffer, laatsteStem) { 61 try { 62 const p = gated.gatedProgress(site.slug, gsOffer.feature); 63 if (!gated.isDecisive(p.votes, p.need)) return; // nog niets veranderd 64 const me = deps.selfId(site.slug); 65 const gestemd = new Set([gsOffer.proposer, laatsteStem].filter(Boolean)); 66 for (const g of relations.listGuardians(site.slug).map((x) => x.other_uri)) { 67 if (gestemd.has(g)) continue; 68 deps.deliverTo(site, g, { 69 id: offerId, type: 'Offer', actor: me, to: [g], 70 object: { type: 'shaer:GatedSetting', 'shaer:ward': me, 'shaer:feature': gsOffer.feature, 'shaer:value': !!gsOffer.value }, 71 'shaer:proposer': gsOffer.proposer || undefined, 72 'shaer:decisive': true, 73 }).catch(() => { /* de bezorgwachtrij probeert opnieuw */ }); 74 } 75 } catch { /* nooit dragend */ } 46 76 } 47 77 … … 537 567 const r = gated.recordGatedVote(site.slug, gsOffer.feature, actor, value); 538 568 if (r.state === 'settled') answerGatedProposer(site, offerId, r); 569 // DOORSLAGGEVEND SCHUIFT MEE (Barts correctie, 8-8). Ik berekende dit een 570 // keer bij het doorsturen en bevroor het. Bij vijf guardians staat er dan 571 // "je beslist niets" -- en zodra er een ja bij komt IS elk van de anderen de 572 // doorslag. Dat is precies de stille kant: het scherm zwijgt op het moment 573 // dat het moet spreken. 574 // 575 // Dus na elke stem die het open laat: de overgeblevenen opnieuw vertellen 576 // waar ze staan. Alleen wie NOG NIET geantwoord heeft, en alleen als het 577 // antwoord verandert -- anders is dit een bericht per stem per guardian. 578 else herzieDoorslag(site, offerId, gsOffer, actor); 539 579 notify(site.slug, { kind: 'gated_setting', feature: gsOffer.feature, value, state: r.state }); 540 580 return true;
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)