Changeset b60cf25 in Klonkt for src/services/guardianship/handshake.js
- Timestamp:
- 08/11/2026 04:24:25 PM (3 months ago)
- Parents:
- 859b1707
- File:
-
- 1 edited
-
src/services/guardianship/handshake.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/services/guardianship/handshake.js
r859b1707 rb60cf25 290 290 notify(site.slug, { kind: 'offer_rejected', offer: offerId }); 291 291 return { status: 202, id: offerId, url: offerId }; 292 } 293 294 // §1 is flat in BOTH directions. The Offer path above bars a ward from 295 // offering to guard; this is the mirror: an actor that already guards wards 296 // must not become a ward itself. Only the ward's own accept can create that 297 // state, so the candidate and the existing guardians pass through untouched. 298 // 299 // Without it the inconsistency would also be invisible. actorProps() picks 300 // one role with an if/else and would publish shaer:guardians while dropping 301 // shaer:isGuardian, so this account keeps routing its wards' escalations 302 // locally while every remote §4 check reads it as malformed and drops it — 303 // a ward believing it is watched over when it is not, silent on both sides. 304 if (me === offer.ward_uri && relations.listWards(site.slug).length) { 305 return { status: 403, error: 'a_guardian_cannot_be_guarded' }; 292 306 } 293 307
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)