Changeset 0261730 in Klonkt for src/services/guardianship/handshake.js
- Timestamp:
- 08/08/2026 04:18:37 PM (4 weeks ago)
- Branches:
- main
- Children:
- abcf51a
- Parents:
- 66d97b8
- File:
-
- 1 edited
-
src/services/guardianship/handshake.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/services/guardianship/handshake.js
r66d97b8 r0261730 341 341 notify(site.slug, { kind: 'offer_rejected', offer: offerId }); 342 342 return { status: 202, id: offerId, url: offerId }; 343 } 344 345 // §1 is flat in BOTH directions. The Offer path above bars a ward from 346 // offering to guard; this is the mirror: an actor that already guards wards 347 // must not become a ward itself. Only the ward's own accept can create that 348 // state, so the candidate and the existing guardians pass through untouched. 349 // 350 // Without it the inconsistency would also be invisible. actorProps() picks 351 // one role with an if/else and would publish shaer:guardians while dropping 352 // shaer:isGuardian, so this account keeps routing its wards' escalations 353 // locally while every remote §4 check reads it as malformed and drops it — 354 // a ward believing it is watched over when it is not, silent on both sides. 355 if (me === offer.ward_uri && relations.listWards(site.slug).length) { 356 return { status: 403, error: 'a_guardian_cannot_be_guarded' }; 343 357 } 344 358
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)