fix(debug): record native tool span startTimeUnixNano before execution#1809
Merged
fix(debug): record native tool span startTimeUnixNano before execution#1809
Conversation
In the post-hoc assembly path (handle_native_tool_calls), begin_tool_call was called after tool execution, so startTimeUnixNano reflected the post-execution wall clock rather than when the tool was dispatched. Latency was correct but the span was shifted on the Jaeger/Grafana timeline. Add TracingCollector::begin_tool_call_at accepting a pre-recorded Instant and computing Unix nanos via now_unix_nanos().saturating_sub(elapsed). Existing begin_tool_call delegates to it with Instant::now() (legacy.rs path unaffected). native.rs now passes the existing started_at Instant. Add begin_tool_call_at_timestamps_precede_end_time unit test. Closes #1798.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
begin_tool_callin the post-hoc assembly path (handle_native_tool_calls) was called after tool execution, causingstartTimeUnixNanoto reflect the post-execution wall clock instead of the dispatch timeTracingCollector::begin_tool_call_at(&Instant)that back-computes Unix nanos vianow_unix_nanos().saturating_sub(elapsed_nanos)— clean, no clock-type changenative.rsnow passes the existingstarted_atinstant;legacy.rsand tests unchangedbegin_tool_call_at_timestamps_precede_end_timeunit testTest plan
cargo nextest run --workspace --features full --lib --bins— 5788 passedcargo clippy --workspace --features full -- -D warnings— cleancargo +nightly fmt --check— cleanCloses #1798.