Cairn Docs Claims Blog Packages

Package ยท iamnbutler

cairn_atproto

The AT Protocol (Bluesky) for Cairn apps: XRPC, lexicon decoders and a proved session machine

Kind
Library
Owner
iamnbutler
Version
0.3.0
Published
Oct 26, 2026 by iamnbutler
Commit
11db1badce3c at v0.3.0
Toolchain
leanprover/lean4:v4.35.0
License
MIT
Claims
28 active5 retired

Claims in 0.3.0Docs for 0.3.0

Use it

With the cairn tool:

cairn add cairn_atproto@^0.3.0

Which writes cairn.toml, and the lakefile line that it keeps in step:

[dependencies]
cairn_atproto = "^0.3.0"
cairn.toml
[[require]]
name = "cairn_atproto"
scope = "iamnbutler"
version = "^0.3.0"
lean/lakefile.toml

Depends on

Versions

VersionPublishedCommitClaimsDocs
0.3.0Oct 26, 202611db1badce28 active5 retireddocs
0.2.0Oct 25, 2026a015e7b1fc11 active5 retireddocs
0.1.1Oct 25, 2026e7b834944a10 activedocs
0.1.0Oct 25, 2026d2c27568e410 activedocs

What changed in 0.3.0

Claims new, retired or moved since 0.2.0.

IdChangeKindClaim
cairn_atproto^17newmoveMint a record key
cairn_atproto^18newinvariantRecord keys strictly increase
cairn_atproto^19newinvariantA record key's text reads back
cairn_atproto^20newinvariantThe same write is the same request
cairn_atproto^21newinvariantHow a write's reply is read
cairn_atproto^22newassumeWrites with a chosen key are idempotent
cairn_atproto^23newassumegetRecord reads your writes
cairn_atproto^24newassumeA post's counts and viewer are from one moment
cairn_atproto^25newassumeA write refused for its token was not applied
cairn_atproto^26newinvariantA paged list is a run of the server's
cairn_atproto^27newinvariantA stale page changes nothing
cairn_atproto^28newinvariantThe cursor is never lost
cairn_atproto^29newinvariantA refresh racing a load-more
cairn_atproto^30newinvariantThe decoders read back what the encoders write
cairn_atproto^31newinvariantThe fake's writes are idempotent and read back
cairn_atproto^32newinvariantThe fake's counts are its like records
cairn_atproto^33newinvariantThe fake's notification pages are runs

Claims in 0.3.0

Every id this package has issued, as its claims.lock held them at this version. An id never moves or changes meaning: the registry refuses a version that drops, renumbers or redefines one. The claim pages show each claim by place, with what it does and its evidence.

IdKindStatusClaim
cairn_atproto^1moveactiveSign in
cairn_atproto^2moveactiveResume
cairn_atproto^3moveactiveMake a call
cairn_atproto^4moveactiveSign out
cairn_atproto^5invariantretiredOne refresh at a time
cairn_atproto^6invariantretiredA call is sent at most twice
cairn_atproto^7invariantretiredA second send only after a successful refresh
cairn_atproto^8invariantretiredSigned out, no secret is sent
cairn_atproto^9invariantactiveA failed refresh ends the held calls
cairn_atproto^10assumeretiredNo Lean value holds a token
cairn_atproto^11invariantactiveOne refresh at a time
cairn_atproto^12invariantactiveA call is sent at most twice
cairn_atproto^13invariantactiveA second send only after a successful refresh
cairn_atproto^14invariantactiveSigned out, no secret is sent
cairn_atproto^15assumeactiveNo Lean value holds a token
cairn_atproto^16moveactiveCancel a call
cairn_atproto^17moveactiveMint a record key
cairn_atproto^18invariantactiveRecord keys strictly increase
cairn_atproto^19invariantactiveA record key's text reads back
cairn_atproto^20invariantactiveThe same write is the same request
cairn_atproto^21invariantactiveHow a write's reply is read
cairn_atproto^22assumeactiveWrites with a chosen key are idempotent
cairn_atproto^23assumeactivegetRecord reads your writes
cairn_atproto^24assumeactiveA post's counts and viewer are from one moment
cairn_atproto^25assumeactiveA write refused for its token was not applied
cairn_atproto^26invariantactiveA paged list is a run of the server's
cairn_atproto^27invariantactiveA stale page changes nothing
cairn_atproto^28invariantactiveThe cursor is never lost
cairn_atproto^29invariantactiveA refresh racing a load-more
cairn_atproto^30invariantactiveThe decoders read back what the encoders write
cairn_atproto^31invariantactiveThe fake's writes are idempotent and read back
cairn_atproto^32invariantactiveThe fake's counts are its like records
cairn_atproto^33invariantactiveThe fake's notification pages are runs