Repository navigation
Conversation
Return completion-ordered dependency evaluations and the transactional exposure trace through the v46 FFE API. Environment: Datadog workspace Co-Authored-By: Codex GPT-5 <noreply@localhost>
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. |
📚 Documentation Check Results📦
|
🔒 Cargo Deny Results📦
|
🎉 All green!🧪 All tests passed 🎯 Code Coverage (details) 🔗 Commit SHA: 288685b | Docs | View more details | Give us feedback! |
Artifact Size Benchmark Reportaarch64-alpine-linux-musl
aarch64-unknown-linux-gnu
libdatadog-x64-windows
libdatadog-x86-windows
x86_64-alpine-linux-musl
x86_64-unknown-linux-gnu
|
BenchmarksComparisonBenchmark execution time: 2026-10-30 16:50:45 Comparing candidate commit 288685b in PR branch Found 1 performance improvements and 3 performance regressions! Performance is the same for 158 metrics, 0 unstable metrics.
|
|
Closing in favor of a clean implementation based directly on #2748 with the simplified unordered returned-batch contract. |
What does this PR do?
Adds dependent-flag evaluation to the v46 FFE implementation and returns the resulting telemetry after the root evaluation completes.
flagEvaluationfields.Motivation
Python, Ruby, and PHP consume libdatadog through FFI. They need the complete dependency evaluation batch after root completion so they can publish dependency telemetry before or alongside ordinary root telemetry. Dependency exposures remain transactional and must be discarded when the root graph fails.
Additional Notes
This PR is stacked on
helen/ffe-dependent-flags-v46and preserves the v46.1 workspace and Rust 1.87 toolchain. A traversal-time callback ABI is not required.How to test the change?
The final reviewed tree passed:
cargo test -p libdd-ffe dependent_flags_tests— 21 passed.cargo test -p libdd-ffe-ffi returned_batch_ffi— 2 passed.cargo +nightly-2026-07-26 fmt --all -- --checkfor the changed files.git diff --check.The tests cover successful roots, rejected rules and allocations, no-assignment paths, root failures, transitive dependencies, memoized reuse, depth-limit failures, completion ordering, exposure rollback, and C FFI access and ownership.