dev.cocore.account.friend
A one-way declaration that the publishing DID trusts the subject DID enough to route private (friends-only) compute jobs to them. Friending is *not* mutual and *not* a permission grant for the subject — it's the friender's own routing preference. The subject does not need to consent, sign anything, or even be aware. Published to the friender's PDS; multiple records for the same subject are tolerated (the rkey is `tid`) but the console deduplicates on upsert so steady state is one record per (friender, subject). The friends-only chat-completions endpoint reads these records to constrain the advisor's pickFor candidate set.
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | account.cocore.dev |
| Indexed |
Record
record · key tidProperties
note
stringOptional free-form note the friender attaches to remind themselves who this DID is or why they trusted them. Plain text; never shown to the subject — this is the friender's own private label.
maxLength: 1024
The DID the friender is extending trust to. MUST be a syntactically-valid DID (did:plc:… or did:web:…). Resolved-to-handle at write time but the DID is the authoritative identifier — a subject who later changes their handle is still the same friend.
subjectHandle
stringDisplay-only mirror of the subject's bsky handle at friend-time. Captured so dashboards can render `@handle` without paying a PLC round-trip for every friend on every page load. Authoritative handle resolution still goes through PLC; a stale value here is OK.
maxLength: 256
Similar lexicons
semantic matchLexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
This account's own half of a friendship. A PUBLIC repo record: it is the input to an access decision made by a party who cannot yet read anything of this account's, so it has to be readable without a credential. Friendship is the conjunction of both halves — neither party can create the other's — which is the same posture as a public follow graph, and no more private.
-
A standing offer of friendship to another account. A PUBLIC repo record, not a space record: the point of a request is to be readable by someone who has no access yet, and a non-member's write into a space is never visible to anyone else (see docs/evidence/S06.md). Keyed by the subject DID, so offering twice updates rather than duplicates.
-
ink.resenha.friend
recordMarks that the account added another reader as a friend in Resenha. Friends are readers who follow each other; this record lets the other reader's app show the follow as a friend request.
-
app.placita.friend
recordA person the author counts as a friend. Public, like a follow. Not access control.
-
click.aligned.chat.member
recordSomebody whose published conversations this collective vouches for. One record per member, written to the collective's own repo by the account owning the authorising domain. The reader walks these to know whose repos to render: a list has to live somewhere, and putting it on atproto rather than on the server is what keeps the reader working when the server is not. The record says nothing about what the member published, and carries no permission — being listed here is not what allows somebody to