From a932da1201d3c2dffd44f204facfbc1f6bc70163 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 6 May 2026 15:29:14 +0000
Subject: [PATCH 1/2] Update @github/copilot to 1.0.42
- Updated nodejs and test harness dependencies
- Re-ran code generators
- Formatted generated code
---
dotnet/src/Generated/SessionEvents.cs | 61 +++++++++++++++++
go/generated_session_events.go | 36 ++++++++++
nodejs/package-lock.json | 56 +++++++--------
nodejs/package.json | 2 +-
nodejs/samples/package-lock.json | 2 +-
nodejs/src/generated/session-events.ts | 80 ++++++++++++++++++++++
python/copilot/generated/session_events.py | 57 ++++++++++++++-
rust/src/generated/session_events.rs | 31 +++++++++
test/harness/package-lock.json | 56 +++++++--------
test/harness/package.json | 2 +-
10 files changed, 323 insertions(+), 60 deletions(-)
diff --git a/dotnet/src/Generated/SessionEvents.cs b/dotnet/src/Generated/SessionEvents.cs
index aabc6afce..efb647740 100644
--- a/dotnet/src/Generated/SessionEvents.cs
+++ b/dotnet/src/Generated/SessionEvents.cs
@@ -74,6 +74,8 @@ namespace GitHub.Copilot.SDK;
[JsonDerivedType(typeof(SessionPlanChangedEvent), "session.plan_changed")]
[JsonDerivedType(typeof(SessionRemoteSteerableChangedEvent), "session.remote_steerable_changed")]
[JsonDerivedType(typeof(SessionResumeEvent), "session.resume")]
+[JsonDerivedType(typeof(SessionScheduleCancelledEvent), "session.schedule_cancelled")]
+[JsonDerivedType(typeof(SessionScheduleCreatedEvent), "session.schedule_created")]
[JsonDerivedType(typeof(SessionShutdownEvent), "session.shutdown")]
[JsonDerivedType(typeof(SessionSkillsLoadedEvent), "session.skills_loaded")]
[JsonDerivedType(typeof(SessionSnapshotRewindEvent), "session.snapshot_rewind")]
@@ -221,6 +223,32 @@ public partial class SessionTitleChangedEvent : SessionEvent
public required SessionTitleChangedData Data { get; set; }
}
+/// Scheduled prompt registered via /every.
+/// Represents the session.schedule_created event.
+public partial class SessionScheduleCreatedEvent : SessionEvent
+{
+ ///
+ [JsonIgnore]
+ public override string Type => "session.schedule_created";
+
+ /// The session.schedule_created event payload.
+ [JsonPropertyName("data")]
+ public required SessionScheduleCreatedData Data { get; set; }
+}
+
+/// Scheduled prompt cancelled from the schedule manager dialog.
+/// Represents the session.schedule_cancelled event.
+public partial class SessionScheduleCancelledEvent : SessionEvent
+{
+ ///
+ [JsonIgnore]
+ public override string Type => "session.schedule_cancelled";
+
+ /// The session.schedule_cancelled event payload.
+ [JsonPropertyName("data")]
+ public required SessionScheduleCancelledData Data { get; set; }
+}
+
/// Informational message for timeline display with categorization.
/// Represents the session.info event.
public partial class SessionInfoEvent : SessionEvent
@@ -1314,6 +1342,30 @@ public partial class SessionTitleChangedData
public required string Title { get; set; }
}
+/// Scheduled prompt registered via /every.
+public partial class SessionScheduleCreatedData
+{
+ /// Sequential id assigned to the scheduled prompt within the session.
+ [JsonPropertyName("id")]
+ public required long Id { get; set; }
+
+ /// Interval between ticks in milliseconds.
+ [JsonPropertyName("intervalMs")]
+ public required long IntervalMs { get; set; }
+
+ /// Prompt text that gets enqueued on every tick.
+ [JsonPropertyName("prompt")]
+ public required string Prompt { get; set; }
+}
+
+/// Scheduled prompt cancelled from the schedule manager dialog.
+public partial class SessionScheduleCancelledData
+{
+ /// Id of the scheduled prompt that was cancelled.
+ [JsonPropertyName("id")]
+ public required long Id { get; set; }
+}
+
/// Informational message for timeline display with categorization.
public partial class SessionInfoData
{
@@ -3344,6 +3396,11 @@ public partial class AssistantMessageToolRequest
[JsonPropertyName("mcpServerName")]
public string? McpServerName { get; set; }
+ /// Original tool name on the MCP server, when the tool is an MCP tool.
+ [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+ [JsonPropertyName("mcpToolName")]
+ public string? McpToolName { get; set; }
+
/// Name of the tool being invoked.
[JsonPropertyName("name")]
public required string Name { get; set; }
@@ -5300,6 +5357,10 @@ public enum ExtensionsLoadedExtensionStatus
[JsonSerializable(typeof(SessionRemoteSteerableChangedEvent))]
[JsonSerializable(typeof(SessionResumeData))]
[JsonSerializable(typeof(SessionResumeEvent))]
+[JsonSerializable(typeof(SessionScheduleCancelledData))]
+[JsonSerializable(typeof(SessionScheduleCancelledEvent))]
+[JsonSerializable(typeof(SessionScheduleCreatedData))]
+[JsonSerializable(typeof(SessionScheduleCreatedEvent))]
[JsonSerializable(typeof(SessionShutdownData))]
[JsonSerializable(typeof(SessionShutdownEvent))]
[JsonSerializable(typeof(SessionSkillsLoadedData))]
diff --git a/go/generated_session_events.go b/go/generated_session_events.go
index ce60561e9..6844b975a 100644
--- a/go/generated_session_events.go
+++ b/go/generated_session_events.go
@@ -111,6 +111,18 @@ func (e *SessionEvent) UnmarshalJSON(data []byte) error {
return err
}
e.Data = &d
+ case SessionEventTypeSessionScheduleCreated:
+ var d SessionScheduleCreatedData
+ if err := json.Unmarshal(raw.Data, &d); err != nil {
+ return err
+ }
+ e.Data = &d
+ case SessionEventTypeSessionScheduleCancelled:
+ var d SessionScheduleCancelledData
+ if err := json.Unmarshal(raw.Data, &d); err != nil {
+ return err
+ }
+ e.Data = &d
case SessionEventTypeSessionInfo:
var d SessionInfoData
if err := json.Unmarshal(raw.Data, &d); err != nil {
@@ -580,6 +592,8 @@ const (
SessionEventTypeSessionError SessionEventType = "session.error"
SessionEventTypeSessionIdle SessionEventType = "session.idle"
SessionEventTypeSessionTitleChanged SessionEventType = "session.title_changed"
+ SessionEventTypeSessionScheduleCreated SessionEventType = "session.schedule_created"
+ SessionEventTypeSessionScheduleCancelled SessionEventType = "session.schedule_cancelled"
SessionEventTypeSessionInfo SessionEventType = "session.info"
SessionEventTypeSessionWarning SessionEventType = "session.warning"
SessionEventTypeSessionModelChange SessionEventType = "session.model_change"
@@ -1216,6 +1230,26 @@ type SamplingRequestedData struct {
func (*SamplingRequestedData) sessionEventData() {}
+// Scheduled prompt cancelled from the schedule manager dialog
+type SessionScheduleCancelledData struct {
+ // Id of the scheduled prompt that was cancelled
+ ID int64 `json:"id"`
+}
+
+func (*SessionScheduleCancelledData) sessionEventData() {}
+
+// Scheduled prompt registered via /every
+type SessionScheduleCreatedData struct {
+ // Sequential id assigned to the scheduled prompt within the session
+ ID int64 `json:"id"`
+ // Interval between ticks in milliseconds
+ IntervalMs int64 `json:"intervalMs"`
+ // Prompt text that gets enqueued on every tick
+ Prompt string `json:"prompt"`
+}
+
+func (*SessionScheduleCreatedData) sessionEventData() {}
+
// Session capability change notification
type CapabilitiesChangedData struct {
// UI capability changes
@@ -1796,6 +1830,8 @@ type AssistantMessageToolRequest struct {
IntentionSummary *string `json:"intentionSummary,omitempty"`
// Name of the MCP server hosting this tool, when the tool is an MCP tool
McpServerName *string `json:"mcpServerName,omitempty"`
+ // Original tool name on the MCP server, when the tool is an MCP tool
+ McpToolName *string `json:"mcpToolName,omitempty"`
// Name of the tool being invoked
Name string `json:"name"`
// Unique identifier for this tool call
diff --git a/nodejs/package-lock.json b/nodejs/package-lock.json
index 87b471a6c..75a532e0f 100644
--- a/nodejs/package-lock.json
+++ b/nodejs/package-lock.json
@@ -9,7 +9,7 @@
"version": "0.1.8",
"license": "MIT",
"dependencies": {
- "@github/copilot": "^1.0.41-1",
+ "@github/copilot": "^1.0.42",
"vscode-jsonrpc": "^8.2.1",
"zod": "^4.3.6"
},
@@ -663,26 +663,26 @@
}
},
"node_modules/@github/copilot": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.41-1.tgz",
- "integrity": "sha512-95Qxeds7SAi96b4bK91PAdB13M39ZKpZDfWf69yJg6362RTCFNa24QvflLG+3f4Vojh8GD4h8EvxAYwgq4zdMQ==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.42.tgz",
+ "integrity": "sha512-ODW5+aJi595Tb2WUaAlshBoUkOBuh9MegXXwXzMoar+k9fZzzDy3oNJLFg7ni4UtkUZvj/WL/y3s5O+FlsF2HA==",
"license": "SEE LICENSE IN LICENSE.md",
"bin": {
"copilot": "npm-loader.js"
},
"optionalDependencies": {
- "@github/copilot-darwin-arm64": "1.0.41-1",
- "@github/copilot-darwin-x64": "1.0.41-1",
- "@github/copilot-linux-arm64": "1.0.41-1",
- "@github/copilot-linux-x64": "1.0.41-1",
- "@github/copilot-win32-arm64": "1.0.41-1",
- "@github/copilot-win32-x64": "1.0.41-1"
+ "@github/copilot-darwin-arm64": "1.0.42",
+ "@github/copilot-darwin-x64": "1.0.42",
+ "@github/copilot-linux-arm64": "1.0.42",
+ "@github/copilot-linux-x64": "1.0.42",
+ "@github/copilot-win32-arm64": "1.0.42",
+ "@github/copilot-win32-x64": "1.0.42"
}
},
"node_modules/@github/copilot-darwin-arm64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.41-1.tgz",
- "integrity": "sha512-9ExZaLv3/yi7Be9GnjhxJgmuklQhqT59014BsqsWt1lpTA1khJs8VyC5B+iP8TEOkFKvD/UXJNSP9PCE6n5inQ==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.42.tgz",
+ "integrity": "sha512-2w89QLRgMR7hWwV1KG3uXqu98WST6afJCfvtYtqvPdf6ZQC7Fj2HhPNCrMxZk/H8mZwTgYJeg30gZjvV1698EA==",
"cpu": [
"arm64"
],
@@ -696,9 +696,9 @@
}
},
"node_modules/@github/copilot-darwin-x64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.41-1.tgz",
- "integrity": "sha512-6ZretUFTcCPajzcZyQZixn2unVlN+sbtC6hULBYT6FLHrqSrjK4QN52eCtTYOz/kPbBUO4lj9YjT/v1gkgMDwQ==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.42.tgz",
+ "integrity": "sha512-G2//tgGSKXx3ZGMqe774UnewasYMh+j0ZeQ3injtuZpSpzN+OAuNkzwXpvFHprdbgekMb0oAPN+Xm3rHuQY8Xw==",
"cpu": [
"x64"
],
@@ -712,9 +712,9 @@
}
},
"node_modules/@github/copilot-linux-arm64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.41-1.tgz",
- "integrity": "sha512-iP/VbjvGMQvo0fudLHBpmp31nAmtGvq1tZWC+YEQ43D58n2miOXkiDR61Tn9PSPGTkNbrnTecE0mgBO2oePYPw==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.42.tgz",
+ "integrity": "sha512-Ai6J4hUKVuE5ztsLspp/I7ByXtL2V6tF+AOn0q+hHp1MOA5JLq5/G8PE+c0VzG69x4hkt1lROQDjvXJGY7sv+g==",
"cpu": [
"arm64"
],
@@ -728,9 +728,9 @@
}
},
"node_modules/@github/copilot-linux-x64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.41-1.tgz",
- "integrity": "sha512-DAVCL7pMxeRRHcVOcbpllDBn87zVgskHNqfWrdFPEcgfslx0bw7GkErO35jx/SLnehcwpdwHquqfkyDpnfRAqg==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.42.tgz",
+ "integrity": "sha512-yYfuL6Hk3uLQuIgfxpEMCyoowFq2Bew1EaXmvg4lnDjj95tvEmyMCX77aIZ2AKwBOgp1nMV7L1B1QL9/mw6BTA==",
"cpu": [
"x64"
],
@@ -744,9 +744,9 @@
}
},
"node_modules/@github/copilot-win32-arm64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.41-1.tgz",
- "integrity": "sha512-m+un4+m1MQlTbiaA6d+/1Aa0SBI85O+De6P/8RdrVCEaoLE0Uy10wZbiHk6GK+YN74B/9WGwW8YANVVaBXsDDw==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.42.tgz",
+ "integrity": "sha512-WgnV6AxsvbvZdNW/42JFikK/SqR1JMw6juRpGKXZr70ond/cHK6trtrmt3dXYPymBO14ppJMFdm4+chJzKGKMw==",
"cpu": [
"arm64"
],
@@ -760,9 +760,9 @@
}
},
"node_modules/@github/copilot-win32-x64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.41-1.tgz",
- "integrity": "sha512-9Yl56T/4Eo7etQ+98XxsYTIzPdkuN5SAD0mZN2SHjdK5h0mBJFXpEmsminSelFgUbTsMHb+srfSmvx5nFe0m0A==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.42.tgz",
+ "integrity": "sha512-J5jtrcYuODuD4LPPRHjOCMJGO6+vKZ71n8PTiHPCg9lpfThXDDXxrB7nDDkhxl23zSXlUrpWwkMI+a2Ax/AxGg==",
"cpu": [
"x64"
],
diff --git a/nodejs/package.json b/nodejs/package.json
index 4969ba23c..2d21a55e2 100644
--- a/nodejs/package.json
+++ b/nodejs/package.json
@@ -56,7 +56,7 @@
"author": "GitHub",
"license": "MIT",
"dependencies": {
- "@github/copilot": "^1.0.41-1",
+ "@github/copilot": "^1.0.42",
"vscode-jsonrpc": "^8.2.1",
"zod": "^4.3.6"
},
diff --git a/nodejs/samples/package-lock.json b/nodejs/samples/package-lock.json
index 0c86383f6..b7f4bdd8b 100644
--- a/nodejs/samples/package-lock.json
+++ b/nodejs/samples/package-lock.json
@@ -18,7 +18,7 @@
"version": "0.1.8",
"license": "MIT",
"dependencies": {
- "@github/copilot": "^1.0.41-1",
+ "@github/copilot": "^1.0.42",
"vscode-jsonrpc": "^8.2.1",
"zod": "^4.3.6"
},
diff --git a/nodejs/src/generated/session-events.ts b/nodejs/src/generated/session-events.ts
index df3702843..3668a3ca6 100644
--- a/nodejs/src/generated/session-events.ts
+++ b/nodejs/src/generated/session-events.ts
@@ -10,6 +10,8 @@ export type SessionEvent =
| ErrorEvent
| IdleEvent
| TitleChangedEvent
+ | ScheduleCreatedEvent
+ | ScheduleCancelledEvent
| InfoEvent
| WarningEvent
| ModelChangeEvent
@@ -585,6 +587,80 @@ export interface TitleChangedData {
*/
title: string;
}
+export interface ScheduleCreatedEvent {
+ /**
+ * Sub-agent instance identifier. Absent for events from the root/main agent and session-level events.
+ */
+ agentId?: string;
+ data: ScheduleCreatedData;
+ /**
+ * When true, the event is transient and not persisted to the session event log on disk
+ */
+ ephemeral?: boolean;
+ /**
+ * Unique event identifier (UUID v4), generated when the event is emitted
+ */
+ id: string;
+ /**
+ * ID of the chronologically preceding event in the session, forming a linked chain. Null for the first event.
+ */
+ parentId: string | null;
+ /**
+ * ISO 8601 timestamp when the event was created
+ */
+ timestamp: string;
+ type: "session.schedule_created";
+}
+/**
+ * Scheduled prompt registered via /every
+ */
+export interface ScheduleCreatedData {
+ /**
+ * Sequential id assigned to the scheduled prompt within the session
+ */
+ id: number;
+ /**
+ * Interval between ticks in milliseconds
+ */
+ intervalMs: number;
+ /**
+ * Prompt text that gets enqueued on every tick
+ */
+ prompt: string;
+}
+export interface ScheduleCancelledEvent {
+ /**
+ * Sub-agent instance identifier. Absent for events from the root/main agent and session-level events.
+ */
+ agentId?: string;
+ data: ScheduleCancelledData;
+ /**
+ * When true, the event is transient and not persisted to the session event log on disk
+ */
+ ephemeral?: boolean;
+ /**
+ * Unique event identifier (UUID v4), generated when the event is emitted
+ */
+ id: string;
+ /**
+ * ID of the chronologically preceding event in the session, forming a linked chain. Null for the first event.
+ */
+ parentId: string | null;
+ /**
+ * ISO 8601 timestamp when the event was created
+ */
+ timestamp: string;
+ type: "session.schedule_cancelled";
+}
+/**
+ * Scheduled prompt cancelled from the schedule manager dialog
+ */
+export interface ScheduleCancelledData {
+ /**
+ * Id of the scheduled prompt that was cancelled
+ */
+ id: number;
+}
export interface InfoEvent {
/**
* Sub-agent instance identifier. Absent for events from the root/main agent and session-level events.
@@ -1952,6 +2028,10 @@ export interface AssistantMessageToolRequest {
* Name of the MCP server hosting this tool, when the tool is an MCP tool
*/
mcpServerName?: string;
+ /**
+ * Original tool name on the MCP server, when the tool is an MCP tool
+ */
+ mcpToolName?: string;
/**
* Name of the tool being invoked
*/
diff --git a/python/copilot/generated/session_events.py b/python/copilot/generated/session_events.py
index 55646eba8..1fe1af32b 100644
--- a/python/copilot/generated/session_events.py
+++ b/python/copilot/generated/session_events.py
@@ -110,6 +110,8 @@ class SessionEventType(Enum):
SESSION_ERROR = "session.error"
SESSION_IDLE = "session.idle"
SESSION_TITLE_CHANGED = "session.title_changed"
+ SESSION_SCHEDULE_CREATED = "session.schedule_created"
+ SESSION_SCHEDULE_CANCELLED = "session.schedule_cancelled"
SESSION_INFO = "session.info"
SESSION_WARNING = "session.warning"
SESSION_MODEL_CHANGE = "session.model_change"
@@ -428,6 +430,7 @@ class AssistantMessageToolRequest:
arguments: Any = None
intention_summary: str | None = None
mcp_server_name: str | None = None
+ mcp_tool_name: str | None = None
tool_title: str | None = None
type: AssistantMessageToolRequestType | None = None
@@ -439,6 +442,7 @@ def from_dict(obj: Any) -> "AssistantMessageToolRequest":
arguments = obj.get("arguments")
intention_summary = from_union([from_none, from_str], obj.get("intentionSummary"))
mcp_server_name = from_union([from_none, from_str], obj.get("mcpServerName"))
+ mcp_tool_name = from_union([from_none, from_str], obj.get("mcpToolName"))
tool_title = from_union([from_none, from_str], obj.get("toolTitle"))
type = from_union([from_none, lambda x: parse_enum(AssistantMessageToolRequestType, x)], obj.get("type"))
return AssistantMessageToolRequest(
@@ -447,6 +451,7 @@ def from_dict(obj: Any) -> "AssistantMessageToolRequest":
arguments=arguments,
intention_summary=intention_summary,
mcp_server_name=mcp_server_name,
+ mcp_tool_name=mcp_tool_name,
tool_title=tool_title,
type=type,
)
@@ -461,6 +466,8 @@ def to_dict(self) -> dict:
result["intentionSummary"] = from_union([from_none, from_str], self.intention_summary)
if self.mcp_server_name is not None:
result["mcpServerName"] = from_union([from_none, from_str], self.mcp_server_name)
+ if self.mcp_tool_name is not None:
+ result["mcpToolName"] = from_union([from_none, from_str], self.mcp_tool_name)
if self.tool_title is not None:
result["toolTitle"] = from_union([from_none, from_str], self.tool_title)
if self.type is not None:
@@ -2825,6 +2832,52 @@ def to_dict(self) -> dict:
return result
+@dataclass
+class SessionScheduleCancelledData:
+ "Scheduled prompt cancelled from the schedule manager dialog"
+ id: int
+
+ @staticmethod
+ def from_dict(obj: Any) -> "SessionScheduleCancelledData":
+ assert isinstance(obj, dict)
+ id = from_int(obj.get("id"))
+ return SessionScheduleCancelledData(
+ id=id,
+ )
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["id"] = to_int(self.id)
+ return result
+
+
+@dataclass
+class SessionScheduleCreatedData:
+ "Scheduled prompt registered via /every"
+ id: int
+ interval_ms: int
+ prompt: str
+
+ @staticmethod
+ def from_dict(obj: Any) -> "SessionScheduleCreatedData":
+ assert isinstance(obj, dict)
+ id = from_int(obj.get("id"))
+ interval_ms = from_int(obj.get("intervalMs"))
+ prompt = from_str(obj.get("prompt"))
+ return SessionScheduleCreatedData(
+ id=id,
+ interval_ms=interval_ms,
+ prompt=prompt,
+ )
+
+ def to_dict(self) -> dict:
+ result: dict = {}
+ result["id"] = to_int(self.id)
+ result["intervalMs"] = to_int(self.interval_ms)
+ result["prompt"] = from_str(self.prompt)
+ return result
+
+
@dataclass
class SessionShutdownData:
"Session termination metrics including usage statistics, code changes, and shutdown reason"
@@ -4764,7 +4817,7 @@ class WorkspaceFileChangedOperation(Enum):
UPDATE = "update"
-SessionEventData = SessionStartData | SessionResumeData | SessionRemoteSteerableChangedData | SessionErrorData | SessionIdleData | SessionTitleChangedData | SessionInfoData | SessionWarningData | SessionModelChangeData | SessionModeChangedData | SessionPlanChangedData | SessionWorkspaceFileChangedData | SessionHandoffData | SessionTruncationData | SessionSnapshotRewindData | SessionShutdownData | SessionContextChangedData | SessionUsageInfoData | SessionCompactionStartData | SessionCompactionCompleteData | SessionTaskCompleteData | UserMessageData | PendingMessagesModifiedData | AssistantTurnStartData | AssistantIntentData | AssistantReasoningData | AssistantReasoningDeltaData | AssistantStreamingDeltaData | AssistantMessageData | AssistantMessageStartData | AssistantMessageDeltaData | AssistantTurnEndData | AssistantUsageData | ModelCallFailureData | AbortData | ToolUserRequestedData | ToolExecutionStartData | ToolExecutionPartialResultData | ToolExecutionProgressData | ToolExecutionCompleteData | SkillInvokedData | SubagentStartedData | SubagentCompletedData | SubagentFailedData | SubagentSelectedData | SubagentDeselectedData | HookStartData | HookEndData | SystemMessageData | SystemNotificationData | PermissionRequestedData | PermissionCompletedData | UserInputRequestedData | UserInputCompletedData | ElicitationRequestedData | ElicitationCompletedData | SamplingRequestedData | SamplingCompletedData | McpOauthRequiredData | McpOauthCompletedData | ExternalToolRequestedData | ExternalToolCompletedData | CommandQueuedData | CommandExecuteData | CommandCompletedData | AutoModeSwitchRequestedData | AutoModeSwitchCompletedData | CommandsChangedData | CapabilitiesChangedData | ExitPlanModeRequestedData | ExitPlanModeCompletedData | SessionToolsUpdatedData | SessionBackgroundTasksChangedData | SessionSkillsLoadedData | SessionCustomAgentsUpdatedData | SessionMcpServersLoadedData | SessionMcpServerStatusChangedData | SessionExtensionsLoadedData | RawSessionEventData | Data
+SessionEventData = SessionStartData | SessionResumeData | SessionRemoteSteerableChangedData | SessionErrorData | SessionIdleData | SessionTitleChangedData | SessionScheduleCreatedData | SessionScheduleCancelledData | SessionInfoData | SessionWarningData | SessionModelChangeData | SessionModeChangedData | SessionPlanChangedData | SessionWorkspaceFileChangedData | SessionHandoffData | SessionTruncationData | SessionSnapshotRewindData | SessionShutdownData | SessionContextChangedData | SessionUsageInfoData | SessionCompactionStartData | SessionCompactionCompleteData | SessionTaskCompleteData | UserMessageData | PendingMessagesModifiedData | AssistantTurnStartData | AssistantIntentData | AssistantReasoningData | AssistantReasoningDeltaData | AssistantStreamingDeltaData | AssistantMessageData | AssistantMessageStartData | AssistantMessageDeltaData | AssistantTurnEndData | AssistantUsageData | ModelCallFailureData | AbortData | ToolUserRequestedData | ToolExecutionStartData | ToolExecutionPartialResultData | ToolExecutionProgressData | ToolExecutionCompleteData | SkillInvokedData | SubagentStartedData | SubagentCompletedData | SubagentFailedData | SubagentSelectedData | SubagentDeselectedData | HookStartData | HookEndData | SystemMessageData | SystemNotificationData | PermissionRequestedData | PermissionCompletedData | UserInputRequestedData | UserInputCompletedData | ElicitationRequestedData | ElicitationCompletedData | SamplingRequestedData | SamplingCompletedData | McpOauthRequiredData | McpOauthCompletedData | ExternalToolRequestedData | ExternalToolCompletedData | CommandQueuedData | CommandExecuteData | CommandCompletedData | AutoModeSwitchRequestedData | AutoModeSwitchCompletedData | CommandsChangedData | CapabilitiesChangedData | ExitPlanModeRequestedData | ExitPlanModeCompletedData | SessionToolsUpdatedData | SessionBackgroundTasksChangedData | SessionSkillsLoadedData | SessionCustomAgentsUpdatedData | SessionMcpServersLoadedData | SessionMcpServerStatusChangedData | SessionExtensionsLoadedData | RawSessionEventData | Data
@dataclass
@@ -4796,6 +4849,8 @@ def from_dict(obj: Any) -> "SessionEvent":
case SessionEventType.SESSION_ERROR: data = SessionErrorData.from_dict(data_obj)
case SessionEventType.SESSION_IDLE: data = SessionIdleData.from_dict(data_obj)
case SessionEventType.SESSION_TITLE_CHANGED: data = SessionTitleChangedData.from_dict(data_obj)
+ case SessionEventType.SESSION_SCHEDULE_CREATED: data = SessionScheduleCreatedData.from_dict(data_obj)
+ case SessionEventType.SESSION_SCHEDULE_CANCELLED: data = SessionScheduleCancelledData.from_dict(data_obj)
case SessionEventType.SESSION_INFO: data = SessionInfoData.from_dict(data_obj)
case SessionEventType.SESSION_WARNING: data = SessionWarningData.from_dict(data_obj)
case SessionEventType.SESSION_MODEL_CHANGE: data = SessionModelChangeData.from_dict(data_obj)
diff --git a/rust/src/generated/session_events.rs b/rust/src/generated/session_events.rs
index 85be3731e..cf7c33c68 100644
--- a/rust/src/generated/session_events.rs
+++ b/rust/src/generated/session_events.rs
@@ -21,6 +21,10 @@ pub enum SessionEventType {
SessionIdle,
#[serde(rename = "session.title_changed")]
SessionTitleChanged,
+ #[serde(rename = "session.schedule_created")]
+ SessionScheduleCreated,
+ #[serde(rename = "session.schedule_cancelled")]
+ SessionScheduleCancelled,
#[serde(rename = "session.info")]
SessionInfo,
#[serde(rename = "session.warning")]
@@ -188,6 +192,10 @@ pub enum SessionEventData {
SessionIdle(SessionIdleData),
#[serde(rename = "session.title_changed")]
SessionTitleChanged(SessionTitleChangedData),
+ #[serde(rename = "session.schedule_created")]
+ SessionScheduleCreated(SessionScheduleCreatedData),
+ #[serde(rename = "session.schedule_cancelled")]
+ SessionScheduleCancelled(SessionScheduleCancelledData),
#[serde(rename = "session.info")]
SessionInfo(SessionInfoData),
#[serde(rename = "session.warning")]
@@ -505,6 +513,26 @@ pub struct SessionTitleChangedData {
pub title: String,
}
+/// Scheduled prompt registered via /every
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct SessionScheduleCreatedData {
+ /// Sequential id assigned to the scheduled prompt within the session
+ pub id: i64,
+ /// Interval between ticks in milliseconds
+ pub interval_ms: i64,
+ /// Prompt text that gets enqueued on every tick
+ pub prompt: String,
+}
+
+/// Scheduled prompt cancelled from the schedule manager dialog
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct SessionScheduleCancelledData {
+ /// Id of the scheduled prompt that was cancelled
+ pub id: i64,
+}
+
/// Informational message for timeline display with categorization
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
@@ -1039,6 +1067,9 @@ pub struct AssistantMessageToolRequest {
/// Name of the MCP server hosting this tool, when the tool is an MCP tool
#[serde(skip_serializing_if = "Option::is_none")]
pub mcp_server_name: Option,
+ /// Original tool name on the MCP server, when the tool is an MCP tool
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub mcp_tool_name: Option,
/// Name of the tool being invoked
pub name: String,
/// Unique identifier for this tool call
diff --git a/test/harness/package-lock.json b/test/harness/package-lock.json
index 7259fbacc..c5bbaabae 100644
--- a/test/harness/package-lock.json
+++ b/test/harness/package-lock.json
@@ -9,7 +9,7 @@
"version": "1.0.0",
"license": "ISC",
"devDependencies": {
- "@github/copilot": "^1.0.41-1",
+ "@github/copilot": "^1.0.42",
"@modelcontextprotocol/sdk": "^1.26.0",
"@types/node": "^25.3.3",
"@types/node-forge": "^1.3.14",
@@ -464,27 +464,27 @@
}
},
"node_modules/@github/copilot": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.41-1.tgz",
- "integrity": "sha512-95Qxeds7SAi96b4bK91PAdB13M39ZKpZDfWf69yJg6362RTCFNa24QvflLG+3f4Vojh8GD4h8EvxAYwgq4zdMQ==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.42.tgz",
+ "integrity": "sha512-ODW5+aJi595Tb2WUaAlshBoUkOBuh9MegXXwXzMoar+k9fZzzDy3oNJLFg7ni4UtkUZvj/WL/y3s5O+FlsF2HA==",
"dev": true,
"license": "SEE LICENSE IN LICENSE.md",
"bin": {
"copilot": "npm-loader.js"
},
"optionalDependencies": {
- "@github/copilot-darwin-arm64": "1.0.41-1",
- "@github/copilot-darwin-x64": "1.0.41-1",
- "@github/copilot-linux-arm64": "1.0.41-1",
- "@github/copilot-linux-x64": "1.0.41-1",
- "@github/copilot-win32-arm64": "1.0.41-1",
- "@github/copilot-win32-x64": "1.0.41-1"
+ "@github/copilot-darwin-arm64": "1.0.42",
+ "@github/copilot-darwin-x64": "1.0.42",
+ "@github/copilot-linux-arm64": "1.0.42",
+ "@github/copilot-linux-x64": "1.0.42",
+ "@github/copilot-win32-arm64": "1.0.42",
+ "@github/copilot-win32-x64": "1.0.42"
}
},
"node_modules/@github/copilot-darwin-arm64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.41-1.tgz",
- "integrity": "sha512-9ExZaLv3/yi7Be9GnjhxJgmuklQhqT59014BsqsWt1lpTA1khJs8VyC5B+iP8TEOkFKvD/UXJNSP9PCE6n5inQ==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.42.tgz",
+ "integrity": "sha512-2w89QLRgMR7hWwV1KG3uXqu98WST6afJCfvtYtqvPdf6ZQC7Fj2HhPNCrMxZk/H8mZwTgYJeg30gZjvV1698EA==",
"cpu": [
"arm64"
],
@@ -499,9 +499,9 @@
}
},
"node_modules/@github/copilot-darwin-x64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.41-1.tgz",
- "integrity": "sha512-6ZretUFTcCPajzcZyQZixn2unVlN+sbtC6hULBYT6FLHrqSrjK4QN52eCtTYOz/kPbBUO4lj9YjT/v1gkgMDwQ==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.42.tgz",
+ "integrity": "sha512-G2//tgGSKXx3ZGMqe774UnewasYMh+j0ZeQ3injtuZpSpzN+OAuNkzwXpvFHprdbgekMb0oAPN+Xm3rHuQY8Xw==",
"cpu": [
"x64"
],
@@ -516,9 +516,9 @@
}
},
"node_modules/@github/copilot-linux-arm64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.41-1.tgz",
- "integrity": "sha512-iP/VbjvGMQvo0fudLHBpmp31nAmtGvq1tZWC+YEQ43D58n2miOXkiDR61Tn9PSPGTkNbrnTecE0mgBO2oePYPw==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.42.tgz",
+ "integrity": "sha512-Ai6J4hUKVuE5ztsLspp/I7ByXtL2V6tF+AOn0q+hHp1MOA5JLq5/G8PE+c0VzG69x4hkt1lROQDjvXJGY7sv+g==",
"cpu": [
"arm64"
],
@@ -533,9 +533,9 @@
}
},
"node_modules/@github/copilot-linux-x64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.41-1.tgz",
- "integrity": "sha512-DAVCL7pMxeRRHcVOcbpllDBn87zVgskHNqfWrdFPEcgfslx0bw7GkErO35jx/SLnehcwpdwHquqfkyDpnfRAqg==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.42.tgz",
+ "integrity": "sha512-yYfuL6Hk3uLQuIgfxpEMCyoowFq2Bew1EaXmvg4lnDjj95tvEmyMCX77aIZ2AKwBOgp1nMV7L1B1QL9/mw6BTA==",
"cpu": [
"x64"
],
@@ -550,9 +550,9 @@
}
},
"node_modules/@github/copilot-win32-arm64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.41-1.tgz",
- "integrity": "sha512-m+un4+m1MQlTbiaA6d+/1Aa0SBI85O+De6P/8RdrVCEaoLE0Uy10wZbiHk6GK+YN74B/9WGwW8YANVVaBXsDDw==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.42.tgz",
+ "integrity": "sha512-WgnV6AxsvbvZdNW/42JFikK/SqR1JMw6juRpGKXZr70ond/cHK6trtrmt3dXYPymBO14ppJMFdm4+chJzKGKMw==",
"cpu": [
"arm64"
],
@@ -567,9 +567,9 @@
}
},
"node_modules/@github/copilot-win32-x64": {
- "version": "1.0.41-1",
- "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.41-1.tgz",
- "integrity": "sha512-9Yl56T/4Eo7etQ+98XxsYTIzPdkuN5SAD0mZN2SHjdK5h0mBJFXpEmsminSelFgUbTsMHb+srfSmvx5nFe0m0A==",
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.42.tgz",
+ "integrity": "sha512-J5jtrcYuODuD4LPPRHjOCMJGO6+vKZ71n8PTiHPCg9lpfThXDDXxrB7nDDkhxl23zSXlUrpWwkMI+a2Ax/AxGg==",
"cpu": [
"x64"
],
diff --git a/test/harness/package.json b/test/harness/package.json
index 2b483cb44..874aeca16 100644
--- a/test/harness/package.json
+++ b/test/harness/package.json
@@ -11,7 +11,7 @@
"test": "vitest run"
},
"devDependencies": {
- "@github/copilot": "^1.0.41-1",
+ "@github/copilot": "^1.0.42",
"@modelcontextprotocol/sdk": "^1.26.0",
"@types/node": "^25.3.3",
"@types/node-forge": "^1.3.14",
From 1c29903e7bd4ec9518b4d0a426aa60b651bba375 Mon Sep 17 00:00:00 2001
From: Stephen Toub
Date: Wed, 6 May 2026 11:41:58 -0400
Subject: [PATCH 2/2] fix: increase ui_elicitation e2e test timeouts from 20s
to 60s
The test 'session created with onElicitationRequest reports elicitation
capability' was flaky on Windows CI runners, timing out at 20s. The
explicit 20s timeout was lower than the global vitest default of 30s.
Increase all timeouts in this file to 60s to account for slower Windows
CI runners.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
nodejs/test/e2e/ui_elicitation.e2e.test.ts | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/nodejs/test/e2e/ui_elicitation.e2e.test.ts b/nodejs/test/e2e/ui_elicitation.e2e.test.ts
index 8651c5bd2..e30dbdacd 100644
--- a/nodejs/test/e2e/ui_elicitation.e2e.test.ts
+++ b/nodejs/test/e2e/ui_elicitation.e2e.test.ts
@@ -27,7 +27,7 @@ describe("UI Elicitation Callback", async () => {
it(
"session created with onElicitationRequest reports elicitation capability",
- { timeout: 20_000 },
+ { timeout: 60_000 },
async () => {
const session = await client.createSession({
onPermissionRequest: approveAll,
@@ -40,7 +40,7 @@ describe("UI Elicitation Callback", async () => {
it(
"session created without onElicitationRequest reports no elicitation capability",
- { timeout: 20_000 },
+ { timeout: 60_000 },
async () => {
const session = await client.createSession({
onPermissionRequest: approveAll,
@@ -73,7 +73,7 @@ describe("UI Elicitation Multi-Client Capabilities", async () => {
it(
"capabilities.changed fires when second client joins with elicitation handler",
- { timeout: 20_000 },
+ { timeout: 60_000 },
async () => {
// Client1 creates session without elicitation
const session1 = await client1.createSession({
@@ -112,7 +112,7 @@ describe("UI Elicitation Multi-Client Capabilities", async () => {
it(
"capabilities.changed fires when elicitation provider disconnects",
- { timeout: 20_000 },
+ { timeout: 60_000 },
async () => {
// Client1 creates session without elicitation
const session1 = await client1.createSession({