Skip to content

Version Packages#600

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main
Open

Version Packages#600
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented May 4, 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

@ydbjs/auth@6.3.0

Minor Changes

  • #599 c388ccc Thanks @polRk! - Publish credentials-provider events on node:diagnostics_channel.

    New channels:

    • tracing:ydb:auth.token.fetch — span around the full token fetch, including retries. Context: { provider }.
    • ydb:auth.token.refreshed{ provider, expiresAt } (unix ms). Single, monotonic timestamp instead of per-provider expiresIn semantics.
    • ydb:auth.token.expired{ provider, stalenessMs }. Fires once per expiration incident, not per call.
    • ydb:auth.provider.failed{ provider, error }. Fires after all retries are exhausted.

    provider is an open string set. Built-in values: 'static', 'metadata', plus values contributed by external providers (e.g. 'yc-service-account' from @ydbjs/auth-yandex-cloud). Custom CredentialsProvider implementations should mint a stable, namespaced provider id.

    Channel names and payload fields are part of the public API. See packages/auth/README.md for the full contract and a warning about safe subscribers.

Patch Changes

  • #599 fa32650 Thanks @polRk! - Follow-ups to the node:diagnostics_channel instrumentation:

    @ydbjs/query — new tracing channels around transaction control RPCs:

    • tracing:ydb:query.beginBeginTransaction. Context: { sessionId, nodeId, isolation }.
    • tracing:ydb:query.commitCommitTransaction. Context: { sessionId, nodeId, txId }.
    • tracing:ydb:query.rollbackRollbackTransaction. Context: { sessionId, nodeId, txId }. Fire-and-forget — start always fires, asyncEnd may land after the surrounding query.transaction.error.

    tracing:ydb:query.execute is reserved for ExecuteQuery RPCs only; subscribers building per-statement metrics should not expect query.execute events for begin/commit/rollback.

    Bug fixes:

    • @ydbjs/query — releasing a checked-out session after pool.close() no longer publishes ydb:session.closed twice. The eviction listener is detached before session.close() fires its abort.
    • @ydbjs/coreDriver.close() now cancels in-flight discovery and rejects pending ready() waiters. ydb:driver.ready / ydb:driver.failed no longer fire after ydb:driver.closed.
    • @ydbjs/corepool.pessimize() only publishes ydb:pool.connection.pessimized (and calls the onPessimize hook) on the active→pessimized transition. Repeated pessimize calls that just refresh the timeout are now silent, so subscribers reconstructing pool state from delta events don't see phantom transitions.

    Documentation contract clarifications (no behavior change, but subscribers built from the previous wording were wrong):

    • @ydbjs/retrytracing:ydb:retry.attempt.error fires for every failed attempt, including the final non-retried one. The README previously implied it fires only for attempts that will be retried.
    • @ydbjs/auth — the provider field is an open string set (custom CredentialsProvider implementations may contribute new values), not an enum. Subscribers should treat it as a label rather than write exhaustive switches.
  • Updated dependencies [fa32650, b8b5ef5]:

    • @ydbjs/retry@6.3.0

@ydbjs/core@6.2.0

Minor Changes

  • #599 efa7adf Thanks @polRk! - Publish driver, discovery, and connection-pool events on node:diagnostics_channel so external subscribers can build traces, metrics, and logs.

    New channels:

    • ydb:driver.ready, ydb:driver.failed, ydb:driver.closed — driver lifecycle.
    • tracing:ydb:discovery — discovery round span.
    • ydb:discovery.completed — per-round delta.
    • ydb:pool.connection.added, pessimized, unpessimized, retired, removed — connection-pool state changes.

    Channel names and payload fields are part of the public API. See packages/core/README.md for the full table and a warning about safe subscribers (DC publishes synchronously — a throwing subscriber will disrupt the SDK).

Patch Changes

  • #599 fa32650 Thanks @polRk! - Follow-ups to the node:diagnostics_channel instrumentation:

    @ydbjs/query — new tracing channels around transaction control RPCs:

    • tracing:ydb:query.beginBeginTransaction. Context: { sessionId, nodeId, isolation }.
    • tracing:ydb:query.commitCommitTransaction. Context: { sessionId, nodeId, txId }.
    • tracing:ydb:query.rollbackRollbackTransaction. Context: { sessionId, nodeId, txId }. Fire-and-forget — start always fires, asyncEnd may land after the surrounding query.transaction.error.

    tracing:ydb:query.execute is reserved for ExecuteQuery RPCs only; subscribers building per-statement metrics should not expect query.execute events for begin/commit/rollback.

    Bug fixes:

    • @ydbjs/query — releasing a checked-out session after pool.close() no longer publishes ydb:session.closed twice. The eviction listener is detached before session.close() fires its abort.
    • @ydbjs/coreDriver.close() now cancels in-flight discovery and rejects pending ready() waiters. ydb:driver.ready / ydb:driver.failed no longer fire after ydb:driver.closed.
    • @ydbjs/corepool.pessimize() only publishes ydb:pool.connection.pessimized (and calls the onPessimize hook) on the active→pessimized transition. Repeated pessimize calls that just refresh the timeout are now silent, so subscribers reconstructing pool state from delta events don't see phantom transitions.

    Documentation contract clarifications (no behavior change, but subscribers built from the previous wording were wrong):

    • @ydbjs/retrytracing:ydb:retry.attempt.error fires for every failed attempt, including the final non-retried one. The README previously implied it fires only for attempts that will be retried.
    • @ydbjs/auth — the provider field is an open string set (custom CredentialsProvider implementations may contribute new values), not an enum. Subscribers should treat it as a label rather than write exhaustive switches.
  • Updated dependencies [c388ccc, fa32650, b8b5ef5]:

    • @ydbjs/auth@6.3.0
    • @ydbjs/retry@6.3.0

@ydbjs/query@6.2.0

Minor Changes

  • #599 fa32650 Thanks @polRk! - Follow-ups to the node:diagnostics_channel instrumentation:

    @ydbjs/query — new tracing channels around transaction control RPCs:

    • tracing:ydb:query.beginBeginTransaction. Context: { sessionId, nodeId, isolation }.
    • tracing:ydb:query.commitCommitTransaction. Context: { sessionId, nodeId, txId }.
    • tracing:ydb:query.rollbackRollbackTransaction. Context: { sessionId, nodeId, txId }. Fire-and-forget — start always fires, asyncEnd may land after the surrounding query.transaction.error.

    tracing:ydb:query.execute is reserved for ExecuteQuery RPCs only; subscribers building per-statement metrics should not expect query.execute events for begin/commit/rollback.

    Bug fixes:

    • @ydbjs/query — releasing a checked-out session after pool.close() no longer publishes ydb:session.closed twice. The eviction listener is detached before session.close() fires its abort.
    • @ydbjs/coreDriver.close() now cancels in-flight discovery and rejects pending ready() waiters. ydb:driver.ready / ydb:driver.failed no longer fire after ydb:driver.closed.
    • @ydbjs/corepool.pessimize() only publishes ydb:pool.connection.pessimized (and calls the onPessimize hook) on the active→pessimized transition. Repeated pessimize calls that just refresh the timeout are now silent, so subscribers reconstructing pool state from delta events don't see phantom transitions.

    Documentation contract clarifications (no behavior change, but subscribers built from the previous wording were wrong):

    • @ydbjs/retrytracing:ydb:retry.attempt.error fires for every failed attempt, including the final non-retried one. The README previously implied it fires only for attempts that will be retried.
    • @ydbjs/auth — the provider field is an open string set (custom CredentialsProvider implementations may contribute new values), not an enum. Subscribers should treat it as a label rather than write exhaustive switches.
  • #599 be55d0c Thanks @polRk! - Publish query, transaction, and session-pool events on node:diagnostics_channel.

    New channels:

    • tracing:ydb:query.execute — span around a single ExecuteQuery RPC. Context: { text, sessionId, nodeId, idempotent, isolation, stage }. stage is 'standalone' | 'tx' | 'do'.
    • tracing:ydb:query.transaction — span around tx.begincommit/rollback including retries. Context: { isolation, idempotent }.
    • tracing:ydb:session.acquire — span around pool.acquire(). Context: { kind: 'query' | 'transaction' }.
    • tracing:ydb:session.create — span around Session.open() when the pool grows. Context: { liveSessions, maxSize, creating }.
    • ydb:session.created{ sessionId, nodeId }.
    • ydb:session.closed{ sessionId, nodeId, reason, uptime } with reason: 'evicted' | 'pool_close'. Fires exactly once per session, replacing the previous pair of evicted + destroyed events (which could double-fire on pool.close()).

    Retry-loop spans (tracing:ydb:retry.*) come from @ydbjs/retry and nest under query.transaction / query.execute via AsyncLocalStorage propagation — no per-callsite retry channel imports needed.

    Channel names, payload fields, and the stage / reason / kind enums are part of the public API. See packages/query/README.md for the full contract and a warning about safe subscribers.

