Skip to content

v5.84.0 proposal - #7347

Merged
BridgeAR merged 47 commits into
v5.xfrom
v5.84.0-proposal
Jan 30, 2026
Merged

v5.84.0 proposal#7347
BridgeAR merged 47 commits into
v5.xfrom
v5.84.0-proposal

Conversation

@dd-octo-sts

@dd-octo-sts dd-octo-sts Bot commented Jan 27, 2026

Copy link
Copy Markdown
Contributor
  • [0aa9ce26a9] - (SEMVER-PATCH) chore: update @datadog/openfeature-node-server to 0.3.3 (Leo Romanovsky) #7383
  • [60286914e9] - (SEMVER-PATCH) refactor(debugger): optimize JSONBuffer timer management (Thomas Watson) #7365
  • [7b348ca052] - (SEMVER-PATCH) add env var to configure ffe init time (Leo Romanovsky) #6948
  • [27af201bf1] - (SEMVER-PATCH) chore: Update @fastify/multipart used in tests to the latest version (Ugaitz Urien) #7379
  • [d51ac85dbc] - (SEMVER-PATCH) chore: add Cursor command templates (Thomas Watson) #7378
  • [1f484403e8] - chore(deps): bump the test-versions group across 3 directories with 7 updates (Ugaitz Urien)
  • [e12c19568c] - (SEMVER-PATCH) fix(ci-visibility): fix race condition in agent-proxy exporter (Thomas Watson) #7375
  • [a2ff6675cc] - (SEMVER-PATCH) refactor(ci-visibility): simplify DI logs writer (Thomas Watson) #7373
  • [d119cf223d] - (SEMVER-PATCH) Revert "chore(deps): bump the test-versions group across 3 directories with 7 updates (chore(deps): bump the test-versions group across 3 directories with 7 updates #7371)" (Thomas Watson) #7374
  • [be2e01cd5b] - (SEMVER-PATCH) chore(deps): bump the test-versions group across 3 directories with 7 updates (dependabot[bot]) #7371
  • [b7a7392f86] - (SEMVER-PATCH) fix super support for traceCallback (Roch Devost) #7327
  • [081a148823] - (SEMVER-PATCH) AppSec optimizations (simon-id) #7168
  • [f763fd37be] - (SEMVER-PATCH) ci: make vendoring in CI more robust (Ruben Bridgewater) #7343
  • [5572149f18] - (SEMVER-PATCH) [test optimization] Fix test.status reported in test sessions including quarantined tests (Juan Antonio Fernández de Alba) #7353
  • [e67b47e8d7] - (SEMVER-PATCH) docs: add integration test permissions note to AGENTS.md (Thomas Watson) #7362
  • [2c57dccc96] - (SEMVER-PATCH) [test optimization] Fix mocks on jest tests when retried with ATF, EFD or impacted tests (Juan Antonio Fernández de Alba) #7352
  • [424bd1bf89] - (SEMVER-PATCH) chore(deps): bump the gh-actions-packages group across 11 directories with 5 updates (dependabot[bot]) #7361
  • [99aef7c791] - (SEMVER-PATCH) chore: remove unnecessary if condition (Pablo Erhard) #7354
  • [be8dc65e69] - (SEMVER-PATCH) refactor: centralize agent URL construction into getAgentUrl helper (Thomas Watson) #7311
  • [089e8e1a3e] - (SEMVER-PATCH) fix(agent): improve fetchAgentInfo error handling (Thomas Watson) #7313
  • [7b864e2d96] - (SEMVER-PATCH) docs: instruct Aider and Gemini CLI to use AGENTS.md (Thomas Watson) #7348
  • [f9a04bed52] - (SEMVER-PATCH) ci(codeql): exclude vendor/dist from analysis (Thomas Watson) #7349
  • [b084a8de58] - (SEMVER-PATCH) doc: fix API.md and index.d.ts to include the plugins (Ruben Bridgewater) #7341
  • [af9056a7ea] - (SEMVER-PATCH) Bump @datadog/openfeature-node-server to 0.3.1 (Leo Romanovsky) #7344
  • [fbc82c25c4] - (SEMVER-PATCH) fix(langchain, core): properly handle class expressions with orchestrion (Sam Brenner) #7339
  • [137125b3d3] - (SEMVER-PATCH) chore(deps): bump meriyah from 6.1.4 to 7.0.0 in /vendor (dependabot[bot]) #7160
  • [f8ac5f9843] - (SEMVER-PATCH) chore(deps): bump protobufjs from 7.5.4 to 8.0.0 in /vendor (dependabot[bot]) #7161
  • [daecbd48b6] - (SEMVER-MINOR) feat(debugger): support Live Debugger Remote Enablement (Thomas Watson) #7317
  • [6eed53f44d] - (SEMVER-PATCH) perf(agent): cache agent info requests for 1 minute (Thomas Watson) #7312
  • [2d19e95fbf] - (SEMVER-PATCH) fix(test-optimization): no advanced features are enabled if ITR kill switch is passed through environment variables (Calvin Bayer) #7141
  • [9e11e52a90] - (SEMVER-PATCH) ci: fix vendoring completely (Ruben Bridgewater) #7328
  • [e6e966d125] - (SEMVER-PATCH) refactor(exporters): split AgentInfoExporter into focused modules (Thomas Watson) #7310
  • [ab24010071] - (SEMVER-PATCH) chore: add .cursor dir to .gitignore (Thomas Watson) #7333
  • [4a749eeafa] - (SEMVER-PATCH) chore: add yarn add command to AGENTS.md (Thomas Watson) #7334
  • [6d656a3924] - (SEMVER-PATCH) ci: delay all-green check for six minutes and activate verbose mode (Ruben Bridgewater) #7329
  • [262d4e4f06] - (SEMVER-PATCH) ci: split azure functions integration tests into multiple jobs (Roch Devost) #7301
  • [b25f5928d8] - (SEMVER-PATCH) chore: remove plugin checklist from PR template (simon-id) #7105
  • [78a05369e3] - (SEMVER-PATCH) chore(deps): bump lodash from 4.17.21 to 4.17.23 (dependabot[bot]) #7303
  • [494217fdf7] - (SEMVER-PATCH) fix log publish format (Roch Devost) #7293
  • [5b46416622] - (SEMVER-PATCH) [test optimization] Fix attempt to fix logic in playwright (Juan Antonio Fernández de Alba) #7325
  • [6b0ccd2d05] - (SEMVER-PATCH) ci: fix vendoring pipeline (Ruben Bridgewater) #7316
  • [b1c41b8625] - (SEMVER-PATCH) test: fix type issues in test optimization tests (Ruben Bridgewater) #7297
  • [b4af38d2d7] - (SEMVER-PATCH) chore(deps): bump the vendor-minor-and-patch-dependencies group across 1 directory with 2 updates (dependabot[bot]) #7185
  • [0943c1400f] - (SEMVER-PATCH) test: retry npm install of wasm-js-rewriter (Roch Devost) #6775
  • [daa5dbd021] - (SEMVER-PATCH) chore(test): refactor debugger integration tests (Thomas Watson) #7315
  • [0345cbaee3] - (SEMVER-PATCH) fix: load files correctly for Cucumber and Playwright (Ruben Bridgewater) #7281

