source: Klonkt/src/services/guardianship/index.js@ abbb72a

main
Last change on this file since abbb72a was abbb72a, checked in by Robin <roboburr@…>, 4 weeks ago

De markering bereikte de mede-guardian nooit (shaer-lgo)

Gevonden door met de ECHTE relatie te kijken in plaats van met een test.
dev.klonkt.com is guardian van @mee@…, en zij heeft er
nog een: boiert.eu. In ap_help_state staan vier afgehandelde hulpvragen van haar
-- en elke markering is van dev zelf. Nooit een van boiert, en dev heeft er ook
nooit een naartoe gestuurd.

De oorzaak stond in de markeerroute:

listGuardians(wardUri.replace(/.*\/ap\/users\, ))

De staart van de URI als slug. listGuardians kent alleen relaties van LOKALE
sites, dus voor een ward elders was dat altijd een lege lijst. Nagemeten op dev:
de regex geeft "mee", er is geen site "mee", de lijst is leeg. De markering ging
dus alleen naar het kind.

En juist die ward is het hele punt: een ward op je eigen instance heeft geen
federatie nodig. Dit is precies de faalstand waar deze bead voor bestaat --
iedereen denkt dat de ander het oppakt -- en hij was stil, want er komt geen
fout uit een lege lijst.

Erger nog: had er toevallig een lokale site met die naam bestaan, dan waren het
DIENS guardians geweest.

existingGuardiansOf in handshake.js kende de goede weg al: lokaal opzoeken, en
anders shaer:guardians uit de actor van de ward. Die stond alleen niet aan deze
route vast. Nu geexporteerd en aangesloten -- geen tweede afleiding erbij, de
bestaande gebruikt.

Drie tests, met de oude fout als eerste erin vastgelegd zodat hij niet
terugsluipt. De actor wordt met een nepversie opgehaald: anders test het of de
testmachine internet heeft.

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

  • Property mode set to 100644
File size: 2.3 KB
Line 
1/**
2 * Guardianship (FEP-633c "Guardians") — the module.
3 *
4 * Klonkt's kid-safety feature as one cohesive unit:
5 * - context.js: the shaer JSON-LD namespace + Relationship vocabulary
6 * - offers.js: the multi-party handshake state (a port of the Shaer daemon)
7 * - relations.js: the COMMITTED ward ↔ guardian relations + actor props
8 * - handshake.js: the adoption Offer/Accept/Reject over C2S and S2S
9 * - queues.js: the owner-only dashboard collections (offers/follows/wards)
10 * - notes.js: the shaer:helpRequest flag on direct notes
11 * - delivery.js: the direct-note leg a ward's call-for-help rides
12 *
13 * The shared blocklist (Shaer's "in Orbit") lives NEXT TO this module in
14 * BlocklistService. ActivityPubService wires the AP helpers in once and
15 * delegates; nothing here imports ActivityPubService back.
16 */
17export { SHAER_CONTEXT, GUARDIAN_RELATIONSHIP, GUARDIAN_RELATIONSHIP_COMPACT, isGuardianRelationship } from './context.js';
18export { helpRequestProps, isHelpRequest, waveProps, isWave, awayProps, hasGuardiansProps, objectHasGuardians, externalEmbedsAllowed, externalPlaybackAllowed, wardGateAllowed } from './notes.js';
19export { wireDelivery, c2sVisibility, deliverDirectNote } from './delivery.js';
20export { wireHandshake, handleOutbox as handleGuardianshipOutbox, handleInbox as handleGuardianshipInbox, parseRelationship, parseUndoRelationship, endGuardianship, existingGuardiansOf } from './handshake.js';
21export { offersCollection, followsCollection, outgoingFollowsCollection, logCollection, wardsCollection, guardiansCollection, helpCollection } from './queues.js';
22export * as availability from './availability.js';
23export { wireAvailability } from './availability.js';
24export * as follows from './follows.js';
25export * as outgoing from './outgoing.js';
26export { listForParty as listOffersForParty, getOffer, findOfferAnywhere } from './offers.js';
27export {
28 listGuardians, listWards, isGuardian, getRelation, removeRelation,
29 actorProps as guardianshipActorProps,
30} from './relations.js';
31
32// §5.6 gated settings (decided by the guardians, enforced by the ward's server)
33export * as gated from './gated.js';
34export * as queues from './queues.js';
35// 5.2.1: wie er op een hulpvraag af is en wanneer hij is afgesloten (shaer-lgo)
36export * as help from './help.js';
37export * as gatereq from './gatereq.js';
Note: See TracBrowser for help on using the repository browser.