Skip to content

Version packages - #5452

Merged
estrattonbailey merged 1 commit into
mainfrom
changeset-release/main
Sep 4, 2026
Merged

Version packages#5452
estrattonbailey merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

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

@atproto-labs/opentelemetry-node@0.2.0

Minor Changes

  • #5472 222f4bc Thanks @rafaeleyng! - Move the RPC telemetry constants shared by both halves of a bsync call into @atproto-labs/opentelemetry-node: the bsync.namespace and bsync.operation attribute keys and RPC_CALL_DURATION_BUCKETS are now exported from the /conventions entrypoint, and statusCodeToString() from the new /util entrypoint. Previously the AppView imported these from @atproto/bsync, which made a whole service package a runtime dependency of another just to agree on a metric label.

Patch Changes

  • #5475 46fdec9 Thanks @rafaeleyng! - Drop the @connectrpc/connect dependency: statusCodeToString() now takes a plain number and resolves the status name through a hand-rolled map of the Connect Code enum values. Importing the library here would load it before it gets instrumented, breaking the instrumentation.

@atproto/ozone@0.4.0

Minor Changes

  • #5426 ed0b7d3 Thanks @bigmoves! - Migrate Ozone onto @atproto/lex.

    Ozone was the last package still generating its server stack with
    lex gen-server. It now uses lex build like pds and bsky, and the legacy
    src/lexicon tree is gone:

    • All 95 route registrations moved from server.<ns>.<method>() to
      server.add(schema, …) from @atproto/xrpc-server.
    • AtpAgent is replaced by Client; CredentialSession by PasswordSession
      from @atproto/lex-password-session.
    • Kysely schema types, config and auth credentials now carry the branded
      scalars (DidString, DatetimeString, AtUriString, UriString), so
      route params flow into the database and back out into views without casts.

    @atproto/api and @atproto/lexicon move to devDependencies (the test suites
    still drive the legacy client), and @atproto/xrpc and @atproto/lex-cli are
    dropped entirely.

    Two behaviour changes worth noting, both from validating against the Lexicon
    schemas rather than the legacy runtime:

    • The AT Proto data model has no floating-point numbers, and the legacy stack
      accepted them anyway. A non-integer number in an unknown field — for
      example a float stored in a tools.ozone.setting value — is now rejected at
      input validation. Reads are unaffected, since the server is configured with
      validateResponse: false.
    • A value whose shape contradicts the Lexicon is now rejected by schema
      validation before a route's own validators run, so the reported error is the
      schema's (Expected object value type …) rather than the application's.

    BlobDiverter and the OAuth-preferences proxy previously threw XRPCError from
    @atproto/xrpc to signal retryability to retryHttp. They now throw
    UpstreamHttpError, which extends XRPCError from @atproto/xrpc-server so
    that an error escaping a handler still carries its upstream status and message
    instead of collapsing into a generic 500.

  • #5421 5c154f9 Thanks @foysalit! - Allow moderators to retrieve hosted account preferences through tools.ozone.moderation.getAccountPreferences.

Patch Changes

  • #5479 a8d3893 Thanks @gcwill70! - Scope otel down to only trace modules that are instrumented.

  • #5074 8a4631a Thanks @foysalit! - Add opt-in prometheus metrics server and opt-in OpenTelemetry tracing (via @atproto/ozone/tracer, gated on OTEL_EXPORTER_OTLP_ENDPOINT) to ozone; the ozone service image now uses OpenTelemetry instead of dd-trace

  • #5474 59f4a42 Thanks @gcwill70! - Allow headers to be set when using app-configured PDS instance

  • #5471 263eaa3 Thanks @foysalit! - Harden takedown event pushing with bounded concurrency, rate-limit-aware retries, and terminal handling for unavailable targets.

  • #5393 7068a65 Thanks @gcwill70! - Fix ascending report pagination when multiple reports share a timestamp.

  • #5468 0f3ea4b Thanks @foysalit! - Harden outbound Ozone requests to PDS and did:web endpoints.

  • Updated dependencies [8a4631a, ed0b7d3, ed0b7d3, ffcb7c5]:

    • @atproto/xrpc-server@0.13.0
    • @atproto/lex@0.3.9
    • @atproto/syntax@0.7.6
    • @atproto/lex-password-session@0.2.3
    • @atproto/common@0.8.2
    • @atproto/identity@0.5.11

@atproto/xrpc-server@0.13.0

