Skip to content

v6.20.0 proposal - #10603

Merged
dd-octo-sts[bot] merged 39 commits into
v6.xfrom
v6.20.0-proposal
Oct 6, 2026
Merged

dd-octo-sts[bot] merged 39 commits into
v6.xfrom
v6.20.0-proposal

Conversation

@dd-octo-sts

@dd-octo-sts dd-octo-sts Bot commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Features

  • Dynamic Instrumentation: Add an evaluation time budget #10156
  • Feature Flags: Add privacy-protected flag evaluation telemetry #10464
  • LLM Observability: Add BaseEvaluator support for Experiments #9848
  • LLM Observability: Add remote evaluators #10487
  • OpenTelemetry: Add OTel consistent probability sampling state to spans exported through OTLP #10189
  • OpenTelemetry: Otel sampling support in distributed tracing #10117

Fixes

  • aws-sdk: Handle region provider rejections #10583
  • Dynamic Instrumentation: Bound pause duration telemetry while the application is busy #10607
  • Dynamic Instrumentation: Classify worker failures in telemetry #10393
  • Dynamic Instrumentation: Drop probe results that stay over the size cap #10345
  • Dynamic Instrumentation: Redact sensitive identifiers in log templates and capture expressions #10612
  • General: Restore legacy RC capability bits #10573
  • LLM Observability: Don't corrupt literal "\u" sequences when encoding payloads #10609
  • LLM Observability: Keep LLMObs tracing after an aborted stream #10577
  • LLM Observability: Preserve structured experiment output #10472
  • LLM Observability: Properly record runtimeContext in newer v7 versions #10629
  • OpenTelemetry: Return non-function targets unchanged from ContextManager.bind() #10544

Internal (CI, Testing, Benchmarking)

  • AppSec: Update native-appsec to 11.0.3 #10625
  • Feature Flags: Shorten evaluation workloads #10588
  • Feature Flags: Verify bundled provider behavior and align test versions #10545
  • General: Shorten replacement injection #10587
  • General: Update one-pipeline version #10610
  • postgres: Remove identity hooks #10649
  • supabase: Remove identity hooks #10511

Contributors

@BridgeAR @codex @IlyasShabi @jessicagamio @mehulsonowal @mtoffl01 @pabloerhard @rachelyangdog @rochdev @sabrenner @vjfridge @vpellan @watson

