Skip to content

ci: release#161

Merged
ascorbic merged 1 commit into
mainfrom
changeset-release/main
May 10, 2026
Merged

ci: release#161
ascorbic merged 1 commit into
mainfrom
changeset-release/main

Conversation

@mixie-bot
Copy link
Copy Markdown
Contributor

@mixie-bot mixie-bot Bot commented May 6, 2026

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

  • #160 a492bf7 Thanks @ascorbic! - Lexicon validation now matches the reference PDS more closely:
    • createRecord, putRecord, and applyWrites honor the validate flag from the request body. true requires a known schema, false skips schema validation, undefined validates known schemas optimistically.
    • Responses include validationStatus ("valid" for known, "unknown" for unknown collections; omitted when validate: false). Per-write validationStatus is returned in applyWrites results.
    • The record's $type is filled in from collection when missing and rejected on mismatch.
    • Generic record-key shape (isRecordKey) is enforced for any provided rkey, regardless of validate flag — closes a hole where empty-string and path-traversal-style rkeys could reach the repo.
    • Schema-specific record keys are validated against the schema's keySchema for known collections (e.g. app.bsky.feed.post requires a TID, app.bsky.actor.profile requires self).
    • Legacy { cid, mimeType } blob refs are rejected.
    • Bundled schema set broadened to include com.atproto.lexicon.schema, app.bsky.actor.status, app.bsky.notification.declaration, and chat.bsky.actor.declaration.
    • The Durable Object is now the authoritative rkey allocator: when the client doesn't supply an rkey, the worker validates against a candidate (so restrictive 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.
    • Client-supplied rkey collisions return 409 RecordAlreadyExists instead of a generic 500.
    • Intra-batch duplicate rkeys in applyWrites return 400 InvalidRequest (distinguished from the 409 above).
    • Missing rkey for applyWrites#update/#delete returns 400 InvalidRequest.
    • Non-boolean validate flag values return 400 InvalidRequest.
    • Non-string rkey values (including null) return 400 InvalidRequest.

Patch Changes

  • #162 5920074 Thanks @ascorbic! - Fix relay desync after a failed write (e.g. an image post that errors mid-flight).

    applyWrites was assigning the new Repo to in-memory state before sequencing the firehose event. If anything threw between then and sequenceCommit succeeding, Cloudflare rolled back the SQLite writes but the in-memory Repo stayed advanced. The next successful write then emitted a firehose commit whose since rev the relay had never seen, and the relay marked the repo desynced — requiring a manual requestCrawl to recover.

    this.repo is 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.

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented May 6, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
atproto-pds d815a52 May 10 2026, 02:53 PM

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented May 6, 2026

Open in StackBlitz

npm i https://pkg.pr.new/create-pds@161
npm i https://pkg.pr.new/@getcirrus/oauth-provider@161
npm i https://pkg.pr.new/@getcirrus/pds@161

commit: d815a52

@mixie-bot mixie-bot Bot force-pushed the changeset-release/main branch from a5f957c to d815a52 Compare May 10, 2026 14:52
@ascorbic ascorbic merged commit be0a564 into main May 10, 2026
5 checks passed
@ascorbic ascorbic deleted the changeset-release/main branch May 10, 2026 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant