Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 9 additions & 11 deletions nodejs/test/e2e/session.e2e.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -639,19 +639,17 @@ describe("Sessions", () => {
await using session = await client.createSession({ onPermissionRequest: approveAll });

let disposed = false;
const disposedPromise = new Promise<void>((resolve) => {
session.on((event) => {
if (event.type === "user.message") {
// Call disconnect from within a handler — must not deadlock.
session.disconnect().then(() => {
disposed = true;
resolve();
});
}
});
let disposedPromise: Promise<void> | undefined;
session.on((event) => {
if (event.type === "session.idle") {
// Isolate handler reentrancy from active-turn cancellation.
disposedPromise = session.disconnect().then(() => {
disposed = true;
});
}
});

await session.send({ prompt: "What is 1+1?" });
await session.sendAndWait({ prompt: "What is 1+1?" });

// If this times out, we deadlocked.
await vi.waitFor(() => expect(disposed).toBe(true), { timeout: 10_000 });
Expand Down
2 changes: 2 additions & 0 deletions python/e2e/test_mcp_and_agents_e2e.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,8 @@ async def test_should_accept_custom_agent_configuration_on_session_resume(
)
session_id = session1.session_id
await session1.send_and_wait("What is 1+1?")
# End the first attachment before testing resume-time reconfiguration.
await session1.disconnect()

# Resume with custom agents
custom_agents: list[CustomAgentConfig] = [
Expand Down
Loading