dependabot Bot and others added 8 commits October 2, 2026 05:06
…th 11 updates (#10578)

Bumps the cloud-and-messaging group with 11 updates in the /packages/dd-trace/test/plugins/versions directory:

| Package | From | To |
| --- | --- | --- |
| [@aws-sdk/client-bedrock-runtime](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-bedrock-runtime) | `3.1140.0` | `3.1141.0` |
| [@aws-sdk/client-dynamodb](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-dynamodb) | `3.1140.0` | `3.1141.0` |
| [@aws-sdk/client-eventbridge](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-eventbridge) | `3.1140.0` | `3.1141.0` |
| [@aws-sdk/client-kinesis](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-kinesis) | `3.1140.0` | `3.1141.0` |
| [@aws-sdk/client-lambda](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-lambda) | `3.1140.0` | `3.1141.0` |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1140.0` | `3.1141.0` |
| [@aws-sdk/client-sfn](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sfn) | `3.1140.0` | `3.1141.0` |
| [@aws-sdk/client-sns](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sns) | `3.1140.0` | `3.1141.0` |
| [@aws-sdk/client-sqs](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sqs) | `3.1140.0` | `3.1141.0` |
| [amqplib](https://github.com/amqp-node/amqplib) | `2.0.1` | `2.1.0` |
| [bullmq](https://github.com/taskforcesh/bullmq) | `6.3.8` | `6.3.9` |



Updates `@aws-sdk/client-bedrock-runtime` from 3.1140.0 to 3.1141.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-bedrock-runtime/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1141.0/clients/client-bedrock-runtime)

Updates `@aws-sdk/client-dynamodb` from 3.1140.0 to 3.1141.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-dynamodb/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1141.0/clients/client-dynamodb)

Updates `@aws-sdk/client-eventbridge` from 3.1140.0 to 3.1141.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-eventbridge/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1141.0/clients/client-eventbridge)

Updates `@aws-sdk/client-kinesis` from 3.1140.0 to 3.1141.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-kinesis/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1141.0/clients/client-kinesis)

Updates `@aws-sdk/client-lambda` from 3.1140.0 to 3.1141.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-lambda/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1141.0/clients/client-lambda)

Updates `@aws-sdk/client-s3` from 3.1140.0 to 3.1141.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1141.0/clients/client-s3)

Updates `@aws-sdk/client-sfn` from 3.1140.0 to 3.1141.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sfn/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1141.0/clients/client-sfn)

Updates `@aws-sdk/client-sns` from 3.1140.0 to 3.1141.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sns/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1141.0/clients/client-sns)

Updates `@aws-sdk/client-sqs` from 3.1140.0 to 3.1141.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sqs/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1141.0/clients/client-sqs)

Updates `amqplib` from 2.0.1 to 2.1.0
- [Release notes](https://github.com/amqp-node/amqplib/releases)
- [Changelog](https://github.com/amqp-node/amqplib/blob/main/CHANGELOG.md)
- [Commits](amqp-node/amqplib@v2.0.1...v2.1.0)

Updates `bullmq` from 6.3.8 to 6.3.9
- [Release notes](https://github.com/taskforcesh/bullmq/releases)
- [Commits](taskforcesh/bullmq@v6.3.8...v6.3.9)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-bedrock-runtime"
  dependency-version: 3.1141.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-dynamodb"
  dependency-version: 3.1141.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-eventbridge"
  dependency-version: 3.1141.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-kinesis"
  dependency-version: 3.1141.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-lambda"
  dependency-version: 3.1141.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.1141.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-sfn"
  dependency-version: 3.1141.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-sns"
  dependency-version: 3.1141.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-sqs"
  dependency-version: 3.1141.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: amqplib
  dependency-version: 2.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: bullmq
  dependency-version: 6.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cloud-and-messaging
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…updates (#10575)

Bumps the test-versions group with 17 updates in the /packages/dd-trace/test/plugins/versions directory:

| Package | From | To |
| --- | --- | --- |
| [@datadog/openfeature-node-server](https://github.com/DataDog/openfeature-js-client/tree/HEAD/packages/node-server) | `2.3.0` | `2.4.0` |
| [@supabase/auth-js](https://github.com/supabase/supabase-js/tree/HEAD/packages/core/auth-js) | `2.116.0` | `2.117.2` |
| [@supabase/functions-js](https://github.com/supabase/supabase-js/tree/HEAD/packages/core/functions-js) | `2.116.0` | `2.117.2` |
| [@supabase/postgrest-js](https://github.com/supabase/supabase-js/tree/HEAD/packages/core/postgrest-js) | `2.116.0` | `2.117.2` |
| [@supabase/realtime-js](https://github.com/supabase/supabase-js/tree/HEAD/packages/core/realtime-js) | `2.116.0` | `2.117.2` |
| [@supabase/storage-js](https://github.com/supabase/supabase-js/tree/HEAD/packages/core/storage-js) | `2.116.0` | `2.117.2` |
| [@supabase/supabase-js](https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js) | `2.116.0` | `2.117.2` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.6.1` | `26.6.3` |
| [@wdio/cli](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-cli) | `9.31.9` | `9.32.0` |
| [@wdio/jasmine-framework](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-jasmine-framework) | `9.31.9` | `9.32.0` |
| [@wdio/local-runner](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-local-runner) | `9.31.9` | `9.32.0` |
| [@wdio/mocha-framework](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-mocha-framework) | `9.31.9` | `9.32.0` |
| [google-gax](https://github.com/googleapis/google-cloud-node/tree/HEAD/core/packages/gax) | `6.4.0` | `6.7.0` |
| [mercurius](https://github.com/mercurius-js/mercurius) | `16.10.0` | `16.10.1` |
| [npm](https://github.com/npm/cli) | `12.0.2` | `12.1.0` |
| [pnpm](https://github.com/pnpm/pnpm/tree/HEAD/pnpm/npm/pnpm) | `12.4.2` | `12.7.0` |
| [webdriverio](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/webdriverio) | `9.31.9` | `9.32.0` |



Updates `@datadog/openfeature-node-server` from 2.3.0 to 2.4.0
- [Release notes](https://github.com/DataDog/openfeature-js-client/releases)
- [Changelog](https://github.com/DataDog/openfeature-js-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/DataDog/openfeature-js-client/commits/@datadog/openfeature-node-server@2.4.0/packages/node-server)

Updates `@supabase/auth-js` from 2.116.0 to 2.117.2
- [Release notes](https://github.com/supabase/supabase-js/releases)
- [Changelog](https://github.com/supabase/supabase-js/blob/master/packages/core/auth-js/CHANGELOG.md)
- [Commits](https://github.com/supabase/supabase-js/commits/v2.117.2/packages/core/auth-js)

Updates `@supabase/functions-js` from 2.116.0 to 2.117.2
- [Release notes](https://github.com/supabase/supabase-js/releases)
- [Changelog](https://github.com/supabase/supabase-js/blob/master/packages/core/functions-js/CHANGELOG.md)
- [Commits](https://github.com/supabase/supabase-js/commits/v2.117.2/packages/core/functions-js)

Updates `@supabase/postgrest-js` from 2.116.0 to 2.117.2
- [Release notes](https://github.com/supabase/supabase-js/releases)
- [Changelog](https://github.com/supabase/supabase-js/blob/master/packages/core/postgrest-js/CHANGELOG.md)
- [Commits](https://github.com/supabase/supabase-js/commits/v2.117.2/packages/core/postgrest-js)

Updates `@supabase/realtime-js` from 2.116.0 to 2.117.2
- [Release notes](https://github.com/supabase/supabase-js/releases)
- [Changelog](https://github.com/supabase/supabase-js/blob/master/packages/core/realtime-js/CHANGELOG.md)
- [Commits](https://github.com/supabase/supabase-js/commits/v2.117.2/packages/core/realtime-js)

Updates `@supabase/storage-js` from 2.116.0 to 2.117.2
- [Release notes](https://github.com/supabase/supabase-js/releases)
- [Changelog](https://github.com/supabase/supabase-js/blob/master/packages/core/storage-js/CHANGELOG.md)
- [Commits](https://github.com/supabase/supabase-js/commits/v2.117.2/packages/core/storage-js)

Updates `@supabase/supabase-js` from 2.116.0 to 2.117.2
- [Release notes](https://github.com/supabase/supabase-js/releases)
- [Changelog](https://github.com/supabase/supabase-js/blob/master/packages/core/supabase-js/CHANGELOG.md)
- [Commits](https://github.com/supabase/supabase-js/commits/v2.117.2/packages/core/supabase-js)

Updates `@types/node` from 26.6.1 to 26.6.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `@wdio/cli` from 9.31.9 to 9.32.0
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webdriverio/webdriverio/commits/v9.32.0/packages/wdio-cli)

Updates `@wdio/jasmine-framework` from 9.31.9 to 9.32.0
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webdriverio/webdriverio/commits/v9.32.0/packages/wdio-jasmine-framework)

Updates `@wdio/local-runner` from 9.31.9 to 9.32.0
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webdriverio/webdriverio/commits/v9.32.0/packages/wdio-local-runner)

Updates `@wdio/mocha-framework` from 9.31.9 to 9.32.0
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webdriverio/webdriverio/commits/v9.32.0/packages/wdio-mocha-framework)

Updates `google-gax` from 6.4.0 to 6.7.0
- [Release notes](https://github.com/googleapis/google-cloud-node/releases)
- [Changelog](https://github.com/googleapis/google-cloud-node/blob/main/core/packages/gax/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-cloud-node/commits/google-gax-v6.7.0/core/packages/gax)

Updates `mercurius` from 16.10.0 to 16.10.1
- [Release notes](https://github.com/mercurius-js/mercurius/releases)
- [Commits](mercurius-js/mercurius@v16.10.0...v16.10.1)

Updates `npm` from 12.0.2 to 12.1.0
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](npm/cli@v12.0.2...v12.1.0)

Updates `pnpm` from 12.4.2 to 12.7.0
- [Release notes](https://github.com/pnpm/pnpm/releases)
- [Commits](https://github.com/pnpm/pnpm/commits/v12.7.0/pnpm/npm/pnpm)

Updates `webdriverio` from 9.31.9 to 9.32.0
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webdriverio/webdriverio/commits/v9.32.0/packages/webdriverio)

---
updated-dependencies:
- dependency-name: "@datadog/openfeature-node-server"
  dependency-version: 2.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
- dependency-name: "@supabase/auth-js"
  dependency-version: 2.117.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
- dependency-name: "@supabase/functions-js"
  dependency-version: 2.117.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
- dependency-name: "@supabase/postgrest-js"
  dependency-version: 2.117.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
- dependency-name: "@supabase/realtime-js"
  dependency-version: 2.117.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
- dependency-name: "@supabase/storage-js"
  dependency-version: 2.117.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
- dependency-name: "@supabase/supabase-js"
  dependency-version: 2.117.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
- dependency-name: "@types/node"
  dependency-version: 26.6.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-versions
- dependency-name: "@wdio/cli"
  dependency-version: 9.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
- dependency-name: "@wdio/jasmine-framework"
  dependency-version: 9.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
- dependency-name: "@wdio/local-runner"
  dependency-version: 9.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
- dependency-name: "@wdio/mocha-framework"
  dependency-version: 9.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
- dependency-name: google-gax
  dependency-version: 6.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
- dependency-name: mercurius
  dependency-version: 16.10.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-versions
- dependency-name: npm
  dependency-version: 12.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
- dependency-name: pnpm
  dependency-version: 12.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
- dependency-name: webdriverio
  dependency-version: 9.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ruben Bridgewater <ruben@bridgewater.de>
…rsions (#10545)

* chore(openfeature): upgrade bundled provider to 2.4.0

Separate the evaluator prerequisite from EVP telemetry. Characterize the core 3.x coercion changes and strict evaluation-time consent metadata using the real vendored provider.

Co-Authored-By: Codex <noreply@openai.com>

* test(openfeature): narrow provider upgrade coverage to bundled smoke tests

Keep evaluation and metadata boundary coverage while leaving the detailed evaluator matrix upstream. Align the test-version provider with the vendored 2.4.0 dependency.

Co-Authored-By: Codex <noreply@openai.com>

* test(openfeature): cover bundled provider targeting behavior

* test(openfeature): reject non-boolean evaluation consent

---------

Co-authored-by: Codex <noreply@openai.com>
…10464)

* feat(openfeature): add flag evaluation privacy policy

* feat(openfeature): add bounded context snapshots

* feat(openfeature): add flag evaluation writer

* refactor(openfeature): tighten flag evaluation boundaries

* test(openfeature): preserve degraded consent denial

* fix(openfeature): narrow flag evaluation writer types

* feat(openfeature): capture aggregated evaluation telemetry

* test(openfeature): verify EVP privacy lifecycle and measure overhead

* fix(openfeature): skip disabled evaluation metrics hook

Construct and register EvalMetricsHook only when DD_METRICS_OTEL_ENABLED is exactly true. This avoids inactive SDK hook dispatch and context-copy work while preserving the enabled path, lazy counter initialization, and independent span and EVP hooks.

In a 36-process same-provider comparison, protected-scale median evaluation time improved from 507.389 us to 431.821 us (14.89%) and finished within 0.41% of master (430.067 us).

* feat(openfeature): process evaluation telemetry in a worker

Move privacy-safe EVP hashing, aggregation, serialization and HTTP delivery to a lazy per-provider worker. Batch up to eight observations with shared 4096-input admission, bounded encoded delivery and graceful failure/shutdown accounting. Preserve evaluation-time consent and context snapshots.

Real-production ARM64 comparisons delivered all 12000 burst observations versus 4096 with same-thread deferral. Normal load costs about 10-12% more CPU and 16-26 MiB peak RSS; high-load one-CPU request p99 improves from 416 to 129 ms protected and 501 to 182 ms full. These are two-repeat measurements, not a universal speedup.

Cover real-worker privacy, routing, lifecycle and failure behavior, and adapt benchmarks to asynchronous delivery with explicit measurement boundaries.

* refactor(openfeature): clarify prefixed targeting key digest

* fix(openfeature): release serialized evaluation snapshots

Release detached aggregation lookup keys before serializing and drop each entry reference as the flush progresses. Preserve payload ordering, counts, privacy, and existing capacity limits without adding byte budgets.

Add subprocess GC regression coverage for paused multi-payload flushes. Validated 507 OpenFeature tests, targeted lint, ten repeated GC checks, and unchanged payload bytes in three retained-heap diagnostic runs.

* Use released flagging provider and verify evaluation-time privacy

* chore(codeowners): assign OpenFeature benchmark ownership

* bench(openfeature): narrow the always-on EVP scenario matrix

Keep normal protected/full, near-limit full, and oversized full scenarios in CI. Preserve the other combinations as documented on-demand runs and retain focused snapshot benchmarks. The actual six-shard allocator now needs 143 rather than 147 CPU slots.

* fix(openfeature): align counts config and isolate benchmark output

* chore(openfeature): align license metadata and formatting

* chore(benchmarks): expose skipped baseline errors

* revert(benchmarks): remove temporary baseline diagnostics

This reverts commit 3d72429. The captured CI logs identified the scale-full startup-share guard failure; remove the temporary logging and its dedicated tests.

* bench(openfeature): size scale workload from setup measurements

Increase scale-full from 20,000 to 40,000 evaluations while retaining 500 warmup evaluations, 12 repetitions, and the 7% startup-share guard.

CI baseline setup was 7.07-7.08% of the run. Profiling shows warmup dominates setup; doubling the loop projects about 3.7% on CI. Twelve paired validation runs on Node 24.16.0 and 26.2.0 passed at 40,000 with 2.81-3.14% setup share and zero candidate drops on the ARM64 workspace. Keep the existing privacy, delivery, and cleanup assertions.

* bench(openfeature): retain calibrated Node 20 workload

Use the existing operations_by_node override to keep scale-full at 20,000 evaluations on Node 20 while retaining 40,000 on newer runtimes. The 40,000-operation Node 20 candidate took 18m23s, leaving insufficient time for the baseline within the unchanged 30-minute job.

The previous Node 20 CI run passed at 20,000 (candidate 9m35s; baseline 8m14s). Fresh Node 20.20.2 workspace runs passed on both sources with setup shares of 3.07% and 2.77%, respectively, and zero candidate drops. Retain 500 warmup evaluations, 12 repetitions, the 7% guard, and all correctness checks. Metadata resolution checks and all 225 script tests pass.

* test(openfeature): admit error probe before saturating worker queue

* test(openfeature): strengthen assertions and reduce redundant coverage

* perf(openfeature): avoid redundant context aggregation work

Encode validated context tuples once in the aggregation identity and only materialize frozen attributes for new aggregates. Share scalar validation while keeping serializer snapshot construction allocation-light. Preserve consent, grouping, immutability and independent payload privacy checks.

Local ARM64 Node 22.23.2 paired measurements against 4ac28b6: repeated-identity aggregation CPU improves 34-35%; real SDK process CPU improves 3.0% for typical full contexts and 7.6% for 256-field full contexts. Three alternating pipeline pairs, 60000 typical / 6000 scale evaluations, warmup 1000, pinned to CPUs 0-1, using benchmark/sirun/openfeature/index.js and matched provider dependencies. All 756000 measured evaluations delivered with zero drops. No meaningful evaluation-latency improvement claimed.

Distinct-identity aggregation plus serialization improves 11-13% after warmup; the first small-context serialization costs about 3% more CPU. Focused privacy/grouping coverage and full OpenFeature suite pass. Global typecheck remains non-green on the baseline, with no added diagnostics.

* fix(openfeature): harden evaluation telemetry recovery

Handle missing featureFlags configuration and classify subsequent dead-worker drops correctly in both the hook and producer. Share optional metadata-key normalization while retaining independent privacy validation, simplify per-flag bookkeeping, and remove unused telemetry and the test-only payload wrapper.

Match Python and Ruby by preserving evaluation counts when context snapshotting throws: omit the failed context, record snapshot_error, and never log caller-controlled exception contents. Cover consent-off, exact raw payload privacy, repeated failures, subsequent healthy evaluations, and post-split payload degradation.

Keep unsalted SHA-256 deliberately aligned with the cross-SDK EVP contract for stable subject counts. This is pseudonymization, not anonymity: guessable inputs and cross-service/org hash correlation remain possible. An org-scoped salt requires coordinated configuration/backend support rather than a JS-only secret. Document this tradeoff, the intentional five-second shutdown drain, and the worker environment filter.

Validation: 492 OpenFeature/EVP tests and changed-file ESLint pass. Type-check diagnostics match the existing baseline with none added.

* fix(openfeature): isolate request retries and preserve evaluation counts

Give every envelope and fallback request private headers so delayed retries keep their original Content-Length. Preserve counts when targeting-key access fails, omit the unreadable key, and record bounded omission telemetry without exposing errors.

Add four regression cases covering direct/fallback retry lengths and consent on/off through the OpenFeature lifecycle. Document the evaluation-counts environment variable in the public TypeScript surface.

* fix(openfeature): defer worker startup and collect closing metrics

Start the worker with the first admitted batch rather than route discovery. Keep batch size, admission bounds, and the bounded final drain unchanged. Collect already-recorded worker diagnostics before instrumentation telemetry sends app-closing; document that subsequent drain metrics remain best-effort rather than adding tracer-wide shutdown coordination.

Cover idle providers, first-use failure and route changes, app-closing collection, prompt worker completion, and rejected-batch credit accounting. Removing the worker onIdle callback makes both prompt-close tests fail.

Validation: 503 OpenFeature/EVP tests pass; changed-file lint and diff checks pass. Repository typecheck remains baseline-red with 9259 diagnostics and no added or removed diagnostics.

* perf(openfeature): amortize worker handoff and protected hashing

Use 64-observation batches with at most 8 consented snapshots and a 20ms partial-batch timer. Hash protected keys when building output, matching Go/Java/Ruby, without weakening the serializer privacy boundary. Reuse bounded metric objects, warn once with bounded worker diagnostics, and remove redundant hook gating and the unused producer route argument.

Native ARM64 Node 22.23.2: 24 paired real-provider/worker/HTTP runs, 2.4M measured observations, zero drops and all privacy checks passed. Median CPU at one observation per turn: protected 87.62 to 44.95 us (-49%), consented 97.00 to 63.64 us (-34%); at 16 per turn: protected -12%, consented +0.9%. Focused repeated-user aggregation: 2.81 to 0.62 us; 20k mixed observations produce identical bytes. 508 OpenFeature/EVP tests pass; targeted lint passes; no added typecheck diagnostics against the 9259-error baseline. Diagnostics: /tmp/batch-bench.cjs, /tmp/hash-bench.cjs, /tmp/metric-bench.cjs on the remote workspace.

* fix(openfeature): count final evaluation delivery failures

Report discarded evaluations with reason:delivery_failure after the final transport outcome, including safe fallback. Preserve exactly-once ownership release and avoid replaying ambiguous failures. Coordinate the cross-SDK telemetry contract in FFL-3342.

* refactor(openfeature): simplify flag evaluation telemetry

Remove unused targeting-rule plumbing and duplicate hook readiness state. Share observation shaping at both admission boundaries and consolidate serializer privacy coverage without changing allocation, consent, or queue limits.

* fix(openfeature): flush evaluation worker on shared FFE signal

* fix(openfeature): retain startup evaluations and support PnP workers

* test(openfeature): fix PnP fixture under coverage and Windows

* test(openfeature): address review coverage and documentation

* chore(openfeature): assign benchmarks to FFE owners only

* fix(openfeature): digest long aggregation identities

Avoid V8's length-only string hashes above 16,383 UTF-16 units by
using namespaced SHA-256 map keys only for long full-tier identities.
Keep short keys and the independent output privacy hash unchanged.

Add boundary, distinct/repeated grouping, and payload privacy tests.
OpenFeature: 614 passing; integration: 6 passing; targeted ESLint clean.

Real-aggregator microbenchmark, ARM64 Node 22.23.2, median of three
alternating trials versus 75e5165: 1,000 distinct long targeting keys
1875 -> 159 ms, distinct large consented contexts 1873 -> 183 ms.
For 5,000 repeated large contexts, 778 -> 851 ms (+14.6 us/event);
repeated long targeting keys 829 -> 833 ms. Accept the long-input
hashing cost to avoid collision-chain slowdowns; no normal-path digest.
Harness retained at /tmp/ffe-long-identity.TnTvV3/benchmark.cjs.

* fix(openfeature): relay worker diagnostics through the configured logger

Pass effective logging settings to the worker and configure its existing log writer to forward diagnostics to the application isolate. Keep the custom logger in the parent, filter supported levels, and avoid new error telemetry.

Add real-worker HTTP success/failure coverage for custom logging, programmatic level overrides in both directions, and disabled logging. Regression cases failed before the change. OpenFeature suite: 616 passing; integration suite: 9 passing; targeted ESLint clean.

Permission inheritance is a separate confirmed issue and is not changed here.

* fix(openfeature): preserve worker permission restrictions

Retain Node permission options from NODE_OPTIONS and execArgv, in their original precedence order, while excluding application preloads. Keep this scoped to the FFE worker and preserve its PnP resolver exception.

Add three real-worker regression cases covering command-line options, quoted environment options, command-line denials overriding environment grants, denied filesystem access, and continued protected EVP delivery. Verified 619 OpenFeature/EVP-proxy tests, four worker logging/PnP integration tests, targeted ESLint, and permission regressions on Node 20, 22, 24, and 26 (skipped on Node 18).

* test(openfeature): isolate permission checks from coverage hooks

Disable coverage only for permission-test subprocesses after CI's node-preload hook runs. Keep their permission flags, application preloads, and real-worker assertions unchanged, and remove the temporary spawn listener in finally.

* fix(openfeature): preserve worker DNS and address selection options

Retain explicit DNS result ordering and network-family selection options from NODE_OPTIONS and the command line without inheriting application preloads. Preserve command-line precedence and existing permission handling.

Add real-worker regressions for both option sources and overrides, checking effective network defaults and successful EVP delivery. Verified 622 coverage-enabled unit tests, 9 integration tests, and focused tests on Node 18/20/22/24/26.

* docs(openfeature): document EVP toggle in v5 types

* fix(openfeature): preserve worker TLS version restrictions

* fix(openfeature): preserve worker HTTP header limits

* fix(openfeature): preserve FFE worker HTTP parser mode

* fix(openfeature): redact flag evaluation delivery errors
* feat(llmobs): add experiments project and evaluator parity

* chore(llmobs): align evaluator jsdoc lint

* refactor(llmobs): narrow evaluator parity scope

* fix(llmobs): keep evaluator types compatible with TypeScript

* refactor(llmobs): unify sync and async evaluators

* fix(llmobs): address evaluator review feedback

* fix(llmobs): preserve object evaluator results
…pdates (#10602)

Bumps the test-versions group with 2 updates in the /packages/dd-trace/test/plugins/versions directory: [google-gax](https://github.com/googleapis/google-cloud-node/tree/HEAD/core/packages/gax) and [pnpm](https://github.com/pnpm/pnpm/tree/HEAD/pnpm/npm/pnpm).


Updates `google-gax` from 6.7.0 to 6.9.0
- [Release notes](https://github.com/googleapis/google-cloud-node/releases)
- [Changelog](https://github.com/googleapis/google-cloud-node/blob/main/core/packages/gax/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-cloud-node/commits/google-gax-v6.9.0/core/packages/gax)

Updates `pnpm` from 12.7.0 to 12.8.1
- [Release notes](https://github.com/pnpm/pnpm/releases)
- [Commits](https://github.com/pnpm/pnpm/commits/v12.8.1/pnpm/npm/pnpm)

---
updated-dependencies:
- dependency-name: google-gax
  dependency-version: 6.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
- dependency-name: pnpm
  dependency-version: 12.8.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…th 10 updates (#10599)

Bumps the cloud-and-messaging group with 10 updates in the /packages/dd-trace/test/plugins/versions directory:

| Package | From | To |
| --- | --- | --- |
| [@aws-sdk/client-bedrock-runtime](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-bedrock-runtime) | `3.1141.0` | `3.1142.0` |
| [@aws-sdk/client-dynamodb](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-dynamodb) | `3.1141.0` | `3.1142.0` |
| [@aws-sdk/client-eventbridge](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-eventbridge) | `3.1141.0` | `3.1142.0` |
| [@aws-sdk/client-kinesis](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-kinesis) | `3.1141.0` | `3.1142.0` |
| [@aws-sdk/client-lambda](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-lambda) | `3.1141.0` | `3.1142.0` |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1141.0` | `3.1142.0` |
| [@aws-sdk/client-sfn](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sfn) | `3.1141.0` | `3.1142.0` |
| [@aws-sdk/client-sns](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sns) | `3.1141.0` | `3.1142.0` |
| [@aws-sdk/client-sqs](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sqs) | `3.1141.0` | `3.1142.0` |
| [amqplib](https://github.com/amqp-node/amqplib) | `2.1.0` | `2.2.0` |



Updates `@aws-sdk/client-bedrock-runtime` from 3.1141.0 to 3.1142.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-bedrock-runtime/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1142.0/clients/client-bedrock-runtime)

Updates `@aws-sdk/client-dynamodb` from 3.1141.0 to 3.1142.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-dynamodb/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1142.0/clients/client-dynamodb)

Updates `@aws-sdk/client-eventbridge` from 3.1141.0 to 3.1142.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-eventbridge/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1142.0/clients/client-eventbridge)

Updates `@aws-sdk/client-kinesis` from 3.1141.0 to 3.1142.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-kinesis/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1142.0/clients/client-kinesis)

Updates `@aws-sdk/client-lambda` from 3.1141.0 to 3.1142.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-lambda/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1142.0/clients/client-lambda)

Updates `@aws-sdk/client-s3` from 3.1141.0 to 3.1142.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1142.0/clients/client-s3)

Updates `@aws-sdk/client-sfn` from 3.1141.0 to 3.1142.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sfn/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1142.0/clients/client-sfn)

Updates `@aws-sdk/client-sns` from 3.1141.0 to 3.1142.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sns/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1142.0/clients/client-sns)

Updates `@aws-sdk/client-sqs` from 3.1141.0 to 3.1142.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sqs/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1142.0/clients/client-sqs)

Updates `amqplib` from 2.1.0 to 2.2.0
- [Release notes](https://github.com/amqp-node/amqplib/releases)
- [Changelog](https://github.com/amqp-node/amqplib/blob/main/CHANGELOG.md)
- [Commits](amqp-node/amqplib@v2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-bedrock-runtime"
  dependency-version: 3.1142.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-dynamodb"
  dependency-version: 3.1142.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-eventbridge"
  dependency-version: 3.1142.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-kinesis"
  dependency-version: 3.1142.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-lambda"
  dependency-version: 3.1142.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.1142.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-sfn"
  dependency-version: 3.1142.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-sns"
  dependency-version: 3.1142.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-sqs"
  dependency-version: 3.1142.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: amqplib
  dependency-version: 2.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@dd-octo-sts dd-octo-sts Bot mentioned this pull request Oct 2, 2026
@dd-octo-sts

dd-octo-sts Bot commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor Author

Overall package size

Self size: 9.44 MB
Deduped: 10.2 MB
No deduping: 10.2 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.5.1 | 127.66 kB | 531.94 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | dc-polyfill | 0.1.11 | 25.74 kB | 25.74 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

@datadog-datadog-prod-us1-2

datadog-datadog-prod-us1-2 Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Tests

✅ All CI checks and tests passed. Datadog automation helped this PR pass.

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

🔄 Datadog retried 3 tests - 3 passed on retry View in Datadog

🎯 Code Coverage (details)
• Patch Coverage: 99.40%
• Overall Coverage: 98.27% (+0.03%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 306e37f | Docs | View more details | Give us feedback!

@pr-commenter

pr-commenter Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2026-10-06 18:45:55

Comparing candidate commit 306e37f in PR branch v6.20.0-proposal with baseline commit ee31dc7 in branch v6.x.

📊 Benchmarking dashboard

Found 29 performance improvements and 14 performance regressions! Performance is the same for 2284 metrics, 76 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

scenario:llmobs-encode-unicode-ascii-24

  • 🟩 cpu_user_time [-136.876ms; -28.281ms] or [-11.967%; -2.473%]

scenario:llmobs-evaluations-categorical-20

  • 🟩 cpu_user_time [-240.676ms; -97.212ms] or [-9.366%; -3.783%]
  • 🟩 execution_time [-240.848ms; -96.552ms] or [-9.310%; -3.732%]
  • 🟩 throughput [+2157.436op/s; +5590.116op/s] or [+3.459%; +8.962%]

scenario:llmobs-evaluations-categorical-24

  • 🟩 instructions [-2.3G instructions; -1.0G instructions] or [-13.593%; -5.699%]

scenario:llmobs-evaluations-reasoned-mixed-20

  • 🟩 cpu_user_time [-181.223ms; -75.147ms] or [-7.587%; -3.146%]
  • 🟩 execution_time [-185.689ms; -77.032ms] or [-7.705%; -3.196%]
  • 🟩 instructions [-1396.2M instructions; -581.1M instructions] or [-6.850%; -2.851%]
  • 🟩 throughput [+401.491op/s; +968.858op/s] or [+3.207%; +7.740%]

scenario:llmobs-evaluations-reasoned-mixed-24

  • 🟥 max_rss_usage [+2.285MB; +5.555MB] or [+3.137%; +7.626%]
  • 🟩 cpu_user_time [-219.205ms; -91.013ms] or [-9.868%; -4.097%]
  • 🟩 execution_time [-212.879ms; -87.138ms] or [-9.479%; -3.880%]
  • 🟩 instructions [-1.5G instructions; -0.6G instructions] or [-7.887%; -3.077%]
  • 🟩 throughput [+522.876op/s; +1285.577op/s] or [+3.884%; +9.549%]

scenario:llmobs-evaluations-reasoned-mixed-26

  • 🟥 max_rss_usage [+2.389MB; +5.712MB] or [+3.258%; +7.791%]
  • 🟩 cpu_user_time [-219.309ms; -91.365ms] or [-11.113%; -4.630%]
  • 🟩 execution_time [-222.289ms; -91.397ms] or [-11.064%; -4.549%]
  • 🟩 instructions [-2.0G instructions; -0.8G instructions] or [-11.126%; -4.755%]
  • 🟩 throughput [+688.262op/s; +1679.083op/s] or [+4.563%; +11.133%]

scenario:llmobs-evaluations-score-20

  • 🟩 cpu_user_time [-241.052ms; -98.932ms] or [-9.991%; -4.100%]
  • 🟩 execution_time [-244.372ms; -99.981ms] or [-10.046%; -4.110%]
  • 🟩 throughput [+2561.760op/s; +6269.189op/s] or [+4.121%; +10.086%]

scenario:llmobs-evaluations-score-24

  • 🟩 instructions [-2.2G instructions; -0.9G instructions] or [-13.712%; -5.378%]

scenario:openfeature-scale-full-20

  • 🟥 max_rss_usage [+3.331MB; +17.653MB] or [+2.267%; +12.014%]

scenario:openfeature-stress-full-20

  • 🟥 cpu_user_time [+218.073ms; +1060.092ms] or [+2.452%; +11.918%]
  • 🟥 execution_time [+225.458ms; +1085.743ms] or [+2.290%; +11.030%]
  • 🟥 throughput [-6.787op/s; -1.412op/s] or [-11.060%; -2.300%]

scenario:openfeature-stress-full-24

  • 🟥 cpu_user_time [+210.319ms; +1032.896ms] or [+2.447%; +12.018%]
  • 🟥 execution_time [+216.634ms; +1043.436ms] or [+2.266%; +10.912%]
  • 🟥 max_rss_usage [+7.703MB; +37.539MB] or [+2.477%; +12.070%]
  • 🟥 throughput [-6.874op/s; -1.429op/s] or [-10.874%; -2.260%]

scenario:openfeature-stress-full-26

  • 🟥 cpu_user_time [+205.783ms; +1003.651ms] or [+2.399%; +11.698%]
  • 🟥 execution_time [+208.874ms; +1028.348ms] or [+2.394%; +11.789%]
  • 🟥 throughput [-8.043op/s; -1.640op/s] or [-11.585%; -2.362%]

scenario:openfeature-typical-full-20

  • 🟥 instructions [+0.9G instructions; +4.5G instructions] or [+2.417%; +11.550%]

scenario:propagation-inject-replacements-20

  • 🟩 cpu_user_time [-1408.639ms; -285.421ms] or [-11.610%; -2.352%]
  • 🟩 execution_time [-1413.429ms; -285.534ms] or [-11.634%; -2.350%]
  • 🟩 instructions [-11.5G instructions; -2.4G instructions] or [-11.407%; -2.387%]
  • 🟩 throughput [+2897.318op/s; +14480.808op/s] or [+2.333%; +11.661%]

scenario:propagation-inject-replacements-24

  • 🟩 cpu_user_time [-1244.850ms; -256.965ms] or [-10.794%; -2.228%]
  • 🟩 execution_time [-1248.447ms; -257.072ms] or [-10.805%; -2.225%]
  • 🟩 instructions [-10.7G instructions; -2.2G instructions] or [-10.936%; -2.292%]
  • 🟩 throughput [+2896.492op/s; +14116.446op/s] or [+2.219%; +10.816%]

Unstable benchmarks

These benchmarks have a confidence interval too wide to call a change; treat them as noise rather than signal.

scenario:appsec-iast-with-vulnerability-iast-enabled-default-config-20

  • unstable max_rss_usage [-33.467MB; +29.823MB] or [-9.716%; +8.658%]

scenario:appsec-iast-with-vulnerability-iast-enabled-default-config-24

  • unstable max_rss_usage [-17.580MB; +21.205MB] or [-4.802%; +5.793%]

scenario:debugger-line-probe-with-snapshot-minimal-26

  • unstable cpu_user_time [-423.869ms; +500.738ms] or [-4.805%; +5.677%]

scenario:debugger-line-probe-without-snapshot-24

  • unstable cpu_user_time [-955.006ms; +164.355ms] or [-11.079%; +1.907%]
  • unstable execution_time [-959.202ms; +182.943ms] or [-9.818%; +1.873%]
  • unstable throughput [-21.714op/s; +106.564op/s] or [-1.862%; +9.136%]

scenario:debugger-line-probe-without-snapshot-26

  • unstable cpu_user_time [-1123.348ms; +1645.056ms] or [-13.011%; +19.053%]
  • unstable execution_time [-1141.079ms; +1691.731ms] or [-11.684%; +17.322%]
  • unstable throughput [-173.684op/s; +115.700op/s] or [-14.856%; +9.897%]

scenario:encoders-0.4-immediate-flush-20

  • unstable max_rss_usage [-12.410MB; +7.825MB] or [-14.651%; +9.238%]

scenario:llmobs-encode-unicode-ascii-24

  • unstable execution_time [-145.799ms; -29.848ms] or [-12.586%; -2.577%]
  • unstable throughput [+546.344op/s; +2659.373op/s] or [+2.604%; +12.676%]

scenario:llmobs-encode-unicode-ascii-26

  • unstable cpu_user_time [-185.970ms; -38.462ms] or [-20.672%; -4.275%]
  • unstable execution_time [-190.641ms; -39.563ms] or [-20.636%; -4.282%]
  • unstable instructions [-1593.5M instructions; -334.0M instructions] or [-22.278%; -4.670%]
  • unstable throughput [+1134.005op/s; +5498.731op/s] or [+4.262%; +20.665%]

scenario:llmobs-encode-unicode-mixed-20

  • unstable cpu_user_time [-1.822s; -0.380s] or [-16.472%; -3.435%]
  • unstable execution_time [-1.824s; -0.380s] or [-16.429%; -3.426%]
  • unstable instructions [-17.1G instructions; -3.6G instructions] or [-17.853%; -3.744%]
  • unstable throughput [+74.777op/s; +359.493op/s] or [+3.422%; +16.451%]

scenario:llmobs-encode-unicode-mixed-24

  • unstable cpu_user_time [-2.054s; -0.428s] or [-19.458%; -4.051%]
  • unstable execution_time [-2.062s; -0.429s] or [-19.461%; -4.048%]
  • unstable instructions [-18.3G instructions; -4.3G instructions] or [-19.388%; -4.510%]
  • unstable throughput [+92.948op/s; +447.882op/s] or [+4.042%; +19.479%]

scenario:llmobs-encode-unicode-mixed-26

  • unstable cpu_user_time [-1.741s; -0.364s] or [-18.278%; -3.826%]
  • unstable execution_time [-1.747s; -0.365s] or [-18.207%; -3.805%]
  • unstable instructions [-17.5G instructions; -3.7G instructions] or [-19.667%; -4.123%]
  • unstable throughput [+96.473op/s; +461.782op/s] or [+3.806%; +18.216%]

scenario:llmobs-evaluations-categorical-24

  • unstable cpu_user_time [-385.020ms; -161.400ms] or [-22.110%; -9.269%]
  • unstable execution_time [-386.588ms; -158.225ms] or [-21.932%; -8.976%]
  • unstable throughput [+8387.152op/s; +20664.948op/s] or [+8.978%; +22.120%]

scenario:llmobs-evaluations-categorical-26

  • unstable cpu_user_time [-421.465ms; -176.647ms] or [-27.253%; -11.422%]
  • unstable execution_time [-451.307ms; -181.984ms] or [-28.433%; -11.465%]
  • unstable instructions [-3.4G instructions; -1.3G instructions] or [-24.752%; -9.704%]
  • unstable throughput [+12271.048op/s; +29679.284op/s] or [+11.617%; +28.097%]

scenario:llmobs-evaluations-score-24

  • unstable cpu_user_time [-378.002ms; -158.445ms] or [-22.746%; -9.534%]
  • unstable execution_time [-378.798ms; -158.627ms] or [-22.612%; -9.469%]
  • unstable throughput [+8765.070op/s; +20961.935op/s] or [+9.497%; +22.711%]

scenario:llmobs-evaluations-score-26

  • unstable cpu_user_time [-405.783ms; -169.836ms] or [-27.743%; -11.611%]
  • unstable execution_time [-408.166ms; -170.851ms] or [-27.576%; -11.543%]
  • unstable instructions [-3.3G instructions; -1.4G instructions] or [-25.401%; -10.656%]
  • unstable throughput [+12255.282op/s; +29349.041op/s] or [+11.572%; +27.713%]

scenario:openfeature-scale-full-20

  • unstable cpu_user_time [+142.896ms; +965.516ms] or [+1.756%; +11.863%]

scenario:openfeature-scale-full-24

  • unstable cpu_user_time [+0.951s; +4.541s] or [+11.976%; +57.207%]
  • unstable execution_time [+0.956s; +4.563s] or [+11.808%; +56.384%]
  • unstable instructions [+3.1G instructions; +15.0G instructions] or [+5.707%; +27.338%]
  • unstable max_rss_usage [-54.718MB; -11.267MB] or [-18.699%; -3.850%]
  • unstable throughput [-2067.195op/s; -433.105op/s] or [-56.587%; -11.856%]

scenario:openfeature-scale-full-26

  • unstable cpu_user_time [+0.874s; +4.171s] or [+11.417%; +54.508%]
  • unstable execution_time [+0.884s; +4.220s] or [+11.338%; +54.110%]
  • unstable instructions [+3.1G instructions; +14.9G instructions] or [+5.693%; +27.191%]
  • unstable throughput [-2036.439op/s; -426.655op/s] or [-54.282%; -11.373%]

scenario:openfeature-stress-full-20

  • unstable max_rss_usage [+5.096MB; +24.445MB] or [+3.257%; +15.625%]

scenario:openfeature-stress-full-26

  • unstable max_rss_usage [+6.248MB; +30.093MB] or [+2.805%; +13.509%]

scenario:openfeature-typical-20

  • unstable max_rss_usage [+3.918MB; +18.872MB] or [+3.039%; +14.639%]

scenario:openfeature-typical-24

  • unstable cpu_user_time [+259.256ms; +1522.773ms] or [+2.647%; +15.546%]
  • unstable execution_time [+278.484ms; +1609.745ms] or [+2.795%; +16.157%]
  • unstable throughput [-8987.394op/s; -1612.758op/s] or [-16.081%; -2.886%]

scenario:openfeature-typical-26

  • unstable max_rss_usage [+5.004MB; +24.241MB] or [+2.786%; +13.496%]

scenario:openfeature-typical-full-20

  • unstable cpu_user_time [+267.895ms; +1599.527ms] or [+3.041%; +18.157%]
  • unstable execution_time [+0.335s; +1.846s] or [+3.588%; +19.791%]
  • unstable max_rss_usage [-0.146MB; +23.455MB] or [-0.108%; +17.381%]
  • unstable throughput [-5288.820op/s; -981.788op/s] or [-19.801%; -3.676%]

scenario:openfeature-typical-full-24

  • unstable cpu_user_time [+0.525s; +2.565s] or [+5.790%; +28.278%]
  • unstable execution_time [+0.615s; +2.990s] or [+6.523%; +31.709%]
  • unstable instructions [+1.6G instructions; +7.6G instructions] or [+3.697%; +17.787%]
  • unstable throughput [-15856.431op/s; -3219.785op/s] or [-31.888%; -6.475%]

scenario:openfeature-typical-full-26

  • unstable cpu_user_time [+0.440s; +2.240s] or [+4.818%; +24.550%]
  • unstable execution_time [+0.535s; +2.666s] or [+5.653%; +28.174%]
  • unstable instructions [+1.4G instructions; +6.7G instructions] or [+3.120%; +15.153%]
  • unstable max_rss_usage [+5.560MB; +26.937MB] or [+3.063%; +14.838%]
  • unstable throughput [-13787.057op/s; -2820.088op/s] or [-28.076%; -5.743%]

scenario:propagation-inject-replacements-26

  • unstable cpu_user_time [-1359.090ms; -280.617ms] or [-12.670%; -2.616%]
  • unstable execution_time [-1364.574ms; -279.358ms] or [-12.609%; -2.581%]
  • unstable instructions [-12.5G instructions; -2.6G instructions] or [-13.007%; -2.722%]
  • unstable throughput [+3596.946op/s; +17624.468op/s] or [+2.577%; +12.627%]

@codecov

codecov Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 99.95224% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 98.86%. Comparing base (ee31dc7) to head (306e37f).
⚠️ Report is 39 commits behind head on v6.x.

Files with missing lines Patch % Lines
.../src/openfeature/writers/flag-evaluation-worker.js 97.40% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             v6.x   #10603      +/-   ##
==========================================
+ Coverage   98.84%   98.86%   +0.01%     
==========================================
  Files        1045     1058      +13     
  Lines      168309   171887    +3578     
  Branches       74       74              
==========================================
+ Hits       166365   169936    +3571     
- Misses       1944     1951       +7     
Flag Coverage Δ
ai-guard 63.75% <44.69%> (-0.40%) ⬇️
apm-capabilities 54.72% <50.23%> (-0.07%) ⬇️
apm-integrations 80.98% <61.23%> (-0.26%) ⬇️
appsec 57.88% <59.51%> (+0.03%) ⬆️
debugger 69.87% <67.76%> (-0.03%) ⬇️
instrumentation 55.36% <57.23%> (+0.04%) ⬆️
llmobs 80.70% <92.70%> (+0.27%) ⬆️
openfeature 67.33% <77.54%> (+1.28%) ⬆️
platform 68.54% <56.55%> (-0.19%) ⬇️
profiling 65.98% <44.42%> (-0.44%) ⬇️
serverless 65.59% <57.01%> (-0.12%) ⬇️
test-optimization 81.85% <65.01%> (-0.25%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@vjfridge

vjfridge commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

LGTM for Feature Flags! #10464 and #10545 look correct in the release notes. We validated #10464’s final commit against master using system-tests and ffe-dogfooding, with no observed regression in regular evaluations and passing EVP/privacy checks.

Leaving overall release approval to the JS team 🙇‍♀️

mehulsonowal and others added 6 commits October 5, 2026 05:23
* fix(openai): keep LLMObs tracing after an aborted stream

An aborted OpenAI stream ends quietly with `done: true`, so no final
response is ever received. The Responses stream helper then returned
`undefined`, the LLMObs plugin threw while tagging it, and the plugin
was disabled for the rest of the process.

Rebuild a partial response from the streamed text and tool-call deltas,
as the chat stream helper does, and treat a missing response like an
errored request in the LLMObs plugin.

* test(openai): cover early-ending Responses streams through the plugin

Replace the stream helper unit tests and the chat completion abort test
with Responses API tests that replay hand-authored streams ending before
`response.completed`, so the partial rebuild is verified on the
submitted LLMObs span: no output, partial text, and a completed item
followed by a streamed tool call.

* test(openai): record early-ending Responses cassettes through the testagent

Replace the hand-authored cassettes with real recordings truncated before
`response.completed`. The testagent buffers the full upstream response while
recording, so an early-ending stream cannot be recorded directly.
Bumps the test-versions group with 1 update in the /integration-tests/esbuild directory: [openai](https://github.com/openai/openai-node).


Updates `openai` from 7.23.0 to 7.27.0
- [Release notes](https://github.com/openai/openai-node/releases)
- [Changelog](https://github.com/openai/openai-node/blob/main/CHANGELOG.md)
- [Commits](openai/openai-node@v7.23.0...v7.27.0)

---
updated-dependencies:
- dependency-name: openai
  dependency-version: 7.27.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…th 12 updates (#10620)

Bumps the cloud-and-messaging group with 12 updates in the /packages/dd-trace/test/plugins/versions directory:

| Package | From | To |
| --- | --- | --- |
| [@aws-sdk/client-bedrock-runtime](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-bedrock-runtime) | `3.1142.0` | `3.1145.0` |
| [@aws-sdk/client-dynamodb](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-dynamodb) | `3.1142.0` | `3.1145.0` |
| [@aws-sdk/client-eventbridge](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-eventbridge) | `3.1142.0` | `3.1145.0` |
| [@aws-sdk/client-kinesis](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-kinesis) | `3.1142.0` | `3.1145.0` |
| [@aws-sdk/client-lambda](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-lambda) | `3.1142.0` | `3.1145.0` |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1142.0` | `3.1145.0` |
| [@aws-sdk/client-sfn](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sfn) | `3.1142.0` | `3.1145.0` |
| [@aws-sdk/client-sns](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sns) | `3.1142.0` | `3.1145.0` |
| [@aws-sdk/client-sqs](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sqs) | `3.1142.0` | `3.1145.0` |
| [@smithy/core](https://github.com/smithy-lang/smithy-typescript/tree/HEAD/packages/core) | `3.35.0` | `3.35.1` |
| [azure-functions-core-tools](https://github.com/Azure/azure-functions-core-tools) | `4.15.1` | `4.15.2` |
| [bullmq](https://github.com/taskforcesh/bullmq) | `6.3.9` | `6.3.11` |



Updates `@aws-sdk/client-bedrock-runtime` from 3.1142.0 to 3.1145.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-bedrock-runtime/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1145.0/clients/client-bedrock-runtime)

Updates `@aws-sdk/client-dynamodb` from 3.1142.0 to 3.1145.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-dynamodb/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1145.0/clients/client-dynamodb)

Updates `@aws-sdk/client-eventbridge` from 3.1142.0 to 3.1145.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-eventbridge/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1145.0/clients/client-eventbridge)

Updates `@aws-sdk/client-kinesis` from 3.1142.0 to 3.1145.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-kinesis/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1145.0/clients/client-kinesis)

Updates `@aws-sdk/client-lambda` from 3.1142.0 to 3.1145.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-lambda/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1145.0/clients/client-lambda)

Updates `@aws-sdk/client-s3` from 3.1142.0 to 3.1145.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1145.0/clients/client-s3)

Updates `@aws-sdk/client-sfn` from 3.1142.0 to 3.1145.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sfn/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1145.0/clients/client-sfn)

Updates `@aws-sdk/client-sns` from 3.1142.0 to 3.1145.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sns/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1145.0/clients/client-sns)

Updates `@aws-sdk/client-sqs` from 3.1142.0 to 3.1145.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sqs/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1145.0/clients/client-sqs)

Updates `@smithy/core` from 3.35.0 to 3.35.1
- [Release notes](https://github.com/smithy-lang/smithy-typescript/releases)
- [Changelog](https://github.com/smithy-lang/smithy-typescript/blob/main/packages/core/CHANGELOG.md)
- [Commits](https://github.com/smithy-lang/smithy-typescript/commits/@smithy/core@3.35.1/packages/core)

Updates `azure-functions-core-tools` from 4.15.1 to 4.15.2
- [Release notes](https://github.com/Azure/azure-functions-core-tools/releases)
- [Changelog](https://github.com/Azure/azure-functions-core-tools/blob/main/release_notes.md)
- [Commits](Azure/azure-functions-core-tools@4.15.1...4.15.2)

Updates `bullmq` from 6.3.9 to 6.3.11
- [Release notes](https://github.com/taskforcesh/bullmq/releases)
- [Commits](taskforcesh/bullmq@v6.3.9...v6.3.11)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-bedrock-runtime"
  dependency-version: 3.1145.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-dynamodb"
  dependency-version: 3.1145.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-eventbridge"
  dependency-version: 3.1145.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-kinesis"
  dependency-version: 3.1145.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-lambda"
  dependency-version: 3.1145.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.1145.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-sfn"
  dependency-version: 3.1145.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-sns"
  dependency-version: 3.1145.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-sqs"
  dependency-version: 3.1145.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@smithy/core"
  dependency-version: 3.35.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cloud-and-messaging
- dependency-name: azure-functions-core-tools
  dependency-version: 4.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cloud-and-messaging
- dependency-name: bullmq
  dependency-version: 6.3.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cloud-and-messaging
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
… 5 updates (#10621)

Bumps the testing-and-build group with 5 updates in the /packages/dd-trace/test/plugins/versions directory:

| Package | From | To |
| --- | --- | --- |
| [cypress](https://github.com/cypress-io/cypress) | `16.1.0` | `16.1.1` |
| [electron](https://github.com/electron/electron) | `44.4.5` | `44.5.1` |
| [mocha](https://github.com/mochajs/mocha) | `12.0.2` | `12.0.3` |
| [next](https://github.com/vercel/next.js) | `16.3.6` | `16.3.8` |
| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.49.0` | `4.50.0` |



Updates `cypress` from 16.1.0 to 16.1.1
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](cypress-io/cypress@v16.1.0...v16.1.1)

Updates `electron` from 44.4.5 to 44.5.1
- [Release notes](https://github.com/electron/electron/releases)
- [Commits](electron/electron@v44.4.5...v44.5.1)

Updates `mocha` from 12.0.2 to 12.0.3
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/main/CHANGELOG.md)
- [Commits](mochajs/mocha@v12.0.2...v12.0.3)

Updates `next` from 16.3.6 to 16.3.8
- [Release notes](https://github.com/vercel/next.js/releases)
- [Commits](vercel/next.js@v16.3.6...v16.3.8)

Updates `selenium-webdriver` from 4.49.0 to 4.50.0
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Commits](SeleniumHQ/selenium@selenium-4.49.0...selenium-4.50.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-version: 16.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: testing-and-build
- dependency-name: electron
  dependency-version: 44.5.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: testing-and-build
- dependency-name: mocha
  dependency-version: 12.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: testing-and-build
- dependency-name: next
  dependency-version: 16.3.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: testing-and-build
- dependency-name: selenium-webdriver
  dependency-version: 4.50.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: testing-and-build
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@dd-octo-sts
dd-octo-sts Bot force-pushed the v6.20.0-proposal branch from 30f7ba5 to 3e9ed42 Compare October 5, 2026 05:23
watson and others added 9 commits October 6, 2026 05:06
* feat(debugger): add an evaluation time budget

Probe conditions, log message templates and capture expressions run
user-provided expressions on the application thread, and nothing
bounded how long they could take. A condition with a catastrophically
backtracking regular expression or a filter over a large collection
stalled the application on every hit.

Add `DD_DYNAMIC_INSTRUMENTATION_EVALUATION_TIMEOUT_MS` (default 10 ms,
the canonical default from the Live Debugger Circuit-Breakers RFC). V8
can't interrupt an evaluation, so the budget is enforced the way the RFC
allows for runtimes without early abort: the elapsed wall-time is
measured and an overrun is treated as guardrail input.

- Conditions are timed inside the breakpoint condition on the main
  thread. An overrun is reported like a condition error (one error
  result per probe per throttle window, no capture) regardless of the
  condition's result, and the probe is skipped at entry for the rest of
  the window. Skipped hits are counted as
  `events.skipped{reason:evaluationTimeout}`.
- Templates and capture expressions are timed around their evaluation
  on the paused frame in the worker. The result is still reported, with
  an `evaluationErrors` entry describing the overrun, and the probe is
  throttled the same way afterwards.

* fix(debugger): align evaluation timeout default

* fix(debugger): throttle timed-out probes after resume

* fix(debugger): distinguish evaluation and capture timeouts

* fix(debugger): report conditions that exceed the budget and throw as timeouts

The compiled condition passed its start time as an argument to
`conditionEvaluated`, so a condition that ran over budget and then threw
reached `conditionError` without it. The overrun was reported as the
thrown error, and the hits skipped afterwards were not counted as
`events.skipped{reason:evaluationTimeout}`.

Record the start time in `shouldEvaluateCondition` instead, so both
outcomes measure from the same point and an overrun takes precedence
over a thrown error, as it already does over the condition's result.
One start time is enough because V8 doesn't evaluate breakpoint
conditions re-entrantly, and keeping it in the sampler avoids adding a
binding that could shadow a variable of the paused frame. This also
removes `now()` from the sampler.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: gh-worker-campaigns-3e9aa4[bot] <244854796+gh-worker-campaigns-3e9aa4[bot]@users.noreply.github.com>
…tManager.bind() (#10544)

The OpenTelemetry ContextManager contract only wraps functions; other
targets must be returned as-is. The bridge wrapped everything, so
@opentelemetry/instrumentation-pg's Pool.connect() received a function
instead of a promise and leaked the acquired pg client.
Worker telemetry omits printf arguments, which prevents failure classification.
Include error names, codes, reasons, and unexpected exit codes in telemetry
messages, with exception messages kept in the redacted cause.

Send probe rejection reasons separately because structured cloning drops custom
Error properties.

Refs: https://datadoghq.atlassian.net/browse/DEBUG-6005
* fix(debugger): drop probe results that stay over the size cap

Trimming an oversized payload is best-effort. `pruneSnapshot()` only
replaces leaf nodes at level 6 or deeper, gives up after six attempts,
and its final check verifies only that the payload shrank, not that it
fits. The fallback that drops the captures is bounded in the same way. A
payload whose bytes sit elsewhere - a very deep stack, or a large set of
evaluation errors - therefore still reached `jsonBuffer.write()` over the
1 MiB cap.

Sending it anyway gains nothing. The intake truncates the log message to
90 characters, then removes the whole snapshot to make the event fit, and
drops the event if that still isn't enough. In other words it destroys
the user's log message before it touches the oversized snapshot, and may
lose the event regardless, with no signal back to us.

Re-check the size after trimming and drop the event instead, reporting
`events.dropped{payloadTooLarge}`. This matches .NET, which also drops
only once slicing can't get the payload under the cap.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs(debugger): drop the PAYLOAD_TOO_LARGE spec-parity comment

The comment existed to explain that the reason code was declared for
parity with the other tracers but never emitted. It now has a producer,
and `DROPPED_REASON_NAMES` and the RFC cover the rest.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* test(debugger): omit inferred payload helper return type

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix ai sdk for new version

* fix claude agent sdk tests with new cassettes
…ure expressions (#10612)

* fix(debugger): redact sensitive log template expressions

Log probe templates evaluate dynamic expressions separately from snapshot
capture. Those expressions could still include values whose identifiers match
the debugger redaction list, even though the same identifiers would be
redacted from snapshots.

Share the redaction predicate used by snapshot processing and apply it while
compiling dynamic template segments. A segment that reads a redacted
identifier, either as a root reference or as a member/index key, is never
evaluated. It renders as `{redacted}` in the log message and is reported as an
evaluation error, matching the Java and Python tracers.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(debugger): redact sensitive keys in log template values

A log template segment that evaluates to an object or Map, such as `{user}`,
was rendered with all of its rendered properties and entries, even when their
keys match the debugger redaction list. Snapshots redact those values.

Replace the values of redacted properties and Map entries with `{redacted}`
when rendering template values. Values are rendered in the main thread, while
the redaction list was only available to the devtools client worker, so move
the default list into a module both threads use, and build the predicate from
the same `dynamicInstrumentation` configuration on each side.

Objects and Maps without a rendered redacted key are still rendered as is.
Otherwise a copy is rendered, which keeps the prototype of plain objects and
class instances, but not the special formatting of functions, errors, or Map
subclasses.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(debugger): redact capture expressions reading sensitive identifiers

Capture expressions are compiled with the same expression compiler as log
templates, and had the same gap: an expression like `user.password` captured
the plaintext value, as snapshot redaction only applies to the properties of
a captured value, not to the value itself.

Don't evaluate capture expressions that read a redacted identifier. Report
them as evaluation errors instead, the same way log template segments are
reported, and as the Java tracer does.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(debugger): report redacted capture expressions after a timeout

When an earlier capture expression reached the capture deadline, every
remaining expression was reported as timed out, including redacted ones that
are never evaluated. Report those as redaction errors instead, and only record
a timeout if an evaluated expression was actually skipped.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(debugger): inspect redacted template values as plain objects

A redacted object was inspected through a copy sharing its prototype, so the
constructor name was kept. Built-ins with internal slots can't be inspected
that way: on Node.js 20 and later, a redacted copy of a `URL` throws, so the
segment was reported as an evaluation error instead of rendered. The copies of
other built-ins, like `Date`, kept a misleading type name without the value it
implies.

Inspect a plain object copy instead, the same way objects are already copied
when truncated, and share the copying between both cases.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
rochdev and others added 3 commits October 6, 2026 18:32
Postgres.js is a pure Orchestrion integration, so activate it through the
rewrite protocol instead of RITM/IITM identity hooks, matching
azure-cosmos, bullmq, and supabase. Drop the hooks.js entry and the
identity-hook stub, and enable rewrite activation for the postgres
registry entry.

Rewriter targets and the generated supported-versions output are
unchanged.
@dd-octo-sts
dd-octo-sts Bot force-pushed the v6.20.0-proposal branch from 0caad75 to 306e37f Compare October 6, 2026 18:32
@rochdev
rochdev marked this pull request as ready for review October 6, 2026 21:11
@rochdev
rochdev requested review from a team as code owners October 6, 2026 21:11
@rochdev
rochdev requested review from BridgeAR, hhan2024, leoromanovsky and tlhunter and removed request for a team October 6, 2026 21:11

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 306e37fff8

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +239 to +241
keyValueMap[MANUAL_KEEP] !== undefined ||
keyValueMap[MANUAL_DROP] !== undefined ||
keyValueMap[SAMPLING_PRIORITY] !== undefined

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Preserve undefined manual sampling tags in addTags

manual.keep and manual.drop intentionally treat any value other than false as enabled, including undefined, but these checks now suppress setPriorityFromTags for that valid input. Consequently, span.addTags({ 'manual.keep': undefined }) (including an options-tags object) leaves the trace on its automatic decision and can drop a trace that the caller explicitly requested to keep; previously the own-property check invoked the sampler for this case.

Useful? React with 👍 / 👎.

Comment on lines +93 to +102
module: {
name: 'ai',
versionRange: '>=7.0.0',
filePath: 'dist/index.js',
},
functionQuery: {
functionName: 'generateText',
kind: 'Async',
},
channelName: 'includeRuntimeContext',

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Add ESM rewrites for AI SDK v7 runtime context

These new v7 descriptors only target dist/index.js. Applications importing ai as ESM execute dist/index.mjs—which the existing v4–v6 descriptors explicitly register separately—so their generateText and streamText calls never publish the includeRuntimeContext channel. As a result, v7 ESM users with runtimeContext silently lose those metadata fields from the emitted LLM observability spans.

Useful? React with 👍 / 👎.

Comment on lines +166 to +171
function findRedactedMemberKey (key) {
if (typeof key === 'string') {
return isRedactedIdentifier(key) ? key : undefined
}

return findRedactedIdentifier(key)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Redact dynamically selected sensitive fields

When a log template or capture expression uses a dynamic lookup such as user[key] and key resolves to password or token, this helper only checks whether the variable name key is sensitive. It returns no redaction error, so the compiled expression evaluates the lookup and sends its string result verbatim instead of passing it through inspectSegment; this leaks values covered by the default or configured identifier list. Treat dynamic member/index keys as unsafe or check their resolved key before rendering.

Useful? React with 👍 / 👎.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-06T21:30:58.627384Z 306e37f Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@rochdev
rochdev added this pull request to the merge queue Oct 6, 2026
@dd-octo-sts
dd-octo-sts Bot merged commit 306e37f into v6.x Oct 6, 2026
833 checks passed
@dd-octo-sts
dd-octo-sts Bot deleted the v6.20.0-proposal branch October 6, 2026 22:09
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to it being already merged Oct 6, 2026

This branch was successfully deployed

1 active deployment
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.