Archive meeting workflow and screenshot changes

This commit is contained in:
2026-05-27 12:55:19 +02:00
parent 2422236ef7
commit 12832dde84
48 changed files with 3041 additions and 43 deletions
@@ -74,6 +74,85 @@ public sealed class MeetingWorkflowEngineTests
Assert.Equal(["Architecture"], meeting.Frontmatter.Projects);
}
[Fact]
public async Task StepValuesWithEmailAddressesAreTreatedAsLiteralText()
{
var fixture = await WorkflowFixture.CreateAsync(
"""
rules:
- name: normalize-sew-sofi-daily
on:
- state_transition:
from: collecting metadata
to: transcribing
if:
- condition: "meeting.title = 'WG: Sofi - Daily - Team Velocity Vanguards'"
steps:
- uses: set_property
property: title
value: 'SEW Sofi - Daily'
- uses: add_project
value: 'SEW Solution Finder'
- uses: add_attendee
value: 'niklas.link.e@sew-eurodrive.de'
""",
title: "WG: Sofi - Daily - Team Velocity Vanguards");
await fixture.Engine.RunAsync(
MeetingWorkflowEvent.StateTransition(
fixture.Artifacts,
AssistantContextState.CollectingMetadata,
AssistantContextState.Transcribing),
fixture.Options,
CancellationToken.None);
var meeting = await fixture.NoteStore.ReadAsync(fixture.Artifacts.MeetingNotePath, CancellationToken.None);
Assert.Equal("SEW Sofi - Daily", meeting.Frontmatter.Title);
Assert.Equal(["SEW Solution Finder"], meeting.Frontmatter.Projects);
Assert.Equal(["niklas.link.e@sew-eurodrive.de"], meeting.Frontmatter.Attendees);
}
[Fact]
public async Task StepValuesCanMixEmailAddressesAndRazorTemplates()
{
var fixture = await WorkflowFixture.CreateAsync(
"""
rules:
- name: mixed-template
on:
- created: {}
steps:
- uses: add_context
value: 'Contact Support@contoso.com about @Model.Meeting.Title.'
""",
title: "Architecture Sync");
await RunCreatedAsync(fixture);
var context = await fixture.ReadContextAsync();
Assert.Contains("Contact Support@contoso.com about Architecture Sync.", context);
}
[Fact]
public async Task StepValuesRenderRazorTransitionsThatAreNotModelMarkers()
{
var fixture = await WorkflowFixture.CreateAsync(
"""
rules:
- name: razor-transition
on:
- created: {}
steps:
- uses: add_context
value: 'Generated in @System.DateTime.UtcNow.Year'
""");
await RunCreatedAsync(fixture);
var context = await fixture.ReadContextAsync();
Assert.Contains($"Generated in {DateTime.UtcNow.Year}", context);
}
[Fact]
public async Task SpeakerIdentifiedRuleFiltersByNameAndWritesRazorContext()
{