Patch Changes

@ydbjs/retry@6.3.0

Minor Changes

  • #599 b8b5ef5 Thanks @polRk! - Publish retry-loop and per-attempt events on node:diagnostics_channel.

    New channels:

    • tracing:ydb:retry.run — span around the whole retry loop. Context: { idempotent }.
    • tracing:ydb:retry.attempt — span around each attempt (numbered from 1). Context: { attempt, idempotent }.
    • ydb:retry.exhausted — publish event when the loop exits without success. Payload: { attempts, totalDuration, lastError }.

    Every consumer of retry() (driver discovery, query execution, transactions, auth token refresh) now produces a unified retry-span hierarchy automatically — no per-callsite imports needed.

    Channel names and payload fields are part of the public API. See packages/retry/README.md for the full table and a warning about safe subscribers.

Patch Changes

  • #599 fa32650 Thanks @polRk! - Follow-ups to the node:diagnostics_channel instrumentation:

    @ydbjs/query — new tracing channels around transaction control RPCs:

    • tracing:ydb:query.beginBeginTransaction. Context: { sessionId, nodeId, isolation }.
    • tracing:ydb:query.commitCommitTransaction. Context: { sessionId, nodeId, txId }.
    • tracing:ydb:query.rollbackRollbackTransaction. Context: { sessionId, nodeId, txId }. Fire-and-forget — start always fires, asyncEnd may land after the surrounding query.transaction.error.

    tracing:ydb:query.execute is reserved for ExecuteQuery RPCs only; subscribers building per-statement metrics should not expect query.execute events for begin/commit/rollback.

    Bug fixes:

    • @ydbjs/query — releasing a checked-out session after pool.close() no longer publishes ydb:session.closed twice. The eviction listener is detached before session.close() fires its abort.
    • @ydbjs/coreDriver.close() now cancels in-flight discovery and rejects pending ready() waiters. ydb:driver.ready / ydb:driver.failed no longer fire after ydb:driver.closed.
    • @ydbjs/corepool.pessimize() only publishes ydb:pool.connection.pessimized (and calls the onPessimize hook) on the active→pessimized transition. Repeated pessimize calls that just refresh the timeout are now silent, so subscribers reconstructing pool state from delta events don't see phantom transitions.

    Documentation contract clarifications (no behavior change, but subscribers built from the previous wording were wrong):

    • @ydbjs/retrytracing:ydb:retry.attempt.error fires for every failed attempt, including the final non-retried one. The README previously implied it fires only for attempts that will be retried.
    • @ydbjs/auth — the provider field is an open string set (custom CredentialsProvider implementations may contribute new values), not an enum. Subscribers should treat it as a label rather than write exhaustive switches.

@ydbjs/auth-yandex-cloud@0.2.0

Minor Changes

  • #599 c388ccc Thanks @polRk! - Participate in the node:diagnostics_channel surface defined by @ydbjs/auth.

    ServiceAccountCredentialsProvider now publishes:

    • tracing:ydb:auth.token.fetch — span around getToken() with provider: 'yc-service-account'.
    • ydb:auth.token.refreshed{ provider, expiresAt } after a successful IAM token exchange.
    • ydb:auth.token.expired{ provider, stalenessMs }, once per incident.
    • ydb:auth.provider.failed{ provider, error } when all retries are exhausted.

    Retry attempts inside the IAM exchange are visible on tracing:ydb:retry.* from @ydbjs/retry. See @ydbjs/auth README for the full channel contract and the warning about safe subscribers.

Patch Changes

@ydbjs/topic@6.1.3

Patch Changes

  • #603 8d40d0d Thanks @copilot-swe-agent! - Preserve createdAt, writtenAt, and metadataItems on TopicMessage when constructed from options. Previously the constructor dropped these fields, so messages produced by readers always exposed them as undefined.

  • Updated dependencies [efa7adf, fa32650, b8b5ef5]:

    • @ydbjs/core@6.2.0
    • @ydbjs/retry@6.3.0

@github-actions github-actions Bot force-pushed the changeset-release/main branch from 0d7f49c to 3f38e3f Compare May 7, 2026 12:04
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.

0 participants