Skip to content

Simplify decorator API: void return types and factory method naming#11929

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 4 commits into
masterfrom
mcculls/simplify-decorator-signatures
Jul 13, 2026
Merged

Simplify decorator API: void return types and factory method naming#11929
gh-worker-dd-mergequeue-cf854d[bot] merged 4 commits into
masterfrom
mcculls/simplify-decorator-signatures

Conversation

@mcculls

@mcculls mcculls commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

What Does This Do

  • Changes ~120 decorator methods that passed a parameter back unchanged to use a void return type
    • the returned value was ignored at every call site, and the fluent style implied a transformation that wasn't happening
  • Renames 6 factory methods whose on* names implied decoration rather than span creation:
    • WebsocketDecorator
      onReceiveFrameStart/onSendFrameStart/onSessionCloseIssued/onSessionCloseReceived
      startInboundFrameSpan/startOutboundFrameSpan/startOutboundCloseSpan/startInboundCloseSpan
    • PubSubDecorator.onConsumestartConsumeSpan
    • MuleDecorator.onMuleSpanstartMuleSpan

Motivation

Simplifies the codebase by removing a fluent-api approach that was never used; avoids IDE warnings about return values not being checked or acted on.

Additional Notes

Pure refactor — no behaviour change. The start* naming aligns with the existing startSpan / startCall convention and the inbound/outbound vocabulary already used in the WebSocket handler file names.

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@mcculls mcculls added inst: others All other instrumentations tag: no release notes Changes to exclude from release notes type: refactoring tag: ai generated Largely based on code generated by an AI or LLM labels Jul 13, 2026
@dd-octo-sts

dd-octo-sts Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

🟢 Java Benchmark SLOs — All performance SLOs passed

Suite Status
Startup 🟢 pass

SLO thresholds are defined here based on automatically generated metrics. A warning is raised when results are within 5% of the threshold.

PR vs. master results
Scenario Candidate master Δ (95% CI of mean)
startup:insecure-bank:iast:Agent 13.89 s 13.96 s [-1.1%; +0.2%] (no difference)
startup:insecure-bank:tracing:Agent 12.95 s 12.94 s [-0.7%; +0.8%] (no difference)
startup:petclinic:appsec:Agent 16.80 s 16.72 s [-0.5%; +1.4%] (no difference)
startup:petclinic:iast:Agent 16.84 s 16.99 s [-1.7%; -0.1%] (maybe better)
startup:petclinic:profiling:Agent 16.66 s 16.69 s [-1.0%; +0.6%] (no difference)
startup:petclinic:sca:Agent 16.95 s 16.81 s [-0.2%; +1.8%] (no difference)
startup:petclinic:tracing:Agent 16.11 s 16.10 s [-0.8%; +0.9%] (no difference)

Commit: 2850bba8 · CI Pipeline · Benchmarking Platform UI


Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion.

@mcculls mcculls force-pushed the mcculls/simplify-decorator-signatures branch from a8aa51c to 0ca4835 Compare July 13, 2026 14:33
@mcculls mcculls requested a review from Copilot July 13, 2026 14:33
@mcculls

mcculls commented Jul 13, 2026

Copy link
Copy Markdown
Contributor Author

@codex review

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Refactors the Java agent’s decorator APIs to remove unused fluent return values (switching many AgentSpan/Context/Scope “pass-through” methods to void) and renames several WebSocket/PubSub/Mule span factory methods to clarify that they create spans rather than “decorate” existing ones.

Changes:

  • Converted numerous decorator hooks (e.g., afterStart, onRequest, onResponse, onError, beforeFinish, etc.) from returning the passed object to void, updating call sites accordingly.
  • Renamed WebSocket decorator span-creation methods from on* to start* (e.g., startInboundFrameSpan, startOutboundFrameSpan, startInboundCloseSpan, startOutboundCloseSpan) and updated Jetty/Netty/JSR-356 call sites.
  • Updated several code paths that previously relied on chaining (e.g., beforeFinish(span).finish()) to explicit sequencing (beforeFinish(span); span.finish();).

Reviewed changes

Copilot reviewed 93 out of 93 changed files in this pull request and generated no comments.

Show a summary per file
File Description
dd-java-agent/instrumentation/websocket/jetty-websocket/jetty-websocket-10.0/src/main/java11/datadog/trace/instrumentation/websocket/jetty10/MethodHandleWrappers.java Update Jetty websocket instrumentation to new WebsocketDecorator.start* APIs.
dd-java-agent/instrumentation/websocket/javax-websocket-1.0/src/main/java/datadog/trace/instrumentation/websocket/jsr256/TracingWriter.java Use startOutboundFrameSpan instead of onSendFrameStart.
dd-java-agent/instrumentation/websocket/javax-websocket-1.0/src/main/java/datadog/trace/instrumentation/websocket/jsr256/TracingOutputStream.java Use startOutboundFrameSpan for binary write spans.
dd-java-agent/instrumentation/websocket/javax-websocket-1.0/src/main/java/datadog/trace/instrumentation/websocket/jsr256/SessionInstrumentation.java Use startOutboundCloseSpan for session close spans.
dd-java-agent/instrumentation/websocket/javax-websocket-1.0/src/main/java/datadog/trace/instrumentation/websocket/jsr256/MessageHandlerInstrumentation.java Use startInboundFrameSpan for inbound message spans.
dd-java-agent/instrumentation/websocket/javax-websocket-1.0/src/main/java/datadog/trace/instrumentation/websocket/jsr256/EndpointInstrumentation.java Use startInboundCloseSpan for close-received spans.
dd-java-agent/instrumentation/websocket/javax-websocket-1.0/src/main/java/datadog/trace/instrumentation/websocket/jsr256/BasicRemoteEndpointInstrumentation.java Use startOutboundFrameSpan for send spans.
dd-java-agent/instrumentation/websocket/javax-websocket-1.0/src/main/java/datadog/trace/instrumentation/websocket/jsr256/AsyncRemoteEndpointInstrumentation.java Use startOutboundFrameSpan for async send spans.
dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-4.0/src/main/java/datadog/trace/instrumentation/vertx_4_0/server/VertxDecorator.java Change onRequest to void (no-op implementation).
dd-java-agent/instrumentation/vertx/vertx-web/vertx-web-3.4/src/main/java/datadog/trace/instrumentation/vertx_3_4/server/VertxDecorator.java Change onRequest to void (no-op implementation).
dd-java-agent/instrumentation/twilio-0.0.1/src/main/java/datadog/trace/instrumentation/twilio/TwilioClientDecorator.java Convert decoration helpers to void returns.
dd-java-agent/instrumentation/tomcat/tomcat-common/src/main/java/datadog/trace/instrumentation/tomcat/TomcatDecorator.java Update servlet decorator overrides to void and remove returned chaining.
dd-java-agent/instrumentation/tibco-businessworks/tibco-businessworks-6.5/src/main/java/datadog/trace/instrumentation/tibcobw6/TibcoDecorator.java Convert lifecycle hooks to void and adjust calls to super.
dd-java-agent/instrumentation/tibco-businessworks/tibco-businessworks-5.14/src/main/java/datadog/trace/instrumentation/tibcobw5/TibcoDecorator.java Convert lifecycle hooks to void and adjust calls to super.
dd-java-agent/instrumentation/spymemcached-2.10/src/main/java/datadog/trace/instrumentation/spymemcached/MemcacheClientDecorator.java Convert onOperation to void.
dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-6.0/src/main/java17/datadog/trace/instrumentation/springweb6/SpringWebHttpServerDecorator.java Convert onRequest/onRender to void.
dd-java-agent/instrumentation/spring/spring-webmvc/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/SpringWebHttpServerDecorator.java Convert onRequest/onRender to void.
dd-java-agent/instrumentation/spring/spring-scheduling-3.1/src/main/java/datadog/trace/instrumentation/springscheduling/SpringSchedulingDecorator.java Convert onRun to void.
dd-java-agent/instrumentation/sofarpc/sofarpc-5.0/src/main/java/datadog/trace/instrumentation/sofarpc/SofaRpcServerDecorator.java Convert afterStart/onRequest/onResponse to void.
dd-java-agent/instrumentation/sofarpc/sofarpc-5.0/src/main/java/datadog/trace/instrumentation/sofarpc/SofaRpcClientDecorator.java Convert onRequest/onResponse to void.
dd-java-agent/instrumentation/servlet/javax-servlet/javax-servlet-common/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherDecorator.java Convert onError override to void.
dd-java-agent/instrumentation/servlet/javax-servlet/javax-servlet-3.0/src/main/java/datadog/trace/instrumentation/servlet3/Servlet3Decorator.java Convert onRequest/onError to void.
dd-java-agent/instrumentation/servlet/javax-servlet/javax-servlet-2.2/src/main/java/datadog/trace/instrumentation/servlet2/Servlet2Decorator.java Convert onRequest to void.
dd-java-agent/instrumentation/resilience4j/resilience4j-2.0/src/main/java/datadog/trace/instrumentation/resilience4j/Resilience4jSpanDecorator.java Convert afterStart to void.
dd-java-agent/instrumentation/rediscala-1.8/src/main/java/datadog/trace/instrumentation/rediscala/RediscalaClientDecorator.java Convert onConnection to void.
dd-java-agent/instrumentation/ratpack-1.5/src/main/java/datadog/trace/instrumentation/ratpack/RatpackServerDecorator.java Convert onContext/onError to void and remove returned chaining.
dd-java-agent/instrumentation/quartz-2.0/src/main/java/datadog/trace/instrumentation/quartz/QuartzDecorator.java Convert onExecute to void.
dd-java-agent/instrumentation/play/play-2.6/src/main/java/datadog/trace/instrumentation/play26/PlayHttpServerDecorator.java Convert onRequest/onError to void.
dd-java-agent/instrumentation/play/play-2.4/src/main/java/datadog/trace/instrumentation/play24/PlayHttpServerDecorator.java Convert onRequest/onError to void.
dd-java-agent/instrumentation/play/play-2.3/src/main/java/datadog/trace/instrumentation/play23/PlayHttpServerDecorator.java Convert onRequest/onError to void.
dd-java-agent/instrumentation/opensearch/opensearch-common/src/main/java/datadog/trace/instrumentation/opensearch/OpensearchTransportClientDecorator.java Convert onRequest to void.
dd-java-agent/instrumentation/opensearch/opensearch-common/src/main/java/datadog/trace/instrumentation/opensearch/OpensearchRestClientDecorator.java Convert onRequest/onResponse to void and adjust resource decorator usage.
dd-java-agent/instrumentation/openai-java/openai-java-3.0/src/main/java/datadog/trace/instrumentation/openai_java/OpenAiDecorator.java Convert afterStart/beforeFinish to void.
dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/server/websocket/WebSocketServerOutboundTracingHandler.java Use WebsocketDecorator.start* APIs for outbound spans.
dd-java-agent/instrumentation/netty/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/server/websocket/WebSocketServerInboundTracingHandler.java Use WebsocketDecorator.start* APIs for inbound spans.
dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/server/websocket/WebSocketServerResponseTracingHandler.java Use WebsocketDecorator.start* APIs for outbound spans.
dd-java-agent/instrumentation/netty/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/server/websocket/WebSocketServerRequestTracingHandler.java Use WebsocketDecorator.start* APIs for inbound spans.
dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/server/websocket/WebSocketServerResponseTracingHandler.java Use WebsocketDecorator.start* APIs for outbound spans.
dd-java-agent/instrumentation/netty/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/server/websocket/WebSocketServerRequestTracingHandler.java Use WebsocketDecorator.start* APIs for inbound spans.
dd-java-agent/instrumentation/mule-4.5/src/main/java/datadog/trace/instrumentation/mule4/MuleDecorator.java Rename span factory to startMuleSpan and update afterStart chaining removal.
dd-java-agent/instrumentation/mule-4.5/src/main/java/datadog/trace/instrumentation/mule4/DDEventTracer.java Update to new Mule decorator method name and explicit beforeFinish/finish sequencing.
dd-java-agent/instrumentation/mongo/mongo-common/src/main/java/datadog/trace/instrumentation/mongo/MongoDecorator.java Convert onStatement overloads to void.
dd-java-agent/instrumentation/liberty/liberty-23.0/src/main/java/datadog/trace/instrumentation/liberty23/LibertyDecorator.java Convert response/error hooks to void and remove returned chaining.
dd-java-agent/instrumentation/liberty/liberty-20.0/src/main/java/datadog/trace/instrumentation/liberty20/LibertyDecorator.java Convert response/error hooks to void and remove returned chaining.
dd-java-agent/instrumentation/lettuce/lettuce-5.0/src/main/java/datadog/trace/instrumentation/lettuce5/LettuceClientDecorator.java Convert connection/command decoration to void.
dd-java-agent/instrumentation/lettuce/lettuce-4.0/src/main/java/datadog/trace/instrumentation/lettuce4/LettuceClientDecorator.java Convert connection/command decoration to void.
dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.0/src/main/java/datadog/trace/instrumentation/jetty9/WebSocketSessionInstrumentation.java Use startOutboundCloseSpan for close-issued spans.
dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-9.0/src/main/java/datadog/trace/instrumentation/jetty9/JettyDecorator.java Convert onResponse override to void.
dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-7.6/src/main/java/datadog/trace/instrumentation/jetty76/JettyDecorator.java Convert onResponse override to void.
dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-7.0/src/main/java/datadog/trace/instrumentation/jetty70/JettyDecorator.java Convert onResponse override to void.
dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-12.0/src/main/java17/datadog/trace/instrumentation/jetty12/JettyDecorator.java Convert onResponse override to void.
dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-11.0/src/main/java11/datadog/trace/instrumentation/jetty11/JettyDecorator.java Convert onResponse override to void.
dd-java-agent/instrumentation/jetty/jetty-server/jetty-server-10.0/src/main/java11/datadog/trace/instrumentation/jetty10/JettyDecorator.java Convert nested OnResponse.onResponse helper to void.
dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/JDBCDecorator.java Convert connection/statement decoration to void and remove chaining.
dd-java-agent/instrumentation/ignite-2.0/src/main/java/datadog/trace/instrumentation/ignite/v2/cache/IgniteCacheDecorator.java Convert multiple decoration helpers to void and adjust overload call flow.
dd-java-agent/instrumentation/hazelcast/hazelcast-4.0/src/main/java/datadog/trace/instrumentation/hazelcast4/HazelcastDecorator.java Convert service execution decoration to void.
dd-java-agent/instrumentation/hazelcast/hazelcast-3.9/src/main/java/datadog/trace/instrumentation/hazelcast39/ClientInvocationDecorator.java Convert decoration methods to void and remove no-op returns.
dd-java-agent/instrumentation/hazelcast/hazelcast-3.6/src/main/java/datadog/trace/instrumentation/hazelcast36/DistributedObjectDecorator.java Convert decoration methods to void and remove no-op returns.
dd-java-agent/instrumentation/grpc-1.5/src/main/java/datadog/trace/instrumentation/grpc/server/GrpcServerDecorator.java Convert afterStart/onCall/onError to void.
dd-java-agent/instrumentation/grpc-1.5/src/main/java/datadog/trace/instrumentation/grpc/client/GrpcClientDecorator.java Remove afterStart chaining in startCall and convert onClose to void.
dd-java-agent/instrumentation/graphql-java/graphql-java-common/src/main/java/datadog/trace/instrumentation/graphqljava/GraphQLDecorator.java Convert afterStart/onRequest to void and adjust early-exit returns.
dd-java-agent/instrumentation/google-pubsub-1.116/src/main/java/datadog/trace/instrumentation/googlepubsub/PubSubDecorator.java Rename consumer span factory to startConsumeSpan.
dd-java-agent/instrumentation/google-pubsub-1.116/src/main/java/datadog/trace/instrumentation/googlepubsub/MessageReceiverWrapper.java Use startConsumeSpan when wrapping message receivers.
dd-java-agent/instrumentation/google-pubsub-1.116/src/main/java/datadog/trace/instrumentation/googlepubsub/MessageReceiverWithAckResponseWrapper.java Use startConsumeSpan when wrapping message receivers.
dd-java-agent/instrumentation/google-http-client-1.19/src/main/java/datadog/trace/instrumentation/googlehttpclient/GoogleHttpClientInstrumentation.java Replace prepareSpan(... ) chaining with explicit span creation + prepareSpan call.
dd-java-agent/instrumentation/google-http-client-1.19/src/main/java/datadog/trace/instrumentation/googlehttpclient/GoogleHttpClientDecorator.java Convert prepareSpan to void.
dd-java-agent/instrumentation/elasticsearch/elasticsearch-common/src/main/java/datadog/trace/instrumentation/elasticsearch/ElasticsearchTransportClientDecorator.java Convert onRequest to void.
dd-java-agent/instrumentation/elasticsearch/elasticsearch-common/src/main/java/datadog/trace/instrumentation/elasticsearch/ElasticsearchRestClientDecorator.java Convert onRequest/onResponse to void and adjust resource decorator usage.
dd-java-agent/instrumentation/datastax-cassandra/datastax-cassandra-4.0/src/main/java/datadog/trace/instrumentation/datastax/cassandra4/CassandraClientDecorator.java Convert statement/response/error decorators to void and adjust helper signature.
dd-java-agent/instrumentation/datastax-cassandra/datastax-cassandra-3.0/src/main/java/datadog/trace/instrumentation/datastax/cassandra/CassandraClientDecorator.java Convert statement/response decorators to void.
dd-java-agent/instrumentation/datanucleus-4.0.5/src/main/java/datadog/trace/instrumentation/datanucleus/DatanucleusDecorator.java Convert resource-name helper to void.
dd-java-agent/instrumentation/cics-9.1/src/main/java/datadog/trace/instrumentation/cics/CicsDecorator.java Convert lifecycle/connection/interaction decorators to void.
dd-java-agent/instrumentation/azure-functions-1.2.2/src/main/java/datadog/trace/instrumentation/azure/functions/AzureFunctionsDecorator.java Convert afterStart overload to void.
dd-java-agent/instrumentation/axway-api-7.5/src/main/java/datadog/trace/instrumentation/axway/AxwayHTTPPluginDecorator.java Convert transaction decoration to void.
dd-java-agent/instrumentation/axis2-1.3/src/main/java/datadog/trace/instrumentation/axis2/AxisMessageDecorator.java Replace super.afterStart(...).setMeasured(true) chaining with explicit calls.
dd-java-agent/instrumentation/aws-java/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsSdkClientDecorator.java Convert onSdkRequest and helper onOperation to void.
dd-java-agent/instrumentation/aws-java/aws-java-sdk-1.11/src/main/java/datadog/trace/instrumentation/aws/v0/AwsSdkClientDecorator.java Convert request/response decorators to void and remove returned chaining.
dd-java-agent/instrumentation/armeria/armeria-grpc-0.84/src/main/java/datadog/trace/instrumentation/armeria/grpc/server/GrpcServerDecorator.java Convert afterStart/onCall/onError to void.
dd-java-agent/instrumentation/armeria/armeria-grpc-0.84/src/main/java/datadog/trace/instrumentation/armeria/grpc/client/GrpcClientDecorator.java Remove afterStart chaining and convert onClose to void.
dd-java-agent/instrumentation/aerospike-4.0/src/main/java/datadog/trace/instrumentation/aerospike4/AerospikeClientDecorator.java Convert onConnection to void.
dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/rmi/RmiServerDecorator.java Convert afterStart to void.
dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/rmi/RmiClientDecorator.java Convert method invocation decoration to void.
dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/WebsocketDecorator.java Rename span factory methods to start* and remove beforeFinish(...).finish() chaining.
dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/ServerDecorator.java Convert afterStart to void and remove returned chaining.
dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/OrmClientDecorator.java Convert onOperation to void.
dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/MessagingClientDecorator.java Convert afterStart to void.
dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/HttpServerDecorator.java Convert core HTTP server decorator hooks to void and update beforeFinish signature.
dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/HttpClientDecorator.java Convert HTTP client decorator hooks to void.
dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/http/HttpResourceDecorator.java Convert resource-name helpers to void and remove returned chaining.
dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/DBTypeProcessingDatabaseClientDecorator.java Convert afterStart to void.
dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/DatabaseClientDecorator.java Convert connection/statement helpers to void and adjust onInstance signature.
dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/ClientDecorator.java Convert afterStart to void.
dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/BaseDecorator.java Convert core decorator lifecycle APIs (afterStart, beforeFinish, onError, etc.) to void.
Comments suppressed due to low confidence (1)

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/HttpServerDecorator.java:244

  • onRequest(...) now returns void, but there is still at least one call site returning its value, which will not compile: dd-java-agent/agent-bootstrap/src/jmh/java/datadog/trace/bootstrap/instrumentation/decorator/HttpServerDecoratorBenchmark.java:68 (return decorator.onRequest(...)). Update that benchmark (and any similar usages) to call decorator.onRequest(...) as a statement and then return span;.
  public void onRequest(
      final AgentSpan span,
      final CONNECTION connection,
      final REQUEST request,
      final Context parentContext) {

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0ca4835ef2

ℹ️ 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".

@mcculls mcculls force-pushed the mcculls/simplify-decorator-signatures branch from 0ca4835 to c25b2f0 Compare July 13, 2026 14:48
@datadog-prod-us1-3

datadog-prod-us1-3 Bot commented Jul 13, 2026

Copy link
Copy Markdown

🎯 Code Coverage (details)
Patch Coverage: 52.63%
Overall Coverage: 60.96% (+3.91%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 2850bba | Docs | Datadog PR Page | Give us feedback!

@mcculls mcculls force-pushed the mcculls/simplify-decorator-signatures branch 2 times, most recently from 433ef3c to 4185758 Compare July 13, 2026 15:08
mcculls and others added 2 commits July 13, 2026 16:30
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@mcculls mcculls force-pushed the mcculls/simplify-decorator-signatures branch from 4185758 to d540c0d Compare July 13, 2026 15:31
@mcculls mcculls marked this pull request as ready for review July 13, 2026 15:59
@mcculls mcculls requested review from a team as code owners July 13, 2026 15:59
@mcculls mcculls requested review from PerfectSlayer, ValentinZakharov, amarziali, dougqh and jordan-wong and removed request for a team July 13, 2026 15:59

@datadog-prod-us1-3 datadog-prod-us1-3 Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Datadog Autotest: PASS

More details

The PR is a thorough mechanical refactor across 94 files. Every decorator method that was returning its own input parameter unchanged was changed to void, and 6 WebSocket/PubSub/Mule factory methods were renamed from on* to start*. All 6 renamed methods' call sites were verified to be updated with no old names remaining. No subclasses outside the PR override the now-void methods with old return-type signatures. The TestDecorator/TestDecoratorImpl hierarchy in the CI visibility module declares its own afterStart(AgentSpan) returning AgentSpan, but it is entirely independent of BaseDecorator — no compilation conflict. No behavioral regressions found.

Was this helpful? React 👍 or 👎

📊 Validated against 12 scenarios · Open Bits AI session

🤖 Datadog Autotest · Commit d540c0d · What is Autotest? · Any feedback? Reach out in #autotest

@PerfectSlayer PerfectSlayer left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looking good. Left few questions

@mcculls mcculls force-pushed the mcculls/simplify-decorator-signatures branch from 0180340 to b6b4fec Compare July 13, 2026 17:00
@mcculls mcculls added this pull request to the merge queue Jul 13, 2026
@dd-octo-sts

dd-octo-sts Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

/merge

@gh-worker-devflow-routing-ef8351

gh-worker-devflow-routing-ef8351 Bot commented Jul 13, 2026

Copy link
Copy Markdown

View all feedbacks in Devflow UI.

2026-07-13 18:15:43 UTC ℹ️ Start processing command /merge


2026-07-13 18:15:48 UTC ℹ️ MergeQueue: pull request added to the queue

The expected merge time in master is approximately 2h (p90).


2026-07-13 20:16:26 UTCMergeQueue: The build pipeline has timeout

The merge request has been interrupted because the build 6425276040300400031 took longer than expected. The current limit for the base branch 'master' is 120 minutes.

@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 13, 2026
@mcculls mcculls added this pull request to the merge queue Jul 13, 2026
@dd-octo-sts

dd-octo-sts Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

/merge

@gh-worker-devflow-routing-ef8351

gh-worker-devflow-routing-ef8351 Bot commented Jul 13, 2026

Copy link
Copy Markdown

View all feedbacks in Devflow UI.

2026-07-13 20:17:05 UTC ℹ️ Start processing command /merge


2026-07-13 20:17:11 UTC ℹ️ MergeQueue: pull request added to the queue

The expected merge time in master is approximately 2h (p90).


2026-07-13 21:20:03 UTC ℹ️ MergeQueue: This merge request was merged

@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 13, 2026
@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d Bot merged commit f2121a0 into master Jul 13, 2026
587 checks passed
@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d Bot deleted the mcculls/simplify-decorator-signatures branch July 13, 2026 21:20
@github-actions github-actions Bot added this to the 1.65.0 milestone Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

inst: others All other instrumentations tag: ai generated Largely based on code generated by an AI or LLM tag: no release notes Changes to exclude from release notes type: refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants