Skip to content

Commit b371963

Browse files
Copilotedburns
andauthored
Fix compilation errors in test files after generated code regeneration
- PermissionsTest: Add null for new 'source' field in SessionPermissionsSetApproveAllParams - SessionEventDeserializationTest: Fix assertEquals ambiguity by casting to (Long) or Double.valueOf() for fields that changed from double to Long/Double - GeneratedEventTypesCoverageTest: Fix totalResponseSizeBytes assertion (now Long) - GeneratedRpcApiCoverageTest: Add null for new 'url' and 'tip' fields in SessionLogParams - GeneratedRpcRecordsCoverageTest: Fix PingResult (timestamp now OffsetDateTime), AgentInfo (7 new fields), SessionHistoryCompactResult (new summaryContent field), SessionUsageGetMetricsResult (totalApiDurationMs now Long, sessionStartTime now OffsetDateTime) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: edburns <75821+edburns@users.noreply.github.com>
1 parent 6659d43 commit b371963

8 files changed

Lines changed: 82 additions & 62 deletions

File tree

scripts/codegen/java.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,25 @@ function toJavaClassName(typeName: string): string {
3737
return typeName.split(/[._]/).map((p) => p.charAt(0).toUpperCase() + p.slice(1)).join("");
3838
}
3939

40+
/** Java reserved keywords and Object method names that cannot be used as record component names. */
41+
const JAVA_RESERVED_IDENTIFIERS = new Set([
42+
"abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const",
43+
"continue", "default", "do", "double", "else", "enum", "extends", "final", "finally", "float",
44+
"for", "goto", "if", "implements", "import", "instanceof", "int", "interface", "long", "native",
45+
"new", "package", "private", "protected", "public", "return", "short", "static", "strictfp",
46+
"super", "switch", "synchronized", "this", "throw", "throws", "transient", "try", "void",
47+
"volatile", "while",
48+
// Object methods that conflict with record component accessor names
49+
"wait", "notify", "notifyAll", "getClass", "clone", "finalize", "toString", "hashCode", "equals",
50+
]);
51+
4052
function toCamelCase(name: string): string {
4153
const pascal = toPascalCase(name);
42-
return pascal.charAt(0).toLowerCase() + pascal.slice(1);
54+
let result = pascal.charAt(0).toLowerCase() + pascal.slice(1);
55+
if (JAVA_RESERVED_IDENTIFIERS.has(result)) {
56+
result = result + "_";
57+
}
58+
return result;
4359
}
4460

4561
function toEnumConstant(value: string): string {

src/generated/java/com/github/copilot/sdk/generated/rpc/SessionSendParams.java

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

src/main/java/com/github/copilot/sdk/CopilotSession.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1782,7 +1782,8 @@ public CompletableFuture<Void> log(String message, String level, Boolean ephemer
17821782
rpcLevel = SessionLogLevel.INFO;
17831783
}
17841784
}
1785-
return getRpc().log(new SessionLogParams(sessionId, message, rpcLevel, ephemeral, url)).thenApply(r -> null);
1785+
return getRpc().log(new SessionLogParams(sessionId, message, rpcLevel, null, ephemeral, url, null))
1786+
.thenApply(r -> null);
17861787
}
17871788

17881789
/**

src/test/java/com/github/copilot/sdk/PermissionsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ void testShouldShortCircuitPermissionHandlerWhenSetApproveAllEnabled() throws Ex
418418
// Set approve-all so the runtime short-circuits
419419
var setResult = session.getRpc().permissions
420420
.setApproveAll(new com.github.copilot.sdk.generated.rpc.SessionPermissionsSetApproveAllParams(
421-
session.getSessionId(), true))
421+
session.getSessionId(), true, null))
422422
.get(10, TimeUnit.SECONDS);
423423
assertTrue(setResult.success(), "setApproveAll should succeed");
424424

src/test/java/com/github/copilot/sdk/SessionEventDeserializationTest.java

Lines changed: 39 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -792,10 +792,10 @@ void testParseSessionShutdownEvent() throws Exception {
792792

793793
var shutdownEvent = (SessionShutdownEvent) event;
794794
assertEquals(ShutdownType.ROUTINE, shutdownEvent.getData().shutdownType());
795-
assertEquals(5.0, shutdownEvent.getData().totalPremiumRequests());
795+
assertEquals(Double.valueOf(5.0), shutdownEvent.getData().totalPremiumRequests());
796796
assertEquals("gpt-4", shutdownEvent.getData().currentModel());
797797
assertNotNull(shutdownEvent.getData().codeChanges());
798-
assertEquals(10.0, shutdownEvent.getData().codeChanges().linesAdded());
798+
assertEquals((Long) 10L, shutdownEvent.getData().codeChanges().linesAdded());
799799
}
800800

801801
@Test
@@ -1054,7 +1054,7 @@ void testSessionStartEventAllFields() throws Exception {
10541054
assertNotNull(event);
10551055
var data = event.getData();
10561056
assertEquals("sess-full", data.sessionId());
1057-
assertEquals(2.0, data.version());
1057+
assertEquals((Long) 2L, data.version());
10581058
assertEquals("copilot-cli", data.producer());
10591059
assertEquals("1.2.3", data.copilotVersion());
10601060
assertNotNull(data.startTime());
@@ -1077,7 +1077,7 @@ void testSessionResumeEventAllFields() throws Exception {
10771077
assertNotNull(event);
10781078
var data = event.getData();
10791079
assertNotNull(data.resumeTime());
1080-
assertEquals(42.0, data.eventCount());
1080+
assertEquals((Long) 42L, data.eventCount());
10811081
}
10821082

10831083
@Test
@@ -1178,13 +1178,13 @@ void testSessionTruncationEventAllFields() throws Exception {
11781178
var event = (SessionTruncationEvent) parseJson(json);
11791179
assertNotNull(event);
11801180
var data = event.getData();
1181-
assertEquals(128000.0, data.tokenLimit());
1182-
assertEquals(150000.0, data.preTruncationTokensInMessages());
1183-
assertEquals(100.0, data.preTruncationMessagesLength());
1184-
assertEquals(120000.0, data.postTruncationTokensInMessages());
1185-
assertEquals(80.0, data.postTruncationMessagesLength());
1186-
assertEquals(30000.0, data.tokensRemovedDuringTruncation());
1187-
assertEquals(20.0, data.messagesRemovedDuringTruncation());
1181+
assertEquals((Long) 128000L, data.tokenLimit());
1182+
assertEquals((Long) 150000L, data.preTruncationTokensInMessages());
1183+
assertEquals((Long) 100L, data.preTruncationMessagesLength());
1184+
assertEquals((Long) 120000L, data.postTruncationTokensInMessages());
1185+
assertEquals((Long) 80L, data.postTruncationMessagesLength());
1186+
assertEquals((Long) 30000L, data.tokensRemovedDuringTruncation());
1187+
assertEquals((Long) 20L, data.messagesRemovedDuringTruncation());
11881188
assertEquals("system", data.performedBy());
11891189
}
11901190

@@ -1204,9 +1204,9 @@ void testSessionUsageInfoEventAllFields() throws Exception {
12041204
var event = (SessionUsageInfoEvent) parseJson(json);
12051205
assertNotNull(event);
12061206
var data = event.getData();
1207-
assertEquals(128000.0, data.tokenLimit());
1208-
assertEquals(50000.0, data.currentTokens());
1209-
assertEquals(25.0, data.messagesLength());
1207+
assertEquals((Long) 128000L, data.tokenLimit());
1208+
assertEquals((Long) 50000L, data.currentTokens());
1209+
assertEquals((Long) 25L, data.messagesLength());
12101210
}
12111211

12121212
@Test
@@ -1240,21 +1240,21 @@ void testSessionCompactionCompleteEventAllFields() throws Exception {
12401240
var data = event.getData();
12411241
assertTrue(data.success());
12421242
assertNull(data.error());
1243-
assertEquals(150000.0, data.preCompactionTokens());
1244-
assertEquals(60000.0, data.postCompactionTokens());
1245-
assertEquals(100.0, data.preCompactionMessagesLength());
1246-
assertEquals(50.0, data.messagesRemoved());
1247-
assertEquals(90000.0, data.tokensRemoved());
1243+
assertEquals((Long) 150000L, data.preCompactionTokens());
1244+
assertEquals((Long) 60000L, data.postCompactionTokens());
1245+
assertEquals((Long) 100L, data.preCompactionMessagesLength());
1246+
assertEquals((Long) 50L, data.messagesRemoved());
1247+
assertEquals((Long) 90000L, data.tokensRemoved());
12481248
assertEquals("Compacted conversation", data.summaryContent());
1249-
assertEquals(3.0, data.checkpointNumber());
1249+
assertEquals((Long) 3L, data.checkpointNumber());
12501250
assertEquals("/checkpoints/3", data.checkpointPath());
12511251
assertEquals("req-compact-1", data.requestId());
12521252

12531253
var tokens = data.compactionTokensUsed();
12541254
assertNotNull(tokens);
1255-
assertEquals(1000.0, tokens.inputTokens());
1256-
assertEquals(500.0, tokens.outputTokens());
1257-
assertEquals(200.0, tokens.cacheReadTokens());
1255+
assertEquals((Long) 1000L, tokens.inputTokens());
1256+
assertEquals((Long) 500L, tokens.outputTokens());
1257+
assertEquals((Long) 200L, tokens.cacheReadTokens());
12581258
}
12591259

12601260
@Test
@@ -1288,16 +1288,16 @@ void testSessionShutdownEventAllFields() throws Exception {
12881288
var data = event.getData();
12891289
assertEquals(ShutdownType.ERROR, data.shutdownType());
12901290
assertEquals("OOM", data.errorReason());
1291-
assertEquals(10.0, data.totalPremiumRequests());
1292-
assertEquals(5000.5, data.totalApiDurationMs());
1293-
assertEquals(1700000000000.0, data.sessionStartTime());
1291+
assertEquals(Double.valueOf(10.0), data.totalPremiumRequests());
1292+
assertEquals((Long) 5000L, data.totalApiDurationMs());
1293+
assertEquals((Long) 1700000000000L, data.sessionStartTime());
12941294
assertEquals("gpt-4-turbo", data.currentModel());
12951295
assertNotNull(data.modelMetrics());
12961296

12971297
var changes = data.codeChanges();
12981298
assertNotNull(changes);
1299-
assertEquals(50.0, changes.linesAdded());
1300-
assertEquals(20.0, changes.linesRemoved());
1299+
assertEquals((Long) 50L, changes.linesAdded());
1300+
assertEquals((Long) 20L, changes.linesRemoved());
13011301
assertNotNull(changes.filesModified());
13021302
assertEquals(3, changes.filesModified().size());
13031303
assertEquals("a.java", changes.filesModified().get(0));
@@ -1391,7 +1391,7 @@ void testAssistantStreamingDeltaEventAllFields() throws Exception {
13911391
var event = (AssistantStreamingDeltaEvent) parseJson(json);
13921392
assertNotNull(event);
13931393
assertEquals("assistant.streaming_delta", event.getType());
1394-
assertEquals(4096.0, event.getData().totalResponseSizeBytes());
1394+
assertEquals((Long) 4096L, event.getData().totalResponseSizeBytes());
13951395
}
13961396

13971397
@Test
@@ -1482,12 +1482,12 @@ void testAssistantUsageEventAllFields() throws Exception {
14821482
assertNotNull(event);
14831483
var data = event.getData();
14841484
assertEquals("gpt-4-turbo", data.model());
1485-
assertEquals(500.0, data.inputTokens());
1486-
assertEquals(200.0, data.outputTokens());
1487-
assertEquals(50.0, data.cacheReadTokens());
1488-
assertEquals(150.0, data.cacheWriteTokens());
1485+
assertEquals((Long) 500L, data.inputTokens());
1486+
assertEquals((Long) 200L, data.outputTokens());
1487+
assertEquals((Long) 50L, data.cacheReadTokens());
1488+
assertEquals((Long) 150L, data.cacheWriteTokens());
14891489
assertEquals(0.05, data.cost());
1490-
assertEquals(1234.5, data.duration());
1490+
assertEquals((Long) 1234L, data.duration());
14911491
assertEquals("user", data.initiator());
14921492
assertEquals("api-1", data.apiCallId());
14931493
assertEquals("prov-1", data.providerCallId());
@@ -1497,11 +1497,11 @@ void testAssistantUsageEventAllFields() throws Exception {
14971497

14981498
// Verify copilotUsage
14991499
assertNotNull(data.copilotUsage());
1500-
assertEquals(1234567.0, data.copilotUsage().totalNanoAiu());
1500+
assertEquals(Double.valueOf(1234567.0), data.copilotUsage().totalNanoAiu());
15011501
assertNotNull(data.copilotUsage().tokenDetails());
15021502
assertEquals(2, data.copilotUsage().tokenDetails().size());
15031503
assertEquals("input", data.copilotUsage().tokenDetails().get(0).tokenType());
1504-
assertEquals(500.0, data.copilotUsage().tokenDetails().get(0).tokenCount());
1504+
assertEquals((Long) 500L, data.copilotUsage().tokenDetails().get(0).tokenCount());
15051505
assertEquals("output", data.copilotUsage().tokenDetails().get(1).tokenType());
15061506
}
15071507

@@ -1522,10 +1522,8 @@ void testAssistantUsageEventWithNullQuotaSnapshots() throws Exception {
15221522
assertNotNull(event);
15231523
var data = event.getData();
15241524
assertEquals("gpt-4-turbo", data.model());
1525-
assertEquals(500.0, data.inputTokens());
1526-
assertEquals(200.0, data.outputTokens());
1527-
// quotaSnapshots is null when absent in JSON (generated class uses nullable
1528-
// fields)
1525+
assertEquals((Long) 500L, data.inputTokens());
1526+
assertEquals((Long) 200L, data.outputTokens());
15291527
assertNull(data.quotaSnapshots());
15301528
}
15311529

@@ -2147,7 +2145,7 @@ void testParseJsonNodeSessionShutdownWithCodeChanges() throws Exception {
21472145
var event = (SessionShutdownEvent) parseJson(json);
21482146
assertNotNull(event);
21492147
assertEquals(ShutdownType.ROUTINE, event.getData().shutdownType());
2150-
assertEquals(100.0, event.getData().codeChanges().linesAdded());
2148+
assertEquals((Long) 100L, event.getData().codeChanges().linesAdded());
21512149
assertEquals(1, event.getData().codeChanges().filesModified().size());
21522150
}
21532151

src/test/java/com/github/copilot/sdk/generated/GeneratedEventTypesCoverageTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ void testParseAssistantStreamingDeltaEvent() throws Exception {
4545
assertInstanceOf(AssistantStreamingDeltaEvent.class, event);
4646
assertEquals("assistant.streaming_delta", event.getType());
4747
var typed = (AssistantStreamingDeltaEvent) event;
48-
assertEquals(1024.0, typed.getData().totalResponseSizeBytes());
48+
assertEquals((Long) 1024L, typed.getData().totalResponseSizeBytes());
4949
}
5050

5151
// ── CapabilitiesChangedEvent ───────────────────────────────────────────

src/test/java/com/github/copilot/sdk/generated/rpc/GeneratedRpcApiCoverageTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -633,7 +633,7 @@ void sessionRpc_log_merges_sessionId() {
633633
var stub = new StubCaller();
634634
var session = new SessionRpc(stub, "sess-log");
635635

636-
var logParams = new SessionLogParams(null, "Hello from test", null, null, null);
636+
var logParams = new SessionLogParams(null, "Hello from test", null, null, null, null, null);
637637
session.log(logParams);
638638

639639
assertEquals(1, stub.calls.size());

src/test/java/com/github/copilot/sdk/generated/rpc/GeneratedRpcRecordsCoverageTest.java

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import static org.junit.jupiter.api.Assertions.*;
88

9+
import java.time.OffsetDateTime;
910
import java.util.List;
1011
import java.util.Map;
1112
import java.util.UUID;
@@ -32,9 +33,9 @@ void pingParams_record() {
3233

3334
@Test
3435
void pingResult_record() {
35-
var result = new PingResult("pong", 1234L, 2L);
36+
var result = new PingResult("pong", null, 2L);
3637
assertEquals("pong", result.message());
37-
assertEquals(1234L, result.timestamp());
38+
assertNull(result.timestamp());
3839
assertEquals(2L, result.protocolVersion());
3940
}
4041

@@ -246,7 +247,7 @@ void sessionHistoryTruncateParams_record() {
246247

247248
@Test
248249
void sessionLogParams_record() {
249-
var params = new SessionLogParams("sess-24", "test message", SessionLogLevel.INFO, false, null);
250+
var params = new SessionLogParams("sess-24", "test message", SessionLogLevel.INFO, null, false, null, null);
250251
assertEquals("sess-24", params.sessionId());
251252
assertEquals("test message", params.message());
252253
assertEquals(SessionLogLevel.INFO, params.level());
@@ -471,9 +472,10 @@ void sessionWorkspaceReadFileParams_record() {
471472

472473
@Test
473474
void pingResult_fields() {
474-
var result = new PingResult("pong", 9999L, 1L);
475+
var ts = OffsetDateTime.now();
476+
var result = new PingResult("pong", ts, 1L);
475477
assertEquals("pong", result.message());
476-
assertEquals(9999L, result.timestamp());
478+
assertEquals(ts, result.timestamp());
477479
assertEquals(1L, result.protocolVersion());
478480
}
479481

@@ -484,7 +486,8 @@ void sessionAgentDeselectResult_empty() {
484486

485487
@Test
486488
void sessionAgentListResult_with_items() {
487-
var item = new AgentInfo("name1", "Name One", "Desc 1", "/path/to/agent1");
489+
var item = new AgentInfo("name1", "Name One", "Desc 1", "/path/to/agent1", null, null, null, null, null, null,
490+
null);
488491
var result = new SessionAgentListResult(List.of(item));
489492
assertEquals(1, result.agents().size());
490493
assertEquals("name1", result.agents().get(0).name());
@@ -495,7 +498,8 @@ void sessionAgentListResult_with_items() {
495498

496499
@Test
497500
void sessionAgentGetCurrentResult_nested() {
498-
var agent = new AgentInfo("agent-1", "Agent One", "Does things", null);
501+
var agent = new AgentInfo("agent-1", "Agent One", "Does things", null, null, null, null, null, null, null,
502+
null);
499503
var result = new SessionAgentGetCurrentResult(agent);
500504
assertEquals("agent-1", result.agent().name());
501505
assertEquals("Agent One", result.agent().displayName());
@@ -511,15 +515,16 @@ void sessionAgentGetCurrentResult_null_agent() {
511515

512516
@Test
513517
void sessionAgentReloadResult_with_items() {
514-
var item = new AgentInfo("a", "A", "Desc", "/path/to/a");
518+
var item = new AgentInfo("a", "A", "Desc", "/path/to/a", null, null, null, null, null, null, null);
515519
var result = new SessionAgentReloadResult(List.of(item));
516520
assertEquals(1, result.agents().size());
517521
assertEquals("a", result.agents().get(0).name());
518522
}
519523

520524
@Test
521525
void sessionAgentSelectResult_nested() {
522-
var agent = new AgentInfo("selected", "Selected", "The selected agent", "/path/to/selected");
526+
var agent = new AgentInfo("selected", "Selected", "The selected agent", "/path/to/selected", null, null, null,
527+
null, null, null, null);
523528
var result = new SessionAgentSelectResult(agent);
524529
assertEquals("selected", result.agent().name());
525530
}
@@ -638,7 +643,7 @@ void sessionFsStatResult_record() {
638643
@Test
639644
void sessionHistoryCompactResult_nested() {
640645
var ctx = new HistoryCompactContextWindow(100000L, 5000L, 20L, 1000L, 3000L, 500L);
641-
var result = new SessionHistoryCompactResult(true, 2000L, 5L, ctx);
646+
var result = new SessionHistoryCompactResult(true, 2000L, 5L, null, ctx);
642647
assertTrue(result.success());
643648
assertEquals(2000L, result.tokensRemoved());
644649
assertEquals(5L, result.messagesRemoved());
@@ -715,7 +720,7 @@ void sessionModeSetResult_enum() {
715720

716721
@Test
717722
void sessionModelGetCurrentResult_record() {
718-
var result = new SessionModelGetCurrentResult("claude-sonnet-4.5");
723+
var result = new SessionModelGetCurrentResult("claude-sonnet-4.5", null);
719724
assertEquals("claude-sonnet-4.5", result.modelId());
720725
}
721726

@@ -786,7 +791,7 @@ void sessionSkillsEnableResult_empty() {
786791

787792
@Test
788793
void sessionSkillsListResult_nested() {
789-
var item = new Skill("deploy", "Deploy the app", SkillSource.PROJECT, true, true, "/skills/deploy.md");
794+
var item = new Skill("deploy", "Deploy the app", SkillSource.PROJECT, true, true, "/skills/deploy.md", null);
790795
var result = new SessionSkillsListResult(List.of(item));
791796
assertEquals(1, result.skills().size());
792797
assertEquals("deploy", result.skills().get(0).name());
@@ -832,9 +837,9 @@ void sessionUiHandlePendingElicitationResult_record() {
832837

833838
@Test
834839
void sessionUsageGetMetricsResult_nested() {
835-
var changes = new UsageMetricsCodeChanges(100L, 50L, 5L);
836-
var result = new SessionUsageGetMetricsResult(0.5, 10L, null, null, 2000.0, 1700000000000L, changes, null,
837-
"gpt-5", 1000L, 500L);
840+
var changes = new UsageMetricsCodeChanges(100L, 50L, 5L, null);
841+
var result = new SessionUsageGetMetricsResult(0.5, 10L, null, null, 2000L, null, changes, null, "gpt-5", 1000L,
842+
500L);
838843
assertEquals(0.5, result.totalPremiumRequestCost());
839844
assertEquals(10L, result.totalUserRequests());
840845
assertNotNull(result.codeChanges());

0 commit comments

Comments
 (0)