Copy meeting projects to summary frontmatter

This commit is contained in:
2026-05-27 12:55:20 +02:00
parent 12832dde84
commit 4f0b52d7d0
4 changed files with 61 additions and 1 deletions
@@ -12,6 +12,8 @@ public sealed class MeetingArtifactFrontmatter
public List<string>? Attendees { get; set; }
public List<string>? Projects { get; set; }
public string Meeting { get; set; } = "";
public string Transcript { get; set; } = "";
@@ -39,6 +41,7 @@ public static class MeetingArtifactFrontmatterRenderer
AppendDateTime(builder, "start_time", frontmatter.StartTime);
AppendDateTime(builder, "end_time", frontmatter.EndTime);
AppendListIfNotNull(builder, "attendees", frontmatter.Attendees);
AppendListIfNotNull(builder, "projects", frontmatter.Projects);
AppendQuotedIfNotEmpty(builder, "meeting", frontmatter.Meeting);
AppendQuotedIfNotEmpty(builder, "transcript", frontmatter.Transcript);
AppendQuotedIfNotEmpty(builder, "assistant_context", frontmatter.AssistantContext);
@@ -107,6 +107,7 @@ public sealed class MeetingSummaryTools
string.IsNullOrWhiteSpace(summaryTitle) ? "Meeting Summary" : summaryTitle,
artifacts.SummaryPath);
frontmatter.Attendees = await ResolveSummaryAttendeesAsync(meetingNote);
frontmatter.Projects = ResolveSummaryProjects(meetingNote);
await File.WriteAllTextAsync(
artifacts.SummaryPath,
MeetingArtifactFrontmatterRenderer.Render(frontmatter, markdown));
@@ -591,6 +592,13 @@ public sealed class MeetingSummaryTools
: meetingNote.Frontmatter.Attendees.ToList();
}
private static List<string>? ResolveSummaryProjects(MeetingNote meetingNote)
{
return meetingNote.Frontmatter.Projects.Count == 0
? null
: meetingNote.Frontmatter.Projects.ToList();
}
private async Task<List<string>?> ReadExistingSummaryAttendeesAsync()
{
if (!File.Exists(artifacts.SummaryPath))