Minor Changes

  • #5457 ffcb7c5 Thanks @treethought! - Cancel in-flight query handlers when the client disconnects. Queries now receive an AbortSignal on the handler context that fires when the caller hangs up, so upstream work can be aborted instead of held open. This applies to queries, not procedures.

Patch Changes

  • #5074 8a4631a Thanks @foysalit! - Add opt-in prometheus metrics server and opt-in OpenTelemetry tracing (via @atproto/ozone/tracer, gated on OTEL_EXPORTER_OTLP_ENDPOINT) to ozone; the ozone service image now uses OpenTelemetry instead of dd-trace

  • Updated dependencies [ed0b7d3, ed0b7d3]:

    • @atproto/lex-schema@0.2.7
    • @atproto/lex-client@0.3.6
    • @atproto/lexicon@0.7.13
    • @atproto/common@0.8.2
    • @atproto/xrpc@0.8.12

@atproto/api@0.20.43

Patch Changes

  • #5461 60c4395 Thanks @blackmichael! - Add reference-list opt-out records and enforce them in AppView list, list feed, and starter-pack views.

  • #5481 f0d4877 Thanks @estrattonbailey! - Set updatedAt when updating interests with setInterestsPref.

  • #5421 5c154f9 Thanks @foysalit! - Add tools.ozone.moderation.getAccountPreferences method

  • Updated dependencies [ed0b7d3]:

    • @atproto/syntax@0.7.6
    • @atproto/common-web@0.5.11
    • @atproto/lexicon@0.7.13
    • @atproto/xrpc@0.8.12

@atproto/aws@0.3.16

Patch Changes

  • Updated dependencies []:
    • @atproto/common-web@0.5.11
    • @atproto/repo@0.10.13
    • @atproto/common@0.8.2

@atproto/bsky@0.0.278

Patch Changes

  • #5457 ffcb7c5 Thanks @treethought! - Abort upstream calls made by read endpoints when the client disconnects. Feed, search, and suggestion queries now forward the request's cancellation signal to their outbound calls, so a caller hanging up no longer leaves those requests running.

  • #5461 60c4395 Thanks @blackmichael! - Add reference-list opt-out records and enforce them in AppView list, list feed, and starter-pack views.

  • #5485 908cd55 Thanks @rafaeleyng! - Route notification read updates exclusively through bsync fanout.

  • #5465 328a4a8 Thanks @rafaeleyng! - Issue iris and topics requests through the global fetch, using long-lived dispatchers that are closed on shutdown.

  • #5464 a058557 Thanks @rafaeleyng! - Setup OTEL metrics on bsky and report some hydration failures

  • #5454 f7fe823 Thanks @rafaeleyng! - Add a 1s timeout to requests to iris.

  • #5455 9a72c51 Thanks @rafaeleyng! - Use a connection timeout for requests to iris and topics.

  • #5451 ff99ec0 Thanks @rafaeleyng! - Serve known likers on the root post of each feed item instead of on the feed item itself.

  • #5473 cae15d9 Thanks @rafaeleyng! - Add a BSKY_FEED_GEN_SKELETON_TIMEOUT option, bounding feed generator skeleton requests. Defaults to 5s, lowered from the previously hardcoded 10s.

  • #5484 14bd634 Thanks @rafaeleyng! - Fan out notification read timestamps through bsync and prevent older timestamps from replacing newer ones.

  • #5472 222f4bc Thanks @rafaeleyng! - Move the RPC telemetry constants shared by both halves of a bsync call into @atproto-labs/opentelemetry-node: the bsync.namespace and bsync.operation attribute keys and RPC_CALL_DURATION_BUCKETS are now exported from the /conventions entrypoint, and statusCodeToString() from the new /util entrypoint. Previously the AppView imported these from @atproto/bsync, which made a whole service package a runtime dependency of another just to agree on a metric label.

  • #5456 db6e2e7 Thanks @rafaeleyng! - Reduce dataplane calls when refilling paginated responses. Pages are now served once they hold half of the requested limit, and listNotifications reads the viewer's priority setting and last-seen time once per request instead of once per page.

  • #5448 80d391a Thanks @estrattonbailey! - Forward x-atproto-bsky-topics alongside the legacy x-bsky-topics header.

  • #5470 715caf1 Thanks @rafaeleyng! - Record client and server latency metrics and traces for bsync requests, including operation namespaces.

  • #5465 328a4a8 Thanks @rafaeleyng! - Add a BSKY_PROXY_CONNECT_TIMEOUT option, bounding the connection phase of blob proxy requests.

  • Updated dependencies [8a4631a, 60c4395, f0d4877, 5c154f9, ed0b7d3, 222f4bc, 46fdec9, ed0b7d3, ffcb7c5]:

    • @atproto/xrpc-server@0.13.0
    • @atproto/api@0.20.43
    • @atproto/lex@0.3.9
    • @atproto-labs/opentelemetry-node@0.2.0
    • @atproto/syntax@0.7.6
    • @atproto-labs/xrpc-utils@0.1.21
    • @atproto/sync@0.4.8
    • @atproto/repo@0.10.13
    • @atproto/common@0.8.2
    • @atproto/identity@0.5.11

