You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reword pending-resume skip messages to match actual runtime contract
The previous wording ('Pending runtime fix') implied a runtime change was being tracked separately. That isn't accurate: runtime 1.0.56 (copilot-agent-runtime PR #9040) intentionally cleans up the session when the last RPC client disconnects, and there is no in-flight fix planned.
The OLD tests model same-process ForceStop+resume and rely on the old behavior where the session stayed alive in the runtime process. They need to be redesigned to either keep an owner connected (warm resume) or to model true process-restart resume from persisted session state.
No code change beyond the skip-reason text; tests remain skipped while the redesign is figured out.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
// TODO: Re-enable once the runtime restores warm-resume behavior for pending permission
23
-
// requests after the original client disconnects. Runtime PR #9040 (commit b8e1220b45)
24
-
// now cleans up session state when the last RPC owner disconnects, causing
25
-
// HandlePendingPermissionRequest to return success=false on resume. A runtime-side
26
-
// fix is being tracked separately.
27
-
[Fact(Skip="Pending runtime fix: cold cleanup contract makes HandlePendingPermissionRequest return success=false after disconnect+resume.")]
22
+
// Skipped after the runtime 1.0.56 bump. Runtime PR #9040 (commit b8e1220b45) changed
23
+
// SDKServer.handleConnectionClosed to tear down the session when the last RPC client
24
+
// disconnects, so the in-memory pending permission request is gone before the resumed
25
+
// client can satisfy it and HandlePendingPermissionRequest returns success=false. This
26
+
// test models same-process ForceStop+resume; it needs to be redesigned to either keep
27
+
// an owner connected (warm resume) or to model a true process restart against the
28
+
// persisted session state.
29
+
[Fact(Skip="Runtime 1.0.56 cleans up the session on last-client disconnect (copilot-agent-runtime PR #9040), so the in-memory pending request is gone before resume can satisfy it. Test needs redesign.")]
[Fact(Skip="Pending runtime fix: cold cleanup contract makes HandlePendingToolCall return success=false after disconnect+resume.")]
98
+
// Skipped for the same reason as Should_Continue_Pending_Permission_Request_After_Resume:
99
+
// runtime 1.0.56 (copilot-agent-runtime PR #9040) tears down the session when the last
100
+
// RPC client disconnects, so the in-memory pending external tool call is gone before
101
+
// the resumed client can satisfy it. Needs redesign to keep an owner connected (warm)
102
+
// or to model true process-restart resume from persisted state.
103
+
[Fact(Skip="Runtime 1.0.56 cleans up the session on last-client disconnect (copilot-agent-runtime PR #9040), so the in-memory pending tool call is gone before resume can satisfy it. Test needs redesign.")]
t.Run("should continue pending permission request after resume", func(t*testing.T) {
28
-
// TODO: Re-enable once the runtime restores warm-resume behavior for pending
29
-
// permission requests after the original client disconnects. Runtime PR #9040
30
-
// (commit b8e1220b45) now cleans up session state when the last RPC owner
31
-
// disconnects, causing HandlePendingPermissionRequest to return Success=false
32
-
// on resume. A runtime-side fix is being tracked separately.
33
-
t.Skip("Pending runtime fix: cold cleanup contract makes HandlePendingPermissionRequest return Success=false after disconnect+resume.")
28
+
// Skipped after the runtime 1.0.56 bump. Runtime PR #9040 (commit b8e1220b45)
29
+
// changed SDKServer.handleConnectionClosed to tear down the session when the
30
+
// last RPC client disconnects, so the in-memory pending permission request is
31
+
// gone before the resumed client can satisfy it and HandlePendingPermissionRequest
32
+
// returns Success=false. This test models same-process ForceStop+resume; it
33
+
// needs to be redesigned to either keep an owner connected (warm resume) or to
34
+
// model a true process restart against the persisted session state.
35
+
t.Skip("Runtime 1.0.56 cleans up the session on last-client disconnect (copilot-agent-runtime PR #9040), so the in-memory pending request is gone before resume can satisfy it. Test needs redesign.")
t.Run("should continue pending external tool request after resume", func(t*testing.T) {
148
-
// TODO: Re-enable once the runtime restores warm-resume behavior for pending
149
-
// external tool calls after the original client disconnects. Same root cause as
150
-
// "should continue pending permission request after resume" above.
151
-
t.Skip("Pending runtime fix: cold cleanup contract makes HandlePendingToolCall return Success=false after disconnect+resume.")
150
+
// Skipped for the same reason as "should continue pending permission request
151
+
// after resume": runtime 1.0.56 (copilot-agent-runtime PR #9040) tears down
152
+
// the session when the last RPC client disconnects, so the in-memory pending
153
+
// external tool call is gone before the resumed client can satisfy it. Needs
154
+
// redesign to keep an owner connected (warm) or to model true process-restart
155
+
// resume from persisted state.
156
+
t.Skip("Runtime 1.0.56 cleans up the session on last-client disconnect (copilot-agent-runtime PR #9040), so the in-memory pending tool call is gone before resume can satisfy it. Test needs redesign.")
0 commit comments