ci: release#161
Merged
Merged
Conversation
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
atproto-pds | d815a52 | May 10 2026, 02:53 PM |
commit: |
a5f957c to
d815a52
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@getcirrus/pds@0.15.0
Minor Changes
a492bf7Thanks @ascorbic! - Lexicon validation now matches the reference PDS more closely:createRecord,putRecord, andapplyWriteshonor thevalidateflag from the request body.truerequires a known schema,falseskips schema validation,undefinedvalidates known schemas optimistically.validationStatus("valid"for known,"unknown"for unknown collections; omitted whenvalidate: false). Per-writevalidationStatusis returned inapplyWritesresults.$typeis filled in fromcollectionwhen missing and rejected on mismatch.isRecordKey) is enforced for any provided rkey, regardless ofvalidateflag — closes a hole where empty-string and path-traversal-style rkeys could reach the repo.keySchemafor known collections (e.g.app.bsky.feed.postrequires a TID,app.bsky.actor.profilerequiresself).{ cid, mimeType }blob refs are rejected.com.atproto.lexicon.schema,app.bsky.actor.status,app.bsky.notification.declaration, andchat.bsky.actor.declaration.keySchemas still reject early) and the DO picks the final rkey against its MST state, with a small retry loop to defeat any worker-isolate clockid collisions.409 RecordAlreadyExistsinstead of a generic 500.applyWritesreturn400 InvalidRequest(distinguished from the 409 above).applyWrites#update/#deletereturns400 InvalidRequest.validateflag values return400 InvalidRequest.rkeyvalues (includingnull) return400 InvalidRequest.Patch Changes
#162
5920074Thanks @ascorbic! - Fix relay desync after a failed write (e.g. an image post that errors mid-flight).applyWriteswas assigning the newRepoto in-memory state before sequencing the firehose event. If anything threw between then andsequenceCommitsucceeding, Cloudflare rolled back the SQLite writes but the in-memoryRepostayed advanced. The next successful write then emitted a firehose commit whosesincerev the relay had never seen, and the relay marked the repo desynced — requiring a manualrequestCrawlto recover.this.repois now only assigned after the sequence + broadcast succeed, and any failure in that window invalidates the in-memory cache so the next access reloads from storage.