Skip to content

v0.41.0

Choose a tag to compare

@nnabeyang nnabeyang released this 30 Jun 01:26
0.41.0
75fc626

What's Changed

New Features

  • Datetime FormatString: Project AT Protocol datetime fields to a type-safe FormatString<Date>. (#81)
  • CID FormatString: Project AT Protocol cid fields to a type-safe FormatString<LexLink>. (#82)
  • Query parameter formats: Respect Lexicon string format on query parameters. (#83)
  • ATURI FormatString: Project AT Protocol aturi fields to a type-safe FormatString<ATURI>. (#84)
  • Language FormatString: Project AT Protocol language fields to a type-safe FormatString<Language>. (#85)
  • URI FormatString: Project AT Protocol uri fields to a type-safe FormatString<URI>. (#86)
  • Identifier projections: Add DID, Handle, NSID, TID, RecordKey, and AtIdentifier string-format projections, plus a thread-safe monotonic TID generator. (#87)
  • URI.Kind: Add URI.Kind classification tag for exhaustive switch dispatch. (#88)
  • Lenient parsing: Add strict/lenient parsing modes for datetime and at-uri (TZ omission, trailing slash, query/fragment leniency, relaxed rkey). (#90, #91)
  • Lexicon checkouts: Nest checkouts under <scheme>/<host>/<...path...>/<repo> so essentially different repositories no longer collide on basename; legacy <repo> layouts are migrated automatically. Local file:// dependencies install lexicons via symlinks so source edits flow into the next codegen pass without re-fetching. (#97)
  • Client-only codegen: Stop emitting an empty XRPCAPIProtocol.swift for client-only modules. The command plugin skips the file and cleans up prior leftovers; the build plugin emits a minimal header-only placeholder to satisfy SwiftPM's pre-declared outputs. (#99)

Breaking Changes

  • ATURI typed components: ATURI.authority/collection/rkey are now typed identifier types instead of plain strings. (#89)
  • CocoaPods support dropped: swift-atproto is distributed via Swift Package Manager only. (#95)
  • Deprecated XRPC APIs removed: fetch, errorDomain, call(_:input:retry:) shims and dead helpers are gone. (#92)

Other Changes

  • CI: skip tests on docs-only PRs via umbrella check. (#93)
  • CI: fix matrix.target typo in the Apple Platforms test step. (#94)
  • CI: bump Xcode to 26.5. (#98)