mirror of
https://github.com/davidkaya/aryx.git
synced 2026-08-07 20:28:46 +02:00
fix: preserve single-chat final messages
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -6,6 +6,72 @@ namespace Kopaya.AgentHost.Tests;
|
||||
|
||||
public sealed class CopilotWorkflowRunnerTests
|
||||
{
|
||||
[Fact]
|
||||
public void SelectNewOutputMessages_SkipsFullTranscriptPrefix()
|
||||
{
|
||||
List<ChatMessage> inputMessages =
|
||||
[
|
||||
new(ChatRole.User, "Hello"),
|
||||
];
|
||||
List<ChatMessage> outputMessages =
|
||||
[
|
||||
new(ChatRole.User, "Hello"),
|
||||
new(ChatRole.Assistant, "Hi there."),
|
||||
];
|
||||
|
||||
IReadOnlyList<ChatMessage> newMessages = CopilotWorkflowRunner.SelectNewOutputMessages(
|
||||
outputMessages,
|
||||
inputMessages);
|
||||
|
||||
ChatMessage message = Assert.Single(newMessages);
|
||||
Assert.Equal(ChatRole.Assistant, message.Role);
|
||||
Assert.Equal("Hi there.", message.Text);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SelectNewOutputMessages_SkipsOnlyTheLatestInputOverlap()
|
||||
{
|
||||
List<ChatMessage> inputMessages =
|
||||
[
|
||||
new(ChatRole.Assistant, "Earlier answer"),
|
||||
new(ChatRole.User, "Hello"),
|
||||
];
|
||||
List<ChatMessage> outputMessages =
|
||||
[
|
||||
new(ChatRole.User, "Hello"),
|
||||
new(ChatRole.Assistant, "Hi there."),
|
||||
];
|
||||
|
||||
IReadOnlyList<ChatMessage> newMessages = CopilotWorkflowRunner.SelectNewOutputMessages(
|
||||
outputMessages,
|
||||
inputMessages);
|
||||
|
||||
ChatMessage message = Assert.Single(newMessages);
|
||||
Assert.Equal(ChatRole.Assistant, message.Role);
|
||||
Assert.Equal("Hi there.", message.Text);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SelectNewOutputMessages_PreservesAssistantOnlyOutput()
|
||||
{
|
||||
List<ChatMessage> inputMessages =
|
||||
[
|
||||
new(ChatRole.User, "Hello"),
|
||||
];
|
||||
List<ChatMessage> outputMessages =
|
||||
[
|
||||
new(ChatRole.Assistant, "Hi there."),
|
||||
];
|
||||
|
||||
IReadOnlyList<ChatMessage> newMessages = CopilotWorkflowRunner.SelectNewOutputMessages(
|
||||
outputMessages,
|
||||
inputMessages);
|
||||
|
||||
ChatMessage message = Assert.Single(newMessages);
|
||||
Assert.Equal(ChatRole.Assistant, message.Role);
|
||||
Assert.Equal("Hi there.", message.Text);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ProjectCompletedMessages_FallsBackToStreamingSegmentsWhenWorkflowOutputIsMissing()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user