Make meeting lifecycle stateful

This commit is contained in:
2026-05-27 12:55:17 +02:00
parent d607b957bb
commit e85274829a
91 changed files with 4076 additions and 479 deletions
@@ -10,6 +10,15 @@ public interface IMeetingSummaryFailureWriter
MeetingSessionArtifacts artifacts,
Exception exception,
CancellationToken cancellationToken);
Task<MeetingSummaryRunResult> WriteAsync(
MeetingSessionArtifacts artifacts,
Exception exception,
MeetingAssistantOptions options,
CancellationToken cancellationToken)
{
return WriteAsync(artifacts, exception, cancellationToken);
}
}
public sealed class MeetingSummaryFailureWriter : IMeetingSummaryFailureWriter
@@ -29,6 +38,15 @@ public sealed class MeetingSummaryFailureWriter : IMeetingSummaryFailureWriter
MeetingSessionArtifacts artifacts,
Exception exception,
CancellationToken cancellationToken)
{
return await WriteAsync(artifacts, exception, options, cancellationToken);
}
public async Task<MeetingSummaryRunResult> WriteAsync(
MeetingSessionArtifacts artifacts,
Exception exception,
MeetingAssistantOptions options,
CancellationToken cancellationToken)
{
Directory.CreateDirectory(Path.GetDirectoryName(artifacts.SummaryPath)!);
var meetingNote = File.Exists(artifacts.MeetingNotePath)
@@ -43,7 +61,7 @@ public sealed class MeetingSummaryFailureWriter : IMeetingSummaryFailureWriter
artifacts.SummaryPath,
MeetingArtifactFrontmatterRenderer.Render(
frontmatter,
RenderFailureMarkdown(artifacts, exception)),
RenderFailureMarkdown(artifacts, exception, options)),
cancellationToken);
return new MeetingSummaryRunResult(
@@ -53,7 +71,10 @@ public sealed class MeetingSummaryFailureWriter : IMeetingSummaryFailureWriter
Error: exception.Message);
}
private string RenderFailureMarkdown(MeetingSessionArtifacts artifacts, Exception exception)
private static string RenderFailureMarkdown(
MeetingSessionArtifacts artifacts,
Exception exception,
MeetingAssistantOptions options)
{
var builder = new StringBuilder();
builder.AppendLine("# Meeting Summary");