From 1a296e45bee67377b1cdc16da9131c78bae614ff Mon Sep 17 00:00:00 2001 From: qmuntal Date: Mon, 23 Mar 2026 10:18:05 +0100 Subject: [PATCH 1/2] Session.SetModel shouldn't accept a variadic option --- go/internal/e2e/rpc_test.go | 4 ++-- go/internal/e2e/session_test.go | 3 ++- go/session.go | 13 ++++++------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/go/internal/e2e/rpc_test.go b/go/internal/e2e/rpc_test.go index 3d69b97ad..8aba98be1 100644 --- a/go/internal/e2e/rpc_test.go +++ b/go/internal/e2e/rpc_test.go @@ -202,8 +202,8 @@ func TestSessionRpc(t *testing.T) { if err != nil { t.Fatalf("Failed to create session: %v", err) } - - if err := session.SetModel(t.Context(), "gpt-4.1", copilot.SetModelOptions{ReasoningEffort: "high"}); err != nil { + high := "high" + if err := session.SetModel(t.Context(), "gpt-4.1", &copilot.SetModelOptions{ReasoningEffort: &high}); err != nil { t.Fatalf("SetModel returned error: %v", err) } }) diff --git a/go/internal/e2e/session_test.go b/go/internal/e2e/session_test.go index 7f1817da9..f21ea307c 100644 --- a/go/internal/e2e/session_test.go +++ b/go/internal/e2e/session_test.go @@ -966,7 +966,8 @@ func TestSetModelWithReasoningEffort(t *testing.T) { } }) - if err := session.SetModel(t.Context(), "gpt-4.1", copilot.SetModelOptions{ReasoningEffort: "high"}); err != nil { + high := "high" + if err := session.SetModel(t.Context(), "gpt-4.1", &copilot.SetModelOptions{ReasoningEffort: &high}); err != nil { t.Fatalf("SetModel returned error: %v", err) } diff --git a/go/session.go b/go/session.go index 3a94a818e..5be626b52 100644 --- a/go/session.go +++ b/go/session.go @@ -792,7 +792,7 @@ func (s *Session) Abort(ctx context.Context) error { // SetModelOptions configures optional parameters for SetModel. type SetModelOptions struct { // ReasoningEffort sets the reasoning effort level for the new model (e.g., "low", "medium", "high", "xhigh"). - ReasoningEffort string + ReasoningEffort *string } // SetModel changes the model for this session. @@ -800,17 +800,16 @@ type SetModelOptions struct { // // Example: // -// if err := session.SetModel(context.Background(), "gpt-4.1"); err != nil { +// if err := session.SetModel(context.Background(), "gpt-4.1", nil); err != nil { // log.Printf("Failed to set model: %v", err) // } -// if err := session.SetModel(context.Background(), "claude-sonnet-4.6", SetModelOptions{ReasoningEffort: "high"}); err != nil { +// if err := session.SetModel(context.Background(), "claude-sonnet-4.6", &SetModelOptions{ReasoningEffort: new("high")}); err != nil { // log.Printf("Failed to set model: %v", err) // } -func (s *Session) SetModel(ctx context.Context, model string, opts ...SetModelOptions) error { +func (s *Session) SetModel(ctx context.Context, model string, opts *SetModelOptions) error { params := &rpc.SessionModelSwitchToParams{ModelID: model} - if len(opts) > 0 && opts[0].ReasoningEffort != "" { - re := opts[0].ReasoningEffort - params.ReasoningEffort = &re + if opts != nil { + params.ReasoningEffort = opts.ReasoningEffort } _, err := s.RPC.Model.SwitchTo(ctx, params) if err != nil { From 5c0a9dd828470cb8c68e46ef61eb2bd50c69a8f4 Mon Sep 17 00:00:00 2001 From: qmuntal Date: Mon, 23 Mar 2026 10:31:49 +0100 Subject: [PATCH 2/2] cleanup --- go/internal/e2e/rpc_test.go | 3 +-- go/internal/e2e/session_test.go | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/go/internal/e2e/rpc_test.go b/go/internal/e2e/rpc_test.go index 8aba98be1..e38649e86 100644 --- a/go/internal/e2e/rpc_test.go +++ b/go/internal/e2e/rpc_test.go @@ -202,8 +202,7 @@ func TestSessionRpc(t *testing.T) { if err != nil { t.Fatalf("Failed to create session: %v", err) } - high := "high" - if err := session.SetModel(t.Context(), "gpt-4.1", &copilot.SetModelOptions{ReasoningEffort: &high}); err != nil { + if err := session.SetModel(t.Context(), "gpt-4.1", &copilot.SetModelOptions{ReasoningEffort: copilot.String("high")}); err != nil { t.Fatalf("SetModel returned error: %v", err) } }) diff --git a/go/internal/e2e/session_test.go b/go/internal/e2e/session_test.go index f21ea307c..46dc8494d 100644 --- a/go/internal/e2e/session_test.go +++ b/go/internal/e2e/session_test.go @@ -966,8 +966,7 @@ func TestSetModelWithReasoningEffort(t *testing.T) { } }) - high := "high" - if err := session.SetModel(t.Context(), "gpt-4.1", &copilot.SetModelOptions{ReasoningEffort: &high}); err != nil { + if err := session.SetModel(t.Context(), "gpt-4.1", &copilot.SetModelOptions{ReasoningEffort: copilot.String("high")}); err != nil { t.Fatalf("SetModel returned error: %v", err) }