BridgeAR and others added 24 commits January 27, 2026 05:12
* fix: load files correctly for Cucumber and Playwright

The require calls were not correctly aligned. This was detected due
to type errors being visible for the wrong require calls.

As drive-by add a few additional types.

* test: add additional test cases

---------

Co-authored-by: Juan Fernandez <juan.fernandezdealba@datadoghq.com>
Split up the very large basic.spec.js file into smaller scoped files
Retries once after waiting one minute.
…s 1 directory with 2 updates (#7185)

* chore(deps): bump the vendor-minor-and-patch-dependencies group across 1 directory with 2 updates

Bumps the vendor-minor-and-patch-dependencies group with 2 updates in the /vendor directory: [@isaacs/ttlcache](https://github.com/isaacs/ttlcache) and [esquery](https://github.com/estools/esquery).


Updates `@isaacs/ttlcache` from 2.1.3 to 2.1.4
- [Changelog](https://github.com/isaacs/ttlcache/blob/main/CHANGELOG.md)
- [Commits](isaacs/ttlcache@v2.1.3...v2.1.4)

Updates `esquery` from 1.6.0 to 1.7.0
- [Commits](https://github.com/estools/esquery/commits)

---
updated-dependencies:
- dependency-name: "@isaacs/ttlcache"
  dependency-version: 2.1.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: vendor-minor-and-patch-dependencies
- dependency-name: esquery
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: vendor-minor-and-patch-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>

* update vendored dependencies with new versions

Co-authored-by: github-actions <github-actions@github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
These are mostly passing through stdio as argument to exec, which
does not support that argument.

In addition, fix a couple of process.env types and add some more
types to test helpers.

There is one spot where `parallel` was defined was not used in the
test. That is removed as well as activating the no-undef eslint rule
for test-optimization code.

On top, the assertObjectContains helper got improved to always
generate a diff in the future, even on older Node.js versions.
The vendoring validation would happen if dev dependencies were
updated. These would not create a bundle and that caused issues.

The major updates were also not taken into account for vendoring
and that is now the case. Instead of relying on the group, we
verify what files are changed.
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](lodash/lodash@4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: indirect
...

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

This should a) reduce github API rate limit usages and b) increase
the overall success rate of the all-green job for long running
processes as well as jobs that hit the API rate limit early on.

Six minutes is chosen as our CI normally needs about twice as long
overall and even if we optimize slow runs away, we likely will not
drop below six minutes. Re-running our CI will not have the delay.

The verbose mode allows to understand better why the job fails,
which is currently partially difficult.
)

The AgentInfoExporter class had mixed responsibilities, serving as both
an agent info fetcher and a trace buffering exporter. This made the code
confusing and led to unnecessary instantiations.

Changes:
- Split agent info fetching into agent/info.js with fetchAgentInfo utility
- Extract buffering logic into BufferingExporter base class
- Update CiVisibilityExporter to extend BufferingExporter
- Update openfeature and llmobs writers to use fetchAgentInfo directly

This improves code clarity by adhering to single responsibility principle
and reduces overhead by avoiding unnecessary class instantiations when
only agent info is needed.
The vendoring still had two issues.

1. Updated dev dependencies should also run the vendoring, since
   these may change how the bundle is minified. This is not taken
   into account.
2. The artifact generated was added to the repository. That way
   we actually also added the patch file itself to the repository.
   That works once, while creating the second patch would not
   conflict. This is fixed by generating the file outside of the
   repository and only applying ./vendor as patch.
   The patch file is now ignored, to further mitigate the risk for
   this to happen again in case the code is refactored,

* chore: fix type error and improve error output while bundling
…switch is passed through environment variables (#7141)
Implements a URL-keyed cache for /info endpoint responses to reduce
unnecessary HTTP requests to the agent. Cache entries expire after 60
seconds.
* chore(deps): bump protobufjs from 7.5.4 to 8.0.0 in /vendor

Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.4 to 8.0.0.
- [Release notes](https://github.com/protobufjs/protobuf.js/releases)
- [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
- [Commits](protobufjs/protobuf.js@protobufjs-v7.5.4...protobufjs-v8.0.0)

---
updated-dependencies:
- dependency-name: protobufjs
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* update vendored dependencies with new versions

Co-authored-by: github-actions <github-actions@github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Ruben Bridgewater <ruben@bridgewater.de>
* chore(deps): bump meriyah from 6.1.4 to 7.0.0 in /vendor

Bumps [meriyah](https://github.com/meriyah/meriyah) from 6.1.4 to 7.0.0.
- [Release notes](https://github.com/meriyah/meriyah/releases)
- [Changelog](https://github.com/meriyah/meriyah/blob/main/CHANGELOG.md)
- [Commits](meriyah/meriyah@v6.1.4...v7.0.0)

---
updated-dependencies:
- dependency-name: meriyah
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

---------

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

* support var class instance method patching

* add additional test for non-var case
Includes fix for OF.7: empty string is now accepted as a valid
targeting key.
The files were missing multiple entries as well as having too many
entries. This is now fixed by adding a test that verifies the
correctness.
@dd-octo-sts dd-octo-sts Bot mentioned this pull request Jan 27, 2026
@github-actions

github-actions Bot commented Jan 27, 2026

Copy link
Copy Markdown
Contributor

Overall package size

Self size: 4.46 MB
Deduped: 5.3 MB
No deduping: 5.3 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 2.0.3 | 76.87 kB | 808.03 kB | | dc-polyfill | 0.1.10 | 26.73 kB | 26.73 kB |

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

@codecov

codecov Bot commented Jan 27, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.77419% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 86.03%. Comparing base (6b35e7d) to head (b132508).
⚠️ Report is 457 commits behind head on v5.x.

Files with missing lines Patch % Lines
packages/dd-trace/src/appsec/index.js 95.00% 1 Missing ⚠️
packages/dd-trace/src/config/index.js 80.00% 1 Missing ⚠️
packages/dd-trace/src/llmobs/writers/util.js 66.66% 1 Missing ⚠️
packages/dd-trace/src/openfeature/writers/base.js 50.00% 1 Missing ⚠️
packages/dd-trace/src/openfeature/writers/util.js 66.66% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             v5.x    #7347      +/-   ##
==========================================
+ Coverage   83.19%   86.03%   +2.84%     
==========================================
  Files         476      515      +39     
  Lines       20153    22249    +2096     
==========================================
+ Hits        16766    19142    +2376     
+ Misses       3387     3107     -280     
Flag Coverage Δ
aiguard-macos 99.09% <ø> (?)
aiguard-ubuntu 99.09% <ø> (?)
aiguard-windows 99.09% <ø> (?)
apm-capabilities-tracing-macos 57.84% <83.94%> (?)
apm-capabilities-tracing-ubuntu 57.85% <83.94%> (?)
apm-capabilities-tracing-windows 57.46% <82.48%> (?)
apm-integrations-child-process 99.19% <ø> (?)
apm-integrations-couchbase-18 100.00% <ø> (?)
apm-integrations-couchbase-eol 100.00% <ø> (?)
appsec-express 62.54% <90.00%> (?)
appsec-fastify 58.55% <80.00%> (?)
appsec-graphql 53.40% <80.00%> (?)
appsec-kafka 43.98% <ø> (?)
appsec-ldapjs 46.04% <ø> (?)
appsec-lodash 47.29% <ø> (?)
appsec-macos 93.76% <90.00%> (?)
appsec-mongodb-core 51.82% <ø> (?)
appsec-mongoose 50.73% <ø> (?)
appsec-mysql 54.16% <55.00%> (?)
appsec-node-serialize 43.92% <ø> (?)
appsec-passport 48.07% <75.00%> (?)
appsec-postgres 54.51% <55.00%> (?)
appsec-sourcing 33.80% <ø> (?)
appsec-template 43.92% <ø> (?)
appsec-ubuntu 93.76% <90.00%> (?)
appsec-windows 93.76% <90.00%> (?)
llmobs-ai 52.09% <80.00%> (?)
llmobs-anthropic 42.73% <80.00%> (?)
llmobs-bedrock 40.06% <80.00%> (?)
llmobs-google-genai 45.89% <80.00%> (?)
llmobs-langchain 50.15% <80.00%> (?)
llmobs-openai 55.62% <80.00%> (?)
llmobs-vertex-ai 44.48% <80.00%> (?)
platform-core 87.23% <ø> (?)
platform-instrumentations-misc 89.16% <100.00%> (?)
platform-shimmer 98.80% <100.00%> (?)
profiling-macos 70.74% <ø> (?)
profiling-ubuntu 70.74% <ø> (?)
profiling-windows 74.20% <100.00%> (?)

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

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

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

@datadog-datadog-prod-us1

datadog-datadog-prod-us1 Bot commented Jan 27, 2026

Copy link
Copy Markdown

⚠️ Tests

Fix all issues with Cursor

⚠️ Warnings

❄️ 1 New flaky test detected

tests.parametric.test_dynamic_configuration.TestDynamicConfigTracingEnabled.test_default_capability_completeness[library_env0, parametric-nodejs] from system_tests_suite (Datadog) (Fix with Cursor)
AssertionError: seen_but_not_expected_capabilities={<Capabilities.APM_TRACING_ENABLE_LIVE_DEBUGGING: 41>}; Update capabilities.yml to fix this.

self = <tests.parametric.test_dynamic_configuration.TestDynamicConfigTracingEnabled object at 0x7f19e41257f0>
test_agent = <utils.docker_fixtures._test_agent.TestAgentAPI object at 0x7f19e5d23440>
test_library = <utils.docker_fixtures._test_clients._test_client_parametric.ParametricTestClientApi object at 0x7f19af6a1400>

    @parametrize("library_env", [{**DEFAULT_ENVVARS}])
    def test_default_capability_completeness(self, test_agent: TestAgentAPI, test_library: APMLibrary) -> None:
        """Ensure the RC request contains the expected default capabilities per language.
    
...

🧪 2 Tests failed

typescript with version ^5 instruments an application with decorators from with version ^5 (Datadog) (Fix with Cursor)
Command failed: tsc --target ES6 --experimentalDecorators --module commonjs --sourceMap index.ts

Error: Command failed: tsc --target ES6 --experimentalDecorators --module commonjs --sourceMap index.ts
    at genericNodeError (node:internal/errors:984:15)
    at wrappedFn (node:internal/errors:538:14)
    at checkExecSyncError (node:child_process:891:11)
    at execSync (node:child_process:963:15)
    at Context.<anonymous> (packages/dd-trace/test/llmobs/sdk/typescript/index.spec.js:101:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
❄️ Known flaky: typescript with version ^5 not initialized from with version ^5 (Datadog) (Fix with Cursor)
Process exited with status code 1.

Error: Process exited with status code 1.
    at ChildProcess.<anonymous> (integration-tests/helpers/index.js:257:25)
    at Object.onceWrapper (node:events:639:26)
    at ChildProcess.emit (node:events:524:28)
    at ChildProcess._handle.onexit (node:internal/child_process:293:12)
    at Process.callbackTrampoline (node:internal/async_hooks:130:17)
This comment will be updated automatically if new data arrives.
🔗 Commit SHA: b132508 | Docs | Datadog PR Page | Was this helpful? Give us feedback!

@pr-commenter

pr-commenter Bot commented Jan 27, 2026

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2026-01-29 19:16:09

Comparing candidate commit b132508 in PR branch v5.84.0-proposal with baseline commit 82ad4d6 in branch v5.x.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 231 metrics, 29 unstable metrics.

The vendor/dist directory contains bundled dependencies that don't
need to be scanned as part of the project's code analysis.
watson and others added 10 commits January 29, 2026 19:05
Remove unused tags parameter from agent proxy and add default
timeout value to DI logs writer constructor. This consolidates
the default timeout logic and removes unnecessary parameter
passing.
Fixes a race condition in AgentProxyCiVisibilityExporter where
`_isGzipCompatible` and `evpProxyPrefix` could be read before
being set, causing intermittent test failures in CI.

The race condition was amplified by commit 6eed53f which added
caching to fetchAgentInfo. When the cache is hit, the callback
runs via process.nextTick (extremely fast), making the timing
window between promise resolution and property assignment visible.

Production code fix:
- Move `this._isGzipCompatible = isGzipCompatible` to execute
  before `this._resolveCanUseCiVisProtocol()` in the callback
- This ensures the property is set before tests (or production
  code) can read it after awaiting `_canUseCiVisProtocolPromise`
- Matches the pattern in AgentlessCiVisibilityExporter

Test cleanup fix:
- Add `nock.cleanAll()` to beforeEach hook to prevent HTTP mock
  state leakage between tests
- Without cleanup, nock interceptors from previous tests could
  interfere with subsequent tests
- Follows the pattern in exporter.spec.js and other test files

Fixes 4 flaky tests:
- _isGzipCompatible (v4+ and v3 version checks)
- evpProxyPrefix (v2 and v4 prefix assignments)
… updates

Recreates the reverted PR #7371 with fixed CI
Add command templates for commit messages, PR bodies, and branch
testing to standardize workflows. Update .gitignore to track
.cursor/commands while keeping .cursor/skills ignored.
* feat(openfeature): add env vars for flagging provider configuration

Add environment variable support for:
- DD_FLAGGING_PROVIDER_ENABLED / DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED
- DD_FLAGGING_PROVIDER_INITIALIZATION_TIMEOUT_MS / DD_EXPERIMENTAL_FLAGGING_PROVIDER_INITIALIZATION_TIMEOUT_MS

* fix(openfeature): use only DD_EXPERIMENTAL_* env vars for flagging provider

Remove support for non-experimental env vars (DD_FLAGGING_PROVIDER_ENABLED
and DD_FLAGGING_PROVIDER_INITIALIZATION_TIMEOUT_MS) to align with other
Datadog tracers (Go, Python, Ruby, Java, .NET) which only support the
DD_EXPERIMENTAL_* variants.
Resolve peer dependency errors for dd-trace users who don't directly use OpenFeature.

Fixes: #6986
@BridgeAR
BridgeAR marked this pull request as ready for review January 29, 2026 19:26
@BridgeAR
BridgeAR requested review from a team as code owners January 29, 2026 19:26
@BridgeAR
BridgeAR requested review from BridgeAR and removed request for a team January 29, 2026 19:26
@BridgeAR
BridgeAR merged commit c3b37a6 into v5.x Jan 30, 2026
1400 of 1648 checks passed
@BridgeAR
BridgeAR deleted the v5.84.0-proposal branch January 30, 2026 10:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants