An Elixir toolkit for the AT Protocol.
0

Configure Feed

Select the types of activity you want to include in your feed.

v0.9.0
f8f2e263 Ashlynne Mitchell

# 0.9.0 - 2026-04-16

## Breaking Changes

- `Atex.NSID` is now a struct (`%Atex.NSID{authority, name, fragment}`). Public
functions now accept and return structs. You can use `new/1`, `new!/1` or the
new `~NSID""` for constructing from a NSID string.

## Added

- `Atex.Repo` module for building, mutating, signing, serialising, and loading
AT Protocol repositories. Also supports lazily streaming from a CAR binary for
efficient processing of large repository exports.
- `Atex.XRPC.UnauthedClient` module for running unauthenticated XRPC fetches on
public APIs or PDSes.
- `Atex.Lexicon.Resolver` module for resolving published lexicons by NSID,
following the
[publication and resolution spec](https://atproto.com/specs/lexicon#lexicon-publication-and-resolution).
- `mix atex.lexicons.resolve` task for resolving one or more lexicons by NSID
and writing to a JSON file.
- Sigils for `Atex.AtURI` and `Atex.TID`, `~AT"at://..."` and `~TID"..."`
respectively.
- `/logout` route for `Atex.OAuth.Plug` to revoke the current session, as well
as `Atex.OAuth.Plug.revoke_session/2` to revoke a conn's session
programmaticly (e.g. from a session management dashboard).
- `deflexicon` now generates structs for errors defined by queries and
procedures, under a `Errors` submodule.
- `deflexicon` generated models now have a `coerce_error/1` function that takes
in a map and tries to convert it to one of its known error structs.
- `Atex.XRPC.Error` struct for wrapping XRPC error responses, including both
known errors (with typed `error_struct`) and unknown errors.

## Fixed

- Fix issue when trying to validate OAuth authorisation codes in localhost mode
on PDS implementations that are more strict than the Bluesky reference
implementation.-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAAEoAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAAAg4jPimx
0oxa28BFKwTT3k3wRG1ofQa7RWQlKW47kp3pcAAAAEc3NoOgAAAANnaXQAAAAAAAAABnNo
YTUxMgAAAGcAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAABApl4RXtPcRoiQ03
Wfd0soWojeFuPg1JD/M1ixyiRc3oZJIygVSyPIPHjdxmZIuUdH2QXNG+TIUnt9ToHIDpYg
BgEAAJEl
-----END SSH SIGNATURE-----

Artifacts