v5.124.0 proposal - #9938
Conversation
* test(debugger): await probe diagnostics Diagnostic listeners completed through callbacks, so asynchronous request failures and assertion errors could escape Mocha's completion path. * test(debugger): preserve callback completion semantics Debugger event streams can emit more than once. Promise settlement would hide a later terminal call that Mocha reports. * test(debugger): collect diagnostics through a quiet period The diagnostics and acknowledgment listeners stay active until both streams have been quiet for two remote-config poll intervals, so a late or duplicate terminal event still fails the test.
* test(debugger): await probe runtime completion Debugger runtime cases coordinated requests, timers, and child startup through callbacks, so failures could escape Mocha's completion path. * test(debugger): keep stream completion callback-based Debugger event streams can emit more than once. Promise settlement would hide a later terminal call that Mocha reports. * test(debugger): keep late debugger events observable The updated-message and re-evaluation tests keep independent collectors active after their expected events, so a late or duplicate payload fails the exact-cardinality assertion.
LocalStack can take longer than the test agent's one-second default to process the first EventBridge request. Give both producer-path assertions a service-local timeout so a cold request does not lose its trace expectation.
* test(mongodb): await DBM propagation operations DBM propagation traces finish from the driver callback, but these tests discarded that callback and failed after the agent's 1s deadline when the operation ran slowly. Await the operation alongside the trace so backend errors surface, and give trace delivery the same 2s allowance already used by MongoDB tests. Refs: https://github.com/DataDog/dd-trace-js/actions/runs/31803050571/job/94775323451?pr=9633 * test(mongodb): await remaining traced operations MongoDB query spans finish from driver callbacks or returned promises, but the remaining trace assertions discarded that operation completion. Await both boundaries so slow operations receive the suite's existing two-second allowance and unexpected backend errors fail their owning test. Keep command completion and BSON fixtures aligned with the driver versions whose results are now observed. This is test-only; production code is unchanged. * test(mongodb): type command completion helper arguments * test(mongodb): stop matching server error messages MongoDB changes command-rejection messages and codes between server versions while trace behavior stays the same. Matching server-owned prose made these tests fail before they could validate tracing.
* test: make skipped test intent explicit Version- and platform-gated cases were absent from suite reports, while fixture skips must remain observable as pending. * test(mocha): make conditional skips explicit * test(openai): register version-gated tests correctly OpenAI's resolved version is unavailable only from beforeEach, after Mocha has registered version-gated tests. The removed edits API therefore ran in v4+ fixtures. * test(openai): gate all streamed response cases OpenAI 3.3 registered three chat streaming cases because they bypassed the suite's version-aware test function, so the tests called an API only available after 4.1.0.
* test(integration): make suite completion explicit Several integration cases either omitted unsupported matrix entries or completed through detached callbacks, leaving suite reports and failures incomplete. * test: preserve asynchronous completion contracts Retry and exposure fixtures need Mocha to report later terminal calls. Single-shot server setup uses the lifecycle signal exposed by the server instead. * test: preserve callback test semantics
* test(undici): await request completion Undici request cases either omitted unsupported versions or completed through detached promise chains, leaving suite reports and failures incomplete. * test(undici): await independent completion signals Requests and trace assertions complete independently, so both handlers must be attached before either result is awaited.
Bumps the databases group with 1 update in the /packages/dd-trace/test/plugins/versions directory: [mongoose](https://github.com/Automattic/mongoose). Updates `mongoose` from 9.9.2 to 9.9.3 - [Release notes](https://github.com/Automattic/mongoose/releases) - [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md) - [Commits](Automattic/mongoose@9.9.2...9.9.3) --- updated-dependencies: - dependency-name: mongoose dependency-version: 9.9.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: databases ... 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>
…th 9 updates (#9914) Bumps the cloud-and-messaging group with 9 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.1111.0` | `3.1112.0` | | [@aws-sdk/client-dynamodb](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-dynamodb) | `3.1111.0` | `3.1112.0` | | [@aws-sdk/client-eventbridge](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-eventbridge) | `3.1111.0` | `3.1112.0` | | [@aws-sdk/client-kinesis](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-kinesis) | `3.1111.0` | `3.1112.0` | | [@aws-sdk/client-lambda](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-lambda) | `3.1111.0` | `3.1112.0` | | [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1111.0` | `3.1112.0` | | [@aws-sdk/client-sfn](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sfn) | `3.1111.0` | `3.1112.0` | | [@aws-sdk/client-sns](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sns) | `3.1111.0` | `3.1112.0` | | [@aws-sdk/client-sqs](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sqs) | `3.1111.0` | `3.1112.0` | Updates `@aws-sdk/client-bedrock-runtime` from 3.1111.0 to 3.1112.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.1112.0/clients/client-bedrock-runtime) Updates `@aws-sdk/client-dynamodb` from 3.1111.0 to 3.1112.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.1112.0/clients/client-dynamodb) Updates `@aws-sdk/client-eventbridge` from 3.1111.0 to 3.1112.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.1112.0/clients/client-eventbridge) Updates `@aws-sdk/client-kinesis` from 3.1111.0 to 3.1112.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.1112.0/clients/client-kinesis) Updates `@aws-sdk/client-lambda` from 3.1111.0 to 3.1112.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.1112.0/clients/client-lambda) Updates `@aws-sdk/client-s3` from 3.1111.0 to 3.1112.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.1112.0/clients/client-s3) Updates `@aws-sdk/client-sfn` from 3.1111.0 to 3.1112.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.1112.0/clients/client-sfn) Updates `@aws-sdk/client-sns` from 3.1111.0 to 3.1112.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.1112.0/clients/client-sns) Updates `@aws-sdk/client-sqs` from 3.1111.0 to 3.1112.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.1112.0/clients/client-sqs) --- updated-dependencies: - dependency-name: "@aws-sdk/client-bedrock-runtime" dependency-version: 3.1112.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.1112.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.1112.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.1112.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.1112.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.1112.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.1112.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.1112.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.1112.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> Co-authored-by: Ruben Bridgewater <ruben@bridgewater.de>
…pdates (#9913) Bumps the test-versions group with 5 updates in the /packages/dd-trace/test/plugins/versions directory: | Package | From | To | | --- | --- | --- | | [@anthropic-ai/claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-typescript) | `0.3.233` | `0.3.234` | | [@aws/durable-execution-sdk-js](https://github.com/aws/aws-durable-execution-sdk-js/tree/HEAD/packages/aws-durable-execution-sdk-js) | `2.2.0` | `2.3.0` | | [google-gax](https://github.com/googleapis/google-cloud-node/tree/HEAD/core/packages/gax) | `6.0.0` | `6.0.2` | | [pnpm](https://github.com/pnpm/pnpm/tree/HEAD/pnpm11/pnpm) | `11.21.0` | `11.22.0` | | [stripe](https://github.com/stripe/stripe-node) | `22.4.0` | `22.5.0` | Updates `@anthropic-ai/claude-agent-sdk` from 0.3.233 to 0.3.234 - [Release notes](https://github.com/anthropics/claude-agent-sdk-typescript/releases) - [Changelog](https://github.com/anthropics/claude-agent-sdk-typescript/blob/main/CHANGELOG.md) - [Commits](anthropics/claude-agent-sdk-typescript@v0.3.233...v0.3.234) Updates `@aws/durable-execution-sdk-js` from 2.2.0 to 2.3.0 - [Release notes](https://github.com/aws/aws-durable-execution-sdk-js/releases) - [Changelog](https://github.com/aws/aws-durable-execution-sdk-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/aws/aws-durable-execution-sdk-js/commits/sdk-2.3.0/packages/aws-durable-execution-sdk-js) Updates `google-gax` from 6.0.0 to 6.0.2 - [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.0.2/core/packages/gax) Updates `pnpm` from 11.21.0 to 11.22.0 - [Release notes](https://github.com/pnpm/pnpm/releases) - [Commits](https://github.com/pnpm/pnpm/commits/v11.22.0/pnpm11/pnpm) Updates `stripe` from 22.4.0 to 22.5.0 - [Release notes](https://github.com/stripe/stripe-node/releases) - [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md) - [Commits](stripe/stripe-node@v22.4.0...v22.5.0) --- updated-dependencies: - dependency-name: "@anthropic-ai/claude-agent-sdk" dependency-version: 0.3.234 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: test-versions - dependency-name: "@aws/durable-execution-sdk-js" dependency-version: 2.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: test-versions - dependency-name: google-gax dependency-version: 6.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: test-versions - dependency-name: pnpm dependency-version: 11.22.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: test-versions - dependency-name: stripe dependency-version: 22.5.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>
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.4.0 to 7.5.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.4.0...v7.5.0) --- updated-dependencies: - dependency-name: openai dependency-version: 7.5.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>
* feat(aiguard): Sensitive data redaction
Yarn Berry's package-manager check reports native build warnings for the old optional dependency versions, so installing the packed tracer fails. Update the packages to releases with prebuilt artifacts so the install completes without YN0007.
Overall package sizeSelf size: 8.42 MB Dependency sizes| name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.3.3 | 125.43 kB | 445.14 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 green!🧪 All tests passed 🎯 Code Coverage (details) 🔗 Commit SHA: 7c420ec | Docs | View more details | Give us feedback! |
BenchmarksBenchmark execution time: 2026-08-28 15:56:43 Comparing candidate commit 7c420ec in PR branch Found 20 performance improvements and 0 performance regressions! Performance is the same for 2278 metrics, 12 unstable metrics.
|
…ion (#9805) fix(profiling): resolve web tags for descendants of a late web span A request span often gets `span.type: web` only after descendants have been created and have already asked the shared web-tags cache for their nearest web-server ancestor. Those descendants kept the empty answer for the rest of their lives, so their profiling samples and thread-context records carried no endpoint. A nearer web-server span promoted under an outer one left them attributed to the outer request in the same way. The cache now rewrites the affected answers at the moment of promotion, in one pass over the entries the trace's started-spans list holds after the promoted span, and publishes `resolvedCh` for each span whose answer changed so that consumers refresh what they built from the old one in place. Doing it there rather than at the next lookup is what closes the window: a descendant in the middle of uninterrupted synchronous work never asks again, and that is exactly the stretch samples are taken over. Both hot paths are as they were — a resolved answer is never revisited, and neither consumer re-queries the cache on re-entry.
Yarn Berry emits YN0007 when a pinned native package declares a lifecycle script, even though these packages ship prebuilt binaries and consumers have nothing to build. The install-path assertion keeps package metadata changes from silently restoring those warnings. Refs: #5432
* fix(serverless): retain telemetry on Vercel * fix(serverless): retain active telemetry exports * refactor(serverless): isolate Vercel lifecycle adapter * docs(otlp): clarify logger flush registration * docs(serverless): clarify telemetry flush registry * test(otlp): cover multi-batch log flushing * refactor(serverless): bound flushing in tracer * fix(serverless): retain span stats and bounded log batches * test(span-stats): cover in-flight export flush * fix(serverless): wait for Vercel response completion * fix(serverless): order Vercel telemetry flushing * fix(exporters): clean up failed flush records * fix(serverless): retain outer Vercel telemetry * fix(exporters): retain in-flight traces after flush failure * fix(serverless): retain telemetry on Vercel * fix(serverless): retain active telemetry exports * refactor(serverless): isolate Vercel lifecycle adapter * docs(otlp): clarify logger flush registration * docs(serverless): clarify telemetry flush registry * test(otlp): cover multi-batch log flushing * refactor(serverless): bound flushing in tracer * fix(serverless): retain span stats and bounded log batches * test(span-stats): cover in-flight export flush * fix(serverless): wait for Vercel response completion * fix(serverless): order Vercel telemetry flushing * fix(exporters): clean up failed flush records * fix(serverless): retain outer Vercel telemetry * fix(exporters): retain in-flight traces after flush failure * fix(serverless): retain runtime metrics and span stats * fix(serverless): retain all Vercel telemetry flushes * fix(serverless): retain remaining Vercel telemetry * fix(llmobs): flush writers on serverless completion * refactor(serverless): scope delivery tracking to Vercel * fix(serverless): gate telemetry retention * refactor(serverless): reuse delivery tracking * refactor(serverless): isolate telemetry flush coordination * fix(serverless): retain Vercel lifecycle deliveries * fix(serverless): satisfy lifecycle lint * refactor(serverless): share writer delivery flushing * refactor(serverless): centralize delivery tracking * refactor(serverless): let writers track delivery * refactor(serverless): simplify delivery tracking * fix(serverless): retain in-flight exports on failure * fix(llmobs): continue flushing after request failures
* feat(openfeature): send serial_id on exposure events `makePayload` rebuilds each exposure from a fixed field list, so the `serial_id` the provider sets was discarded before the event reached the intake. The exposures worker needs it to resolve which holdout an allocation was generated from. Bump the vendored `@datadog/openfeature-node-server` to 2.2.0, the first release whose `@datadog/flagging-core` builds the field. The gate is conditional rather than unconditional because `deepStrictEqual` in the existing payload test treats a present-but- undefined key as a mismatch, and a truthiness check would drop a serial id of 0 — the first serial id issued in every org. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * chore(openfeature): align the root provider dependency with the vendored one `flagging_provider.spec.js` and `flagging_provider_timeout.spec.js` require `@datadog/openfeature-node-server` from the root and proxyquire it in place of the vendored module, so the suite exercised 2.1.0 while the tracer shipped 2.2.0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * perf(openfeature): build serial_id without an object spread The conditional spread produced two hidden classes at one site, so `CopyDataProperties` went polymorphic on a mixed batch — the common case, since a flag without a serial id is normal. A ternary yielding `undefined` keeps a single shape: 52 ms vs 103 ms per 5M formats when the field is present, and 54 ms vs 332 ms on a mixed batch. `JSON.stringify` omits `undefined`, and formatted events only leave through it, so the encoded payload is unchanged. The type check stays. `null` survives JSON encoding and the intake declares `serial_id` as an integer, rejecting the whole exposure on a mismatch — and the precompute response has no `skip_serializing_if`, so an absent serial id can arrive as `null`. Tests now assert on the encoded payload for null, string and boolean input. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * perf(openfeature): add serial_id only when it is present Assigning the field after building the event keeps it off the object when there is none, so `JSON.stringify` has no undefined property to skip. An end-to-end measurement of `makePayload` plus the encode step puts this at ~626 ms against ~639 ms for a ternary yielding `undefined`, over 5M events with no serial id. Both remain far ahead of the object spread this replaces, which produced two hidden classes at one site and cost ~954 ms on a mixed batch. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
…pdates (#9937) Bumps the test-versions group with 6 updates in the /packages/dd-trace/test/plugins/versions directory: | Package | From | To | | --- | --- | --- | | [@anthropic-ai/claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-typescript) | `0.3.234` | `0.3.238` | | [@datadog/openfeature-node-server](https://github.com/DataDog/openfeature-js-client/tree/HEAD/packages/node-server) | `2.1.0` | `2.2.0` | | [@wdio/cli](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-cli) | `9.30.1` | `9.31.1` | | [@wdio/jasmine-framework](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-jasmine-framework) | `9.30.1` | `9.31.1` | | [@wdio/local-runner](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-local-runner) | `9.30.1` | `9.31.1` | | [@wdio/mocha-framework](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-mocha-framework) | `9.30.1` | `9.31.1` | Updates `@anthropic-ai/claude-agent-sdk` from 0.3.234 to 0.3.238 - [Release notes](https://github.com/anthropics/claude-agent-sdk-typescript/releases) - [Changelog](https://github.com/anthropics/claude-agent-sdk-typescript/blob/main/CHANGELOG.md) - [Commits](anthropics/claude-agent-sdk-typescript@v0.3.234...v0.3.238) Updates `@datadog/openfeature-node-server` from 2.1.0 to 2.2.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.2.0/packages/node-server) Updates `@wdio/cli` from 9.30.1 to 9.31.1 - [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.31.1/packages/wdio-cli) Updates `@wdio/jasmine-framework` from 9.30.1 to 9.31.1 - [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.31.1/packages/wdio-jasmine-framework) Updates `@wdio/local-runner` from 9.30.1 to 9.31.1 - [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.31.1/packages/wdio-local-runner) Updates `@wdio/mocha-framework` from 9.30.1 to 9.31.1 - [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.31.1/packages/wdio-mocha-framework) --- updated-dependencies: - dependency-name: "@anthropic-ai/claude-agent-sdk" dependency-version: 0.3.238 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: test-versions - dependency-name: "@datadog/openfeature-node-server" dependency-version: 2.2.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: test-versions - dependency-name: "@wdio/cli" dependency-version: 9.31.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: test-versions - dependency-name: "@wdio/jasmine-framework" dependency-version: 9.31.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: test-versions - dependency-name: "@wdio/local-runner" dependency-version: 9.31.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: test-versions - dependency-name: "@wdio/mocha-framework" dependency-version: 9.31.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>
Bumps the databases group with 1 update in the /packages/dd-trace/test/plugins/versions directory: [mysql2](https://github.com/sidorares/node-mysql2). Updates `mysql2` from 3.23.3 to 3.23.4 - [Release notes](https://github.com/sidorares/node-mysql2/releases) - [Changelog](https://github.com/sidorares/node-mysql2/blob/master/Changelog.md) - [Commits](sidorares/node-mysql2@v3.23.3...v3.23.4) --- updated-dependencies: - dependency-name: mysql2 dependency-version: 3.23.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: databases ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat(llmobs): add records to datasets * refactor(llmobs): align dataset record types * fix(llmobs): validate dataset record batches atomically
Top-level imports made inactive users load Dynamic Instrumentation and LLMObs experiments during require('dd-trace'). Across 100 alternating fresh-process pairs, the change saves ~2 ms on Node 24.
a249315 to
7c420ec
Compare
There was a problem hiding this comment.
More details
Source inspection found no concrete defect in the release proposal. The changed instrumentation contracts and Vercel serverless lifecycle keep their expected behavior.
🤖 Datadog Autotest · Commit 7c420ec · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7c420ec7ce
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (tracesJson) tracesJson += ',' | ||
| if (hasMetadata) { | ||
| traceParts.push(metadataPrefix + ',"spans":' + spansJson + '}') | ||
| tracesJson += metadataPrefix + ',"spans":' + spansJson + '}' | ||
| } else { | ||
| traceParts.push('{"spans":' + spansJson + '}') | ||
| tracesJson += '{"spans":' + spansJson + '}' |
There was a problem hiding this comment.
Restore array joining for batched trace encoding
When an agentless payload contains many traces, repeatedly appending each trace to tracesJson more than doubles encoding time because Buffer.from() must flatten the growing concatenation chain. In a fresh Node 24 process with 1,000 single-span traces, seven warmed trials of 500 encodes took 158–166 ms here versus 68–79 ms with the previous array-and-join implementation. This is a regression on the Test Optimization export path, so retain the prior join strategy unless a representative benchmark shows otherwise.
AGENTS.md reference: AGENTS.md:L213-L213
Useful? React with 👍 / 👎.
| metricTags, | ||
| metric.source ?? 'custom' |
There was a problem hiding this comment.
Include the run identity on external evaluation metrics
When submitEvaluationMetrics() is called with the span returned by submitSpan(), this toMetric() invocation omits its new IDs argument, so the metric lacks the run_id and run_iteration tags that were placed on the corresponding span. Internal row and summary metrics now include these tags, but externally submitted evaluations cannot be grouped or filtered by their run consistently; pass through the external experiment's run identity, including any per-span override.
Useful? React with 👍 / 👎.
| if (typeof event.serial_id === 'number') { | ||
| formatted.serial_id = event.serial_id |
There was a problem hiding this comment.
Validate serial IDs as finite integers
When an exposure event contains a numeric but invalid serial_id, such as NaN, Infinity, or a fractional value, this check accepts it even though the intake contract requires an integer. Non-finite values serialize as null, while fractional values remain non-integers, causing the intake to reject the payload and drop otherwise valid exposures in the same batch; only include finite integer serial IDs.
Useful? React with 👍 / 👎.
Features
Fixes
Performance
Internal (CI, Testing, Benchmarking)
Contributors