Changeset 960f015 in Klonkt


Ignore:
Timestamp:
08/11/2026 07:04:33 PM (4 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
7e9d0ea
Parents:
aed0092
Message:

Geen halve namen meer, ook niet als de basis kapot is (Robins vraag, 11-8)

Twee plekken vielen in hun catch terug op @${slug} -- een handle zonder host.
Dat gaat alleen af bij een onparseerbare PUBLIC_BASE_URL, dus bij een kapotte
installatie. Robins punt: dat maakt het niet minder fout. Zonder host zegt @dev
niets op een oppervlak waar iedereen @dev kan heten.

Allebei nu via deriveHandle op de actor-URI. Diens terugval is de KALE URI, en
die is eerlijk: hij ziet er niet uit als een naam die compleet is. En als de
basis onparseerbaar is klopt elke URI die we bouwen toch al niet.

Daarmee is deriveHandle de enige plek waar een handle ontstaat. Vandaag stonden
er vijf spellingen: null in het paneel, @slug zonder host in de app, twee
catch-terugvallen, en de echte vorm op de inkomende weg.

EN EEN VOETANGEL DIE IK ONDERWEG BIJNA INSLIKTE: de routes importeren
ActivityPubService als DEFAULT. deriveHandle en localSlugOf waren wel als named
export beschikbaar maar stonden niet in dat default-object -- AP.deriveHandle
was dus undefined, en dat valt niet om bij het importeren maar pas bij een
VERZOEK. Allebei toegevoegd en op de server nagelopen: function, function, en
@dev@….

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

Location:
src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/routes/activitypub.js

    raed0092 r960f015  
    444444}
    445445
    446 /** De naam waaronder deze lezer zichzelf herkent in een Mention. */
     446/**
     447 * De naam waaronder deze lezer zichzelf herkent in een Mention.
     448 *
     449 * Via deriveHandle op de actor-URI, niet uit de slug hier opgebouwd. Dit stond
     450 * er als `@${slug}@${host}` met `@${slug}` als terugval, en die terugval is een
     451 * HALVE naam: zonder host zegt @dev niets op een oppervlak waar iedereen @dev
     452 * kan heten. Hij ging alleen af bij een onparseerbare PUBLIC_BASE_URL -- maar
     453 * dan klopt elke URI die we bouwen al niet, en is de kale actor-URI (wat
     454 * deriveHandle dan teruggeeft) eerlijker dan een naam die compleet lijkt.
     455 */
    447456function ownHandle(base, slug) {
    448   try { return `@${slug}@${new URL(base).host}`; } catch { return `@${slug}`; }
     457  return AP.deriveHandle(AP.actorId(base, slug));
    449458}
    450459
     
    754763  // hebben ze nodig, dus een keer, hierboven.
    755764  const me = AP.actorId(base, auth.site.slug);
    756   const myHandle = (() => { try { return `@${auth.site.slug}@${new URL(base).host}`; } catch { return `@${auth.site.slug}`; } })();
     765  const myHandle = AP.deriveHandle(me);   // een naam, of de kale URI -- nooit een halve
    757766  const guardianUris = (() => { try { return new Set(Guardianship.listGuardians(auth.site.slug).map((g) => g.other_uri)); } catch { return new Set(); } })();
    758767  // ── Alleen het VERSCHIL, als de client daarom vraagt (shaer-pq4) ──
  • src/services/ActivityPubService.js

    raed0092 r960f015  
    65216521export default {
    65226522  AP_CONTEXT, getOrCreateKeys, apWants, sendAP, actorId, noteId, stripLeadingMentions, pagedCollection,
     6523  deriveHandle, localSlugOf,
    65236524  buildActor, buildNote, buildCreate, buildOutbox, buildFollowers, buildFollowing, buildFeatured,
    65246525  channelUrls, channelCategory, timelineFields, guessMediaType,
Note: See TracChangeset for help on using the changeset viewer.