@atproto/bsync@0.0.43

Patch Changes

  • #5486 04dc5ab Thanks @rafaeleyng! - Resolve private dataplane hosts over IPv4.

  • #5484 14bd634 Thanks @rafaeleyng! - Fan out notification read timestamps through bsync and prevent older timestamps from replacing newer ones.

  • #5472 222f4bc Thanks @rafaeleyng! - Move the RPC telemetry constants shared by both halves of a bsync call into @atproto-labs/opentelemetry-node: the bsync.namespace and bsync.operation attribute keys and RPC_CALL_DURATION_BUCKETS are now exported from the /conventions entrypoint, and statusCodeToString() from the new /util entrypoint. Previously the AppView imported these from @atproto/bsync, which made a whole service package a runtime dependency of another just to agree on a metric label.

  • #5470 715caf1 Thanks @rafaeleyng! - Record client and server latency metrics and traces for bsync requests, including operation namespaces.

  • Updated dependencies [222f4bc, 46fdec9, ed0b7d3]:

    • @atproto-labs/opentelemetry-node@0.2.0
    • @atproto/syntax@0.7.6
    • @atproto/common@0.8.2

@atproto/common@0.8.2

Patch Changes

  • Updated dependencies []:
    • @atproto/common-web@0.5.11

@atproto/common-web@0.5.11

Patch Changes

  • Updated dependencies [ed0b7d3]:
    • @atproto/syntax@0.7.6

@atproto/dev-env@0.6.5

Patch Changes

  • #5426 ed0b7d3 Thanks @bigmoves! - Migrate Ozone onto @atproto/lex.

    Ozone was the last package still generating its server stack with
    lex gen-server. It now uses lex build like pds and bsky, and the legacy
    src/lexicon tree is gone:

    • All 95 route registrations moved from server.<ns>.<method>() to
      server.add(schema, …) from @atproto/xrpc-server.
    • AtpAgent is replaced by Client; CredentialSession by PasswordSession
      from @atproto/lex-password-session.
    • Kysely schema types, config and auth credentials now carry the branded
      scalars (DidString, DatetimeString, AtUriString, UriString), so
      route params flow into the database and back out into views without casts.

    @atproto/api and @atproto/lexicon move to devDependencies (the test suites
    still drive the legacy client), and @atproto/xrpc and @atproto/lex-cli are
    dropped entirely.

    Two behaviour changes worth noting, both from validating against the Lexicon
    schemas rather than the legacy runtime:

    • The AT Proto data model has no floating-point numbers, and the legacy stack
      accepted them anyway. A non-integer number in an unknown field — for
      example a float stored in a tools.ozone.setting value — is now rejected at
      input validation. Reads are unaffected, since the server is configured with
      validateResponse: false.
    • A value whose shape contradicts the Lexicon is now rejected by schema
      validation before a route's own validators run, so the reported error is the
      schema's (Expected object value type …) rather than the application's.

    BlobDiverter and the OAuth-preferences proxy previously threw XRPCError from
    @atproto/xrpc to signal retryability to retryHttp. They now throw
    UpstreamHttpError, which extends XRPCError from @atproto/xrpc-server so
    that an error escaping a handler still carries its upstream status and message
    instead of collapsing into a generic 500.

  • #5426 ed0b7d3 Thanks @bigmoves! - Use stronger types (UriString, DidString, ...) for service properties

  • #5473 cae15d9 Thanks @rafaeleyng! - Add a BSKY_FEED_GEN_SKELETON_TIMEOUT option, bounding feed generator skeleton requests. Defaults to 5s, lowered from the previously hardcoded 10s.

  • #5484 14bd634 Thanks @rafaeleyng! - Fan out notification read timestamps through bsync and prevent older timestamps from replacing newer ones.

  • #5421 5c154f9 Thanks @foysalit! - Add getClient() method on TestOzone class

  • Updated dependencies [a8d3893, 8a4631a, ffcb7c5, 60c4395, 908cd55, 328a4a8, ed0b7d3, 04dc5ab, f0d4877, a058557, f7fe823, 9a72c51, 5c154f9, ff99ec0, cae15d9, ed0b7d3, 14bd634, 80d391a, 5c154f9, 222f4bc, 59f4a42, db6e2e7, 80d391a, 715caf1, 328a4a8, ed0b7d3, 263eaa3, 7068a65, 0f3ea4b, ffcb7c5]:

    • @atproto/ozone@0.4.0
    • @atproto/xrpc-server@0.13.0
    • @atproto/bsky@0.0.278
    • @atproto/api@0.20.43
    • @atproto/bsync@0.0.43
    • @atproto/lex@0.3.9
    • @atproto/pds@0.5.32
    • @atproto/syntax@0.7.6
    • @atproto/sync@0.4.8
    • @atproto/common-web@0.5.11
    • @atproto/lexicon@0.7.13
    • @atproto/identity@0.5.11

