Ignore:
Timestamp:
08/11/2026 04:20:01 PM (4 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
26b1848
Parents:
8b83cba
Message:

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@…>

File:
1 edited

Legend:

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

    r8b83cba rabbb72a  
    8787}
    8888
    89 /** The existing guardians of a ward: local list, or the remote actor's shaer:guardians. */
    90 async function existingGuardiansOf(wardUri) {
     89/**
     90 * The existing guardians of a ward: local list, or the remote actor's
     91 * shaer:guardians.
     92 *
     93 * Geexporteerd sinds shaer-lgo: de markeerroute had zijn EIGEN afleiding, en
     94 * die was fout voor precies het geval dat telt (zie routes/guardian.js).
     95 */
     96export async function existingGuardiansOf(wardUri) {
    9197  const local = deps.localSlug(wardUri);
    9298  if (local) return relations.listGuardians(local).map((r) => r.other_uri);
     
    627633}
    628634
    629 export default { wireHandshake, handleOutbox, handleInbox, parseRelationship, parseUndoRelationship, endGuardianship, retryDeferred };
     635export default { wireHandshake, handleOutbox, handleInbox, parseRelationship, parseUndoRelationship, endGuardianship, retryDeferred, existingGuardiansOf };
Note: See TracChangeset for help on using the changeset viewer.