Repository navigation
v6.20.0 proposal - #10603
v6.20.0 proposal#10603
Conversation
…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>
Overall package sizeSelf size: 9.44 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 |
|
✅ All CI checks and tests passed. Datadog automation helped this PR pass. 🎉 All green!🧪 All tests passed 🔄 Datadog retried 3 tests - 3 passed on retry 🎯 Code Coverage (details) 🔗 Commit SHA: 306e37f | Docs | View more details | Give us feedback! |
BenchmarksBenchmark execution time: 2026-10-06 18:45:55 Comparing candidate commit 306e37f in PR branch Found 29 performance improvements and 14 performance regressions! Performance is the same for 2284 metrics, 76 unstable metrics.
|
Codecov Report❌ Patch coverage is
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
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
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 🙇♀️ |
* 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>
30f7ba5 to
3e9ed42
Compare
* 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>
…xported through OTLP (#10189)
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>
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.
0caad75 to
306e37f
Compare
There was a problem hiding this comment.
💡 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".
| keyValueMap[MANUAL_KEEP] !== undefined || | ||
| keyValueMap[MANUAL_DROP] !== undefined || | ||
| keyValueMap[SAMPLING_PRIORITY] !== undefined |
There was a problem hiding this comment.
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 👍 / 👎.
| module: { | ||
| name: 'ai', | ||
| versionRange: '>=7.0.0', | ||
| filePath: 'dist/index.js', | ||
| }, | ||
| functionQuery: { | ||
| functionName: 'generateText', | ||
| kind: 'Async', | ||
| }, | ||
| channelName: 'includeRuntimeContext', |
There was a problem hiding this comment.
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 👍 / 👎.
| function findRedactedMemberKey (key) { | ||
| if (typeof key === 'string') { | ||
| return isRedactedIdentifier(key) ? key : undefined | ||
| } | ||
|
|
||
| return findRedactedIdentifier(key) |
There was a problem hiding this comment.
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 👍 / 👎.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Features
Fixes
runtimeContextin newer v7 versions #10629Internal (CI, Testing, Benchmarking)
Contributors