more version 18 test fixes

This commit is contained in:
Jacob Dubin
2026-04-28 08:01:35 -05:00
parent 17437b5a67
commit 748f117201
15 changed files with 49950 additions and 30 deletions

View File

@@ -86,6 +86,10 @@ public sealed class DemoConversationBroker(JiboInteractionService interactionSer
"clock_menu" => false,
"timer_menu" => false,
"alarm_menu" => false,
"timer_delete" => false,
"alarm_delete" => false,
"timer_cancel" => false,
"alarm_cancel" => false,
"timer_value" => false,
"alarm_value" => false,
"photo_gallery" => false,

View File

@@ -350,13 +350,7 @@ public sealed class JiboInteractionService(
return "alarm_menu";
}
if (MatchesAny(
loweredTranscript,
"cancel alarm",
"delete alarm",
"remove alarm",
"stop alarm",
"turn off alarm"))
if (IsAlarmDeleteRequest(loweredTranscript))
{
return "alarm_delete";
}
@@ -1214,6 +1208,12 @@ public sealed class JiboInteractionService(
"how s your volume");
}
private static bool IsAlarmDeleteRequest(string loweredTranscript)
{
var normalizedTranscript = NormalizeCommandPhrase(loweredTranscript);
return AlarmDeletePattern.IsMatch(normalizedTranscript);
}
private static bool IsVolumeUpRequest(string loweredTranscript)
{
return MatchesAny(
@@ -1521,6 +1521,10 @@ public sealed class JiboInteractionService(
@"\s+",
RegexOptions.CultureInvariant | RegexOptions.Compiled);
private static readonly Regex AlarmDeletePattern = new(
@"\b(?:cancel|delete|remove|stop|turn\s+off)\s+(?:the\s+)?(?:alarm|along|elo)\b",
RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Compiled);
private static readonly (string Phrase, string Station)[] RadioGenreAliases =
[
("country music", "Country"),

View File

@@ -37,10 +37,7 @@ public sealed partial class WebSocketTurnFinalizationService(
CancellationToken cancellationToken = default)
{
var turnState = session.TurnState;
if (ShouldIgnoreLateAudio(session) || !turnState.AwaitingTurnCompletion &&
!session.FollowUpOpen &&
!turnState.SawListen &&
!string.IsNullOrWhiteSpace(turnState.TransId))
if (ShouldIgnoreLateAudio(session) || ShouldIgnoreAudioWithoutListen(turnState))
{
return [];
}
@@ -334,7 +331,11 @@ public sealed partial class WebSocketTurnFinalizationService(
if (ShouldIgnoreBlankAudioHotphraseTurn(turn))
{
session.TurnState.AwaitingTurnCompletion = false;
session.TurnState.IgnoreAdditionalAudioUntilUtc = DateTimeOffset.UtcNow.Add(WebSocketTurnState.DefaultLateAudioIgnoreWindow);
session.FollowUpExpiresUtc = null;
ResetBufferedAudio(session);
session.TurnState.SawListen = false;
session.TurnState.SawContext = false;
return [];
}
@@ -502,6 +503,8 @@ public sealed partial class WebSocketTurnFinalizationService(
!string.Equals(plan.IntentName, "clock_menu", StringComparison.OrdinalIgnoreCase) &&
!string.Equals(plan.IntentName, "timer_menu", StringComparison.OrdinalIgnoreCase) &&
!string.Equals(plan.IntentName, "alarm_menu", StringComparison.OrdinalIgnoreCase) &&
!string.Equals(plan.IntentName, "timer_delete", StringComparison.OrdinalIgnoreCase) &&
!string.Equals(plan.IntentName, "alarm_delete", StringComparison.OrdinalIgnoreCase) &&
!string.Equals(plan.IntentName, "timer_cancel", StringComparison.OrdinalIgnoreCase) &&
!string.Equals(plan.IntentName, "alarm_cancel", StringComparison.OrdinalIgnoreCase) &&
!string.Equals(plan.IntentName, "timer_clarify", StringComparison.OrdinalIgnoreCase) &&
@@ -544,6 +547,12 @@ public sealed partial class WebSocketTurnFinalizationService(
ignoreUntilUtc.Value > DateTimeOffset.UtcNow;
}
private static bool ShouldIgnoreAudioWithoutListen(WebSocketTurnState turnState)
{
return !turnState.SawListen &&
!string.IsNullOrWhiteSpace(turnState.TransId);
}
private static bool ShouldIgnorePassiveLocalSkillContext(CloudSession session, string? text)
{
if (session.FollowUpOpen)