Fix workflow rule validation logging
PR and Push Build/Test / build-and-test (push) Failing after 9m19s

This commit is contained in:
2026-06-03 17:33:12 +02:00
parent 40853115c5
commit 351ed2eb50
9 changed files with 243 additions and 102 deletions
@@ -53,8 +53,8 @@ public sealed class MeetingWorkflowEngine : IMeetingWorkflowEngine
"state.from",
"state.to",
"speaker.name",
"transcript.line",
"transcript.speaker"
MeetingWorkflowRuleSchema.PropertyTranscriptLine,
MeetingWorkflowRuleSchema.ParameterTranscriptSpeaker
];
private readonly IMeetingWorkflowRulesProvider rulesProvider;
@@ -277,22 +277,22 @@ public sealed class MeetingWorkflowEngine : IMeetingWorkflowEngine
var value = await RenderValueAsync(step.Value ?? "", model);
switch (step.Uses.Trim().ToLowerInvariant())
{
case "add_attendee":
case MeetingWorkflowRuleSchema.StepAddAttendee:
return AddUnique(meeting.Frontmatter.Attendees, value, MeetingAttendeeNames.NormalizeDisplayName);
case "remove_attendee":
case MeetingWorkflowRuleSchema.StepRemoveAttendee:
return RemoveValue(meeting.Frontmatter.Attendees, value);
case "add_project":
case MeetingWorkflowRuleSchema.StepAddProject:
return AddUnique(meeting.Frontmatter.Projects, value, static project => project.Trim());
case "add_context":
case MeetingWorkflowRuleSchema.StepAddContext:
await meetingArtifactStore.AppendAssistantContextAsync(
context.Event.Artifacts,
value,
cancellationToken);
return false;
case "set_property" when IsTranscriptLineProperty(step.Property ?? step.Name):
case MeetingWorkflowRuleSchema.StepSetProperty when IsTranscriptLineProperty(step.Property ?? step.Name):
SetTranscriptLine(context, value);
return false;
case "set_property":
case MeetingWorkflowRuleSchema.StepSetProperty:
return SetProperty(meeting, step.Property ?? step.Name, value);
default:
throw new InvalidOperationException($"Unknown meeting workflow step '{step.Uses}'.");
@@ -312,7 +312,7 @@ public sealed class MeetingWorkflowEngine : IMeetingWorkflowEngine
string value)
{
var normalized = property?.Trim().ToLowerInvariant();
if (normalized is "title" or "meeting.title")
if (normalized is MeetingWorkflowRuleSchema.PropertyTitle or MeetingWorkflowRuleSchema.PropertyMeetingTitle)
{
if (string.Equals(meeting.Frontmatter.Title, value, StringComparison.Ordinal))
{
@@ -345,7 +345,7 @@ public sealed class MeetingWorkflowEngine : IMeetingWorkflowEngine
private static bool IsTranscriptLineProperty(string? property)
{
return string.Equals(property?.Trim(), "transcript.line", StringComparison.OrdinalIgnoreCase);
return MeetingWorkflowRuleSchema.IsProperty(property, MeetingWorkflowRuleSchema.PropertyTranscriptLine);
}
private static bool AddUnique(
@@ -428,8 +428,8 @@ public sealed class MeetingWorkflowEngine : IMeetingWorkflowEngine
["state.from"] = workflowEvent.FromState is { } from ? MeetingWorkflowStateNames.ToRuleName(from) : "",
["state.to"] = workflowEvent.ToState is { } to ? MeetingWorkflowStateNames.ToRuleName(to) : "",
["speaker.name"] = workflowEvent.SpeakerName,
["transcript.line"] = context.TranscriptLine ?? "",
["transcript.speaker"] = workflowEvent.SpeakerName ?? ""
[MeetingWorkflowRuleSchema.PropertyTranscriptLine] = context.TranscriptLine ?? "",
[MeetingWorkflowRuleSchema.ParameterTranscriptSpeaker] = workflowEvent.SpeakerName ?? ""
};
}