Changeset 8b83cba in Klonkt


Ignore:
Timestamp:
08/11/2026 03:17:52 PM (4 weeks ago)
Author:
Bart <bart@…>
Branches:
main
Children:
abbb72a
Parents:
be5a13c
Message:

Een direct bericht haalt de ontvanger ondertekend op

@catsalad@… aanschrijven gaf "502 direct_failed". Niet de client:
infosec.exchange draait Mastodons secure mode en antwoordt 401 op een anonieme
GET van het actor-document. fetchActor KAN ondertekenen, maar alleen als je
zegt namens wie -- en wireDelivery gaf hem kaal door, dus deze weg probeerde het
nooit. Geen document, geen inbox, ontvanger valt weg, en met de laatste
ontvanger geeft deliverDirectNote null: 502.

Precies de les van 31-7 bij het volgen vanaf een boost: die weg kreeg toen
signedGetJson, deze bleef achter. Het bewijs staat in de data -- boiert volgt
catsalad met status accepted, dus een ondertekende ophaal naar diezelfde server
werkt allang; alleen deze aanroep deed het niet.

Onbetekend blijft eerst. Dat is een veiligheidskeuze (zie de kop van
fetchActor): pas als dat mislukt tekent hij, en alleen voor die ene URL.

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

File:
1 edited

Legend:

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

    rbe5a13c r8b83cba  
    5656    // it does not, the recipient is silently dropped from the note. Everything
    5757    // that decides anything still runs below, for local and remote alike.
    58     const a = (localActor && localActor(uri)) || await fetchActor(uri).catch(() => null);
     58    // ONDERTEKEND ophalen als het onbetekend niet lukt (asSlug). Een instance
     59    // met Mastodons secure mode -- infosec.exchange bijvoorbeeld -- antwoordt
     60    // 401 op een anonieme GET van het actor-document. Zonder document geen
     61    // inbox, dus viel de ontvanger hier stil weg, en met de laatste ontvanger
     62    // gaf deliverDirectNote null terug: "502 direct_failed", zonder te zeggen
     63    // wie er niet bereikbaar was.
     64    //
     65    // Dezelfde les als bij het volgen vanaf een boost (Robins melding, 31-7):
     66    // die weg kreeg toen signedGetJson, deze niet. fetchActor probeert nog
     67    // steeds ONBETEKEND eerst -- dat blijft de veiligheidskeuze -- en tekent
     68    // alleen deze ene URL als dat mislukt.
     69    const a = (localActor && localActor(uri))
     70      || await fetchActor(uri, { asSlug: site.slug }).catch(() => null);
    5971    if (!a || !(a.inbox || (a.endpoints && a.endpoints.sharedInbox))) continue;
    6072    // FEP-633c §4.1: an escalation addressed to a "guardian" that carries
Note: See TracChangeset for help on using the changeset viewer.