@@ -5,7 +5,7 @@ Manage multiple independent conversations simultaneously.
55> ** Runnable example:** [ recipe/MultipleSessions.java] ( recipe/MultipleSessions.java )
66>
77> ``` bash
8- > jbang MultipleSessions.java
8+ > jbang recipe/ MultipleSessions.java
99> ` ` `
1010
1111# # Example scenario
@@ -21,35 +21,39 @@ You need to run multiple conversations in parallel, each with its own context an
2121import com.github.copilot.sdk.* ;
2222import com.github.copilot.sdk.json.* ;
2323
24- var client = new CopilotClient ();
25- client.start().get ();
26-
27- // Create multiple independent sessions
28- var session1 = client.createSession(new SessionConfig ()
29- .setModel(" gpt-5" )
30- .setOnPermissionRequest(PermissionHandler.APPROVE_ALL)).get ();
31- var session2 = client.createSession(new SessionConfig ()
32- .setModel(" gpt-5" )
33- .setOnPermissionRequest(PermissionHandler.APPROVE_ALL)).get ();
34- var session3 = client.createSession(new SessionConfig ()
35- .setModel(" claude-sonnet-4.5" )
36- .setOnPermissionRequest(PermissionHandler.APPROVE_ALL)).get ();
37-
38- // Each session maintains its own conversation history
39- session1.sendAndWait(new MessageOptions ().setPrompt(" You are helping with a Python project" )).get();
40- session2.sendAndWait(new MessageOptions ().setPrompt(" You are helping with a TypeScript project" )).get();
41- session3.sendAndWait(new MessageOptions ().setPrompt(" You are helping with a Go project" )).get();
42-
43- // Follow-up messages stay in their respective contexts
44- session1.sendAndWait(new MessageOptions ().setPrompt(" How do I create a virtual environment?" )).get();
45- session2.sendAndWait(new MessageOptions ().setPrompt(" How do I set up tsconfig?" )).get();
46- session3.sendAndWait(new MessageOptions ().setPrompt(" How do I initialize a module?" )).get();
47-
48- // Clean up all sessions
49- session1.destroy().get ();
50- session2.destroy().get ();
51- session3.destroy().get ();
52- client.stop().get ();
24+ public class MultipleSessions {
25+ public static void main(String[] args) throws Exception {
26+ var client = new CopilotClient ();
27+ client.start().get ();
28+
29+ // Create multiple independent sessions
30+ var session1 = client.createSession(new SessionConfig ()
31+ .setModel(" gpt-5" )
32+ .setOnPermissionRequest(PermissionHandler.APPROVE_ALL)).get ();
33+ var session2 = client.createSession(new SessionConfig ()
34+ .setModel(" gpt-5" )
35+ .setOnPermissionRequest(PermissionHandler.APPROVE_ALL)).get ();
36+ var session3 = client.createSession(new SessionConfig ()
37+ .setModel(" claude-sonnet-4.5" )
38+ .setOnPermissionRequest(PermissionHandler.APPROVE_ALL)).get ();
39+
40+ // Each session maintains its own conversation history
41+ session1.sendAndWait(new MessageOptions ().setPrompt(" You are helping with a Python project" )).get();
42+ session2.sendAndWait(new MessageOptions ().setPrompt(" You are helping with a TypeScript project" )).get();
43+ session3.sendAndWait(new MessageOptions ().setPrompt(" You are helping with a Go project" )).get();
44+
45+ // Follow-up messages stay in their respective contexts
46+ session1.sendAndWait(new MessageOptions ().setPrompt(" How do I create a virtual environment?" )).get();
47+ session2.sendAndWait(new MessageOptions ().setPrompt(" How do I set up tsconfig?" )).get();
48+ session3.sendAndWait(new MessageOptions ().setPrompt(" How do I initialize a module?" )).get();
49+
50+ // Clean up all sessions
51+ session1.destroy().get ();
52+ session2.destroy().get ();
53+ session3.destroy().get ();
54+ client.stop().get ();
55+ }
56+ }
5357` ` `
5458
5559# # Custom session IDs
0 commit comments