Skip to content
Open
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
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,8 @@ internal static ResumeSessionConfig CopyResumeSessionConfig(SessionConfig? sourc
{
Model = source?.Model,
ReasoningEffort = source?.ReasoningEffort,
ReasoningSummary = source?.ReasoningSummary,
ContextTier = source?.ContextTier,
Tools = source?.Tools,
SystemMessage = source?.SystemMessage,
AvailableTools = source?.AvailableTools,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,8 @@ public void CopyResumeSessionConfig_CopiesAllProperties()
{
Model = "gpt-4o",
ReasoningEffort = "high",
ReasoningSummary = ReasoningSummary.Detailed,
ContextTier = ContextTier.LongContext,
Tools = tools,
SystemMessage = systemMessage,
AvailableTools = ["tool1", "tool2"],
Expand All @@ -187,6 +189,8 @@ public void CopyResumeSessionConfig_CopiesAllProperties()
// Assert
Assert.Equal("gpt-4o", result.Model);
Assert.Equal("high", result.ReasoningEffort);
Assert.Equal(ReasoningSummary.Detailed, result.ReasoningSummary);
Assert.Equal(ContextTier.LongContext, result.ContextTier);
Assert.Same(tools, result.Tools);
Assert.Same(systemMessage, result.SystemMessage);
Assert.Equal(new List<string> { "tool1", "tool2" }, result.AvailableTools);
Expand All @@ -211,6 +215,8 @@ public void CopyResumeSessionConfig_WithNullSource_ReturnsDefaults()
// Assert
Assert.Null(result.Model);
Assert.Null(result.ReasoningEffort);
Assert.Null(result.ReasoningSummary);
Assert.Null(result.ContextTier);
Assert.Null(result.Tools);
Assert.Null(result.SystemMessage);
Assert.Null(result.OnPermissionRequest);
Expand All @@ -221,6 +227,26 @@ public void CopyResumeSessionConfig_WithNullSource_ReturnsDefaults()
Assert.True(result.Streaming);
Comment thread
chandramouleswaran marked this conversation as resolved.
}

[Fact]
public void CopyResumeSessionConfig_RoundTripsReasoningSummary()
Comment thread
chandramouleswaran marked this conversation as resolved.
{
// Regression: ReasoningSummary controls whether the model returns readable
// extended-thinking summaries. It must round-trip onto resumed turns, just like
// ReasoningEffort, otherwise callers lose readable reasoning after the first turn.
var source = new SessionConfig
{
ReasoningEffort = "high",
ReasoningSummary = ReasoningSummary.Detailed,
};

// Act
ResumeSessionConfig result = GitHubCopilotAgent.CopyResumeSessionConfig(source);

// Assert
Assert.Equal(ReasoningSummary.Detailed, result.ReasoningSummary);
Assert.Equal("high", result.ReasoningEffort);
}

[Fact]
public void ConvertToAgentResponseUpdate_AssistantMessageEvent_DoesNotEmitTextContent()
{
Expand Down
Loading