Skip to content

Commit 791f7fb

Browse files
github-actions[bot]aurokinCopilot
authored
Update Copilot CLI to 1.0.87-0 (#2731)
* Repair codegen for Copilot CLI 1.0.87 schemas Disambiguate shared C# session request envelopes without weakening collision checks. Preserve Rust explicit unknown values and forward-compatible fallbacks from #2703. Resolve Go event payload references and preserve root event unions across bindings, with real envelope regressions and target-schema Java test adaptations. Validated with the 1.0.87-0 generated overlay; release pins and generated outputs are intentionally excluded from this source-only workflow seed. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Update Copilot CLI to 1.0.87-0 - Updated the shared CLI release pin - Re-ran code generators - Formatted generated code * Fix CLI 1.0.87 replay fixtures and Java test formatting Preserve existing subagent histories and add only observed short-idle, full-history read variants with failure/cancellation rejection coverage. Apply the repository root Java formatter to the two repaired test files. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Fix Java shared RPC variant ownership Preserve historical public variant superclasses and emit contextual secondary-root variants with validated Jackson subtype registrations. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Cover new Java RPC wrapper dispatch methods Exercise 29 new public endpoints and optional marketplace refresh with independent method, result type, payload, and session identity assertions. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Fix Windows bundled CLI tar extractor availability Compile the private TAR helper only for non-Windows production or bundled unit tests, preserving Windows runtime-archive test coverage. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): preserve constant constraints on referenced fields Validate field-local literals before decoding extensible named enums so untagged catalogue candidates cannot consume another kind. Preserve public field types and standalone Unknown fallbacks; regenerate from CLI 1.0.87-0. Includes the exact AI-skill decoding regression and MCP/Plugin controls. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Hunter Sadler <aurokin@github.com> 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>
1 parent ad69ee1 commit 791f7fb

223 files changed

Lines changed: 41565 additions & 10703 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎dotnet/src/Generated/Rpc.cs‎

Lines changed: 3447 additions & 46 deletions
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: 3743 additions & 945 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dotnet/test/Unit/SessionEventSerializationTests.cs‎

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,78 @@
33
*--------------------------------------------------------------------------------------------*/
44

55
using System.Text.Json;
6+
using System.Text.Json.Nodes;
67
using Xunit;
78

89
namespace GitHub.Copilot.Test.Unit;
910

1011
public class SessionEventSerializationTests
1112
{
13+
[Theory]
14+
[InlineData("session.idle", "{}")]
15+
[InlineData("user.message", """{"content":"hello"}""")]
16+
public void ObjectEvent_PreservesCompleteEnvelope(string eventType, string data)
17+
{
18+
var wire = $$"""
19+
{
20+
"id":"11111111-1111-1111-1111-111111111111",
21+
"timestamp":"2026-09-18T22:00:00+00:00",
22+
"parentId":"22222222-2222-2222-2222-222222222222",
23+
"type":"{{eventType}}",
24+
"data":{{data}}
25+
}
26+
""";
27+
var decoded = SessionEvent.FromJson(wire);
28+
Assert.Equal(eventType, decoded.Type);
29+
Assert.True(JsonNode.DeepEquals(JsonNode.Parse(wire), JsonNode.Parse(decoded.ToJson())));
30+
}
31+
32+
[Theory]
33+
[InlineData("session.indexed_search", "status", """{"state":"ready"}""")]
34+
[InlineData("session.indexed_search", "startup", """{"outcome":"started","startupDurationMs":1.5,"forcedByEnv":false,"warmStart":false,"fileCount":0,"eligible":false,"errorMessage":"diagnostic"}""")]
35+
[InlineData("session.indexed_search", "server_error", """{"errorType":"unexpected_exit","exitCode":0,"errorMessage":"diagnostic"}""")]
36+
[InlineData("session.indexed_search", "incremental", """{"phase":"updated","changedFileCount":0,"addedFileCount":1,"deletedFileCount":0,"totalChangeCount":1,"walkDurationMs":0.5,"updateDurationMs":1.25,"totalDurationMs":1.75}""")]
37+
[InlineData("sandbox.decision", "policy_resolved", """{"backend":"seatbelt","policySource":"default_policy","readwritePathsCount":0,"readonlyPathsCount":1,"deniedPathsCount":0,"addCurrentWorkingDirectory":false,"allowOutbound":false,"allowLocalNetwork":false,"proxyMode":"none","allowBypass":false,"gitAuth":false,"ghAuth":false,"keychainAccess":false}""")]
38+
[InlineData("sandbox.decision", "spawn_completed", """{"backend":"seatbelt","durationMs":1.5}""")]
39+
[InlineData("sandbox.decision", "enforcement_state", """{"backend":"seatbelt","command":"echo test","attestation":"spawn_succeeded"}""")]
40+
[InlineData("sandbox.decision", "access_denied", """{"denialClass":"filesystem_read","attestation":"builtin_policy_checked","deniedResource":"/example","command":"cat example"}""")]
41+
[InlineData("sandbox.decision", "bypass_decided", """{"source":"user_prompted","deniedResource":"/example"}""")]
42+
[InlineData("sandbox.decision", "permissive_retry_decided", """{"source":"model_requested","command":"echo test"}""")]
43+
[InlineData("sandbox.decision", "permissive_retry_completed", """{"processName":"example","command":"echo test"}""")]
44+
public void UnionEvent_PreservesCompleteEnvelope(string eventType, string kind, string fields)
45+
{
46+
var data = eventType == "sandbox.decision"
47+
? JsonNode.Parse("""{"control":"process","outcome":"resolved","platform":"macos","enforcementPoint":"shell","toolCallId":"tool-1"}""")!.AsObject()
48+
: new JsonObject();
49+
data["kind"] = kind;
50+
foreach (var field in JsonNode.Parse(fields)!.AsObject())
51+
{
52+
data[field.Key] = field.Value?.DeepClone();
53+
}
54+
var envelope = new JsonObject
55+
{
56+
["id"] = "11111111-1111-1111-1111-111111111111",
57+
["timestamp"] = "2026-09-18T22:00:00+00:00",
58+
["parentId"] = "22222222-2222-2222-2222-222222222222",
59+
["ephemeral"] = true,
60+
["agentId"] = "agent-1",
61+
["type"] = eventType,
62+
["data"] = data,
63+
};
64+
65+
var decoded = SessionEvent.FromJson(envelope.ToJsonString());
66+
Assert.Equal(eventType, decoded.Type);
67+
if (eventType == "session.indexed_search")
68+
{
69+
Assert.IsType<SessionIndexedSearchEvent>(decoded);
70+
}
71+
else
72+
{
73+
Assert.IsType<SandboxDecisionEvent>(decoded);
74+
}
75+
Assert.True(JsonNode.DeepEquals(envelope, JsonNode.Parse(decoded.ToJson())));
76+
}
77+
1278
public static TheoryData<AutoTier?, string?> AutoTiers => new()
1379
{
1480
{ AutoTier.Efficiency, "efficiency" },

‎go/rpc/zrpc.go‎

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

0 commit comments

Comments
 (0)