@atproto/identity@0.5.11

Patch Changes

  • Updated dependencies []:
    • @atproto/common-web@0.5.11

@atproto-labs/xrpc-utils@0.1.21

Patch Changes

  • Updated dependencies [8a4631a, ffcb7c5]:
    • @atproto/xrpc-server@0.13.0
    • @atproto/xrpc@0.8.12

@atproto/lex-cli@0.10.12

Patch Changes

  • Updated dependencies [ed0b7d3]:
    • @atproto/syntax@0.7.6
    • @atproto/lexicon@0.7.13

@atproto/lex@0.3.9

Patch Changes

  • #5426 ed0b7d3 Thanks @bigmoves! - Add walk utility to browse a generated namespace.

  • Updated dependencies [ed0b7d3, ed0b7d3]:

    • @atproto/lex-schema@0.2.7
    • @atproto/lex-builder@0.1.14
    • @atproto/lex-client@0.3.6
    • @atproto/lex-installer@0.1.18

@atproto/lex-builder@0.1.14

Patch Changes

  • Updated dependencies [ed0b7d3, ed0b7d3]:
    • @atproto/lex-schema@0.2.7
    • @atproto/lex-document@0.1.11

@atproto/lex-client@0.3.6

Patch Changes

@atproto/lex-document@0.1.11

Patch Changes

@atproto/lex-installer@0.1.18

Patch Changes

  • Updated dependencies [ed0b7d3, ed0b7d3, ed0b7d3]:
    • @atproto/lex-schema@0.2.7
    • @atproto/syntax@0.7.6
    • @atproto/lex-builder@0.1.14
    • @atproto/lex-document@0.1.11
    • @atproto/lex-resolver@0.2.11

@atproto/lex-password-session@0.2.3

Patch Changes

  • Updated dependencies [ed0b7d3, ed0b7d3]:
    • @atproto/lex-schema@0.2.7
    • @atproto/lex-client@0.3.6

@atproto/lex-resolver@0.2.11

Patch Changes

  • Updated dependencies [ed0b7d3, ed0b7d3, ed0b7d3]:
    • @atproto/lex-schema@0.2.7
    • @atproto/syntax@0.7.6
    • @atproto/lex-client@0.3.6
    • @atproto/lex-document@0.1.11
    • @atproto/repo@0.10.13

@atproto/lex-schema@0.2.7

Patch Changes

  • #5426 ed0b7d3 Thanks @bigmoves! - Add asUnknown$TypedObject utility

  • #5426 ed0b7d3 Thanks @bigmoves! - Fix TypeScript errors when schemas are used within a project that does not have "isolatedDeclarations" enabled

  • Updated dependencies [ed0b7d3]:

    • @atproto/syntax@0.7.6

@atproto/lex-server@0.1.17

Patch Changes

  • Updated dependencies [ed0b7d3, ed0b7d3]:
    • @atproto/lex-schema@0.2.7
    • @atproto/lex-client@0.3.6

@atproto/lexicon@0.7.13

Patch Changes

  • Updated dependencies [ed0b7d3]:
    • @atproto/syntax@0.7.6
    • @atproto/common-web@0.5.11

@atproto/lexicon-resolver@0.4.19

Patch Changes

  • Updated dependencies [ed0b7d3, ed0b7d3]:
    • @atproto/lex@0.3.9
    • @atproto/syntax@0.7.6
    • @atproto/lex-document@0.1.11
    • @atproto/repo@0.10.13
    • @atproto/identity@0.5.11

@atproto/oauth-client@0.8.5

Patch Changes

  • Updated dependencies []:
    • @atproto/xrpc@0.8.12

@atproto/oauth-client-browser@0.5.5

Patch Changes

  • Updated dependencies []:
    • @atproto/oauth-client@0.8.5

@atproto/oauth-client-expo@0.2.2

Patch Changes

  • Updated dependencies []:
    • @atproto/oauth-client@0.8.5
    • @atproto/oauth-client-browser@0.5.5

@atproto/oauth-client-node@0.5.5

Patch Changes

  • Updated dependencies []:
    • @atproto/oauth-client@0.8.5

@atproto/oauth-provider@0.22.6

Patch Changes

  • Updated dependencies [ed0b7d3]:
    • @atproto/syntax@0.7.6
    • @atproto/lex-document@0.1.11
    • @atproto/lex-resolver@0.2.11
    • @atproto/oauth-provider-api@0.8.2
    • @atproto/oauth-provider-ui@0.10.2
    • @atproto/oauth-scopes@0.5.11
    • @atproto/common@0.8.2

@atproto/oauth-provider-api@0.8.2

Patch Changes

  • Updated dependencies [ed0b7d3]:
    • @atproto/syntax@0.7.6

@atproto/oauth-provider-ui@0.10.2

Patch Changes

  • Updated dependencies []:
    • @atproto/oauth-provider-api@0.8.2

@atproto/oauth-scopes@0.5.11

Patch Changes

  • Updated dependencies [ed0b7d3]:
    • @atproto/syntax@0.7.6

@atproto/pds@0.5.32

Patch Changes

  • #5448 80d391a Thanks @estrattonbailey! - Forward all x-atproto-* request headers through PDS service proxies.

  • Updated dependencies [8a4631a, ed0b7d3, 222f4bc, 46fdec9, ed0b7d3, ffcb7c5]:

    • @atproto/xrpc-server@0.13.0
    • @atproto/lex@0.3.9
    • @atproto-labs/opentelemetry-node@0.2.0
    • @atproto/syntax@0.7.6
    • @atproto-labs/xrpc-utils@0.1.21
    • @atproto/oauth-provider@0.22.6
    • @atproto/oauth-scopes@0.5.11
    • @atproto/repo@0.10.13
    • @atproto/aws@0.3.16
    • @atproto/common@0.8.2
    • @atproto/identity@0.5.11

@atproto/repo@0.10.13

Patch Changes

  • Updated dependencies [ed0b7d3]:
    • @atproto/syntax@0.7.6
    • @atproto/common-web@0.5.11
    • @atproto/common@0.8.2

@atproto/sync@0.4.8

Patch Changes

  • Updated dependencies [8a4631a, ed0b7d3, ed0b7d3, ffcb7c5]:
    • @atproto/xrpc-server@0.13.0
    • @atproto/lex@0.3.9
    • @atproto/syntax@0.7.6
    • @atproto/repo@0.10.13
    • @atproto/common@0.8.2
    • @atproto/identity@0.5.11

@atproto/syntax@0.7.6

Patch Changes

@atproto/tap@0.4.7

Patch Changes

  • Updated dependencies [ed0b7d3, ed0b7d3]:
    • @atproto/lex@0.3.9
    • @atproto/syntax@0.7.6
    • @atproto/common@0.8.2

@atproto/xrpc@0.8.12

Patch Changes

  • Updated dependencies []:
    • @atproto/lexicon@0.7.13

@github-actions
github-actions Bot force-pushed the changeset-release/main branch 21 times, most recently from 755d578 to 2f7dec1 Compare September 3, 2026 18:04
@github-actions
github-actions Bot force-pushed the changeset-release/main branch 3 times, most recently from c6d55dd to 3ffcb9d Compare September 4, 2026 16:20
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 3ffcb9d to 6526ecd Compare September 4, 2026 16:30
@estrattonbailey
estrattonbailey merged commit 96c8438 into main Sep 4, 2026
3 checks passed
@estrattonbailey
estrattonbailey deleted the changeset-release/main branch September 4, 2026 17:49
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