Skip to content

Commit 8715c13

Browse files
github-actions[bot]dmytrostrukCopilot
authored
Update @github/copilot to 1.0.82-0 (#2434)
* Update @github/copilot to 1.0.82-0 - Updated nodejs and test harness dependencies - Re-ran code generators - Formatted generated code * Fix telemetry trace assertions Scope trace consistency checks to the agent turn so unrelated process telemetry may use separate traces. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
1 parent 3ce0527 commit 8715c13

25 files changed

Lines changed: 169 additions & 154 deletions

File tree

dotnet/src/Generated/Rpc.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dotnet/src/Generated/SessionEvents.cs

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dotnet/test/E2E/TelemetryExportE2ETests.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,6 @@ public async Task Should_Export_File_Telemetry_For_Sdk_Interactions()
5454
Assert.NotEmpty(spans);
5555
Assert.All(spans, span => Assert.Equal(sourceName, GetInstrumentationScopeName(span)));
5656

57-
// All spans for one SDK turn must share the same trace id and must not be in error state.
58-
var traceIds = spans.Select(GetTraceId).Where(id => !string.IsNullOrEmpty(id)).Distinct().ToList();
59-
Assert.Single(traceIds);
6057
Assert.All(spans, span => Assert.NotEqual(2, GetStatusCode(span)));
6158

6259
var invokeAgentSpan = AssertSpanWithOperation(spans, "invoke_agent");
@@ -65,10 +62,13 @@ public async Task Should_Export_File_Telemetry_For_Sdk_Interactions()
6562
"invoke_agent should be the root of the SDK turn trace.");
6663
var invokeAgentSpanId = GetSpanId(invokeAgentSpan);
6764
Assert.False(string.IsNullOrEmpty(invokeAgentSpanId));
65+
var invokeAgentTraceId = GetTraceId(invokeAgentSpan);
66+
Assert.False(string.IsNullOrEmpty(invokeAgentTraceId));
6867

6968
var chatSpans = spans.Where(span => IsSpanWithOperation(span, "chat")).ToList();
7069
Assert.NotEmpty(chatSpans);
7170
Assert.All(chatSpans, chat => Assert.Equal(invokeAgentSpanId, GetParentSpanId(chat)));
71+
Assert.All(chatSpans, chat => Assert.Equal(invokeAgentTraceId, GetTraceId(chat)));
7272
Assert.Contains(
7373
chatSpans,
7474
span => (GetStringAttribute(span, "gen_ai.input.messages") ?? string.Empty).Contains(prompt, StringComparison.Ordinal));
@@ -78,6 +78,7 @@ public async Task Should_Export_File_Telemetry_For_Sdk_Interactions()
7878

7979
var toolSpan = AssertSpanWithOperation(spans, "execute_tool");
8080
Assert.Equal(invokeAgentSpanId, GetParentSpanId(toolSpan));
81+
Assert.Equal(invokeAgentTraceId, GetTraceId(toolSpan));
8182
Assert.Equal(toolName, GetStringAttribute(toolSpan, "gen_ai.tool.name"));
8283
Assert.False(string.IsNullOrWhiteSpace(GetStringAttribute(toolSpan, "gen_ai.tool.call.id")),
8384
"execute_tool span should carry gen_ai.tool.call.id.");

go/internal/e2e/telemetry_e2e_test.go

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -96,17 +96,6 @@ func TestTelemetryE2E(t *testing.T) {
9696
}
9797
}
9898

99-
traceIDs := map[string]struct{}{}
100-
for _, span := range spans {
101-
id := stringProp(span, "traceId")
102-
if id != "" {
103-
traceIDs[id] = struct{}{}
104-
}
105-
}
106-
if len(traceIDs) != 1 {
107-
t.Errorf("Expected exactly 1 trace id across spans, got %d (%v)", len(traceIDs), traceIDs)
108-
}
109-
11099
invokeAgent := findSpanWithOperation(spans, "invoke_agent")
111100
if invokeAgent == nil {
112101
t.Fatal("Expected an invoke_agent span")
@@ -121,6 +110,10 @@ func TestTelemetryE2E(t *testing.T) {
121110
if invokeAgentSpanID == "" {
122111
t.Fatal("invoke_agent span has empty spanId")
123112
}
113+
invokeAgentTraceID := stringProp(invokeAgent, "traceId")
114+
if invokeAgentTraceID == "" {
115+
t.Fatal("invoke_agent span has empty traceId")
116+
}
124117

125118
var chatSpans []map[string]any
126119
for _, span := range spans {
@@ -135,6 +128,9 @@ func TestTelemetryE2E(t *testing.T) {
135128
if got := stringProp(chat, "parentSpanId"); got != invokeAgentSpanID {
136129
t.Errorf("Expected chat span parentSpanId=%q, got %q", invokeAgentSpanID, got)
137130
}
131+
if got := stringProp(chat, "traceId"); got != invokeAgentTraceID {
132+
t.Errorf("Expected chat span traceId=%q, got %q", invokeAgentTraceID, got)
133+
}
138134
}
139135
var sawPromptInput, sawDoneOutput bool
140136
for _, chat := range chatSpans {
@@ -159,6 +155,9 @@ func TestTelemetryE2E(t *testing.T) {
159155
if got := stringProp(toolSpan, "parentSpanId"); got != invokeAgentSpanID {
160156
t.Errorf("Expected execute_tool parentSpanId=%q, got %q", invokeAgentSpanID, got)
161157
}
158+
if got := stringProp(toolSpan, "traceId"); got != invokeAgentTraceID {
159+
t.Errorf("Expected execute_tool traceId=%q, got %q", invokeAgentTraceID, got)
160+
}
162161
if got := stringAttr(toolSpan, "gen_ai.tool.name"); got != toolName {
163162
t.Errorf("Expected gen_ai.tool.name=%q, got %q", toolName, got)
164163
}

go/rpc/zrpc.go

Lines changed: 10 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

go/rpc/zsession_events.go

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

java/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
DO NOT EDIT MANUALLY. Updated by the update-copilot-dependency
6464
workflow.
6565
-->
66-
<readonly-copilot-sdk-ref-impl-version-from-lastmerge-file-updated-by-reference-impl-sync>^1.0.81</readonly-copilot-sdk-ref-impl-version-from-lastmerge-file-updated-by-reference-impl-sync>
66+
<readonly-copilot-sdk-ref-impl-version-from-lastmerge-file-updated-by-reference-impl-sync>^1.0.82-0</readonly-copilot-sdk-ref-impl-version-from-lastmerge-file-updated-by-reference-impl-sync>
6767
<!-- The parent POM is not published to Maven Central. -->
6868
<maven.deploy.skip>true</maven.deploy.skip>
6969
</properties>

java/scripts/codegen/package-lock.json

Lines changed: 36 additions & 36 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

java/scripts/codegen/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"generate:java": "tsx java.ts"
88
},
99
"dependencies": {
10-
"@github/copilot": "^1.0.81",
10+
"@github/copilot": "^1.0.82-0",
1111
"json-schema": "^0.4.0",
1212
"tsx": "^4.23.12"
1313
}

java/sdk/src/generated/java/com/github/copilot/generated/SessionCompactionCompleteEvent.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ public record SessionCompactionCompleteEventData(
5252
@JsonProperty("customInstructions") String customInstructions,
5353
/** LLM-generated summary of the compacted conversation history */
5454
@JsonProperty("summaryContent") String summaryContent,
55+
/** Canonical model identifier used for model-specific behavior when replaying compaction */
56+
@JsonProperty("behaviorModelId") String behaviorModelId,
5557
/** Checkpoint snapshot number created for recovery */
5658
@JsonProperty("checkpointNumber") Long checkpointNumber,
5759
/** File path where the checkpoint was stored */

0 commit comments

Comments
 (0)