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
@@ -56,6 +56,8 @@ public sealed class MeetingSummaryToolTests
Assert.Contains("end_time: \"2026-05-20T10:30:00.0000000+02:00\"", summary);
Assert.Contains("attendees:", summary);
Assert.Contains("- Ada", summary);
Assert.Contains("projects:", summary);
Assert.Contains("- Meeting Assistant", summary);
Assert.Contains("meeting: \"[[../Notes/meeting|Meeting Note]]\"", summary);
Assert.Contains("transcript: \"[[../Transcripts/transcript|Transcript]]\"", summary);
Assert.Contains("assistant_context: \"[[../Assistant Context/context|Assistant Context]]\"", summary);
@@ -106,6 +108,49 @@ public sealed class MeetingSummaryToolTests
Assert.DoesNotContain("- Grace", summary);
}
[Fact]
public async Task WriteSummaryCopiesCurrentMeetingProjectsOverExistingSummaryProjects()
{
var root = Path.Combine(Path.GetTempPath(), "meeting-assistant-tests", Guid.NewGuid().ToString("N"));
var artifacts = new MeetingSessionArtifacts(
MeetingNotePath: Path.Combine(root, "Meetings", "Notes", "meeting.md"),
TranscriptPath: Path.Combine(root, "Meetings", "Transcripts", "transcript.md"),
AssistantContextPath: Path.Combine(root, "Meetings", "Assistant Context", "context.md"),
SummaryPath: Path.Combine(root, "Meetings", "Summaries", "summary.md"));
Directory.CreateDirectory(Path.GetDirectoryName(artifacts.MeetingNotePath)!);
Directory.CreateDirectory(Path.GetDirectoryName(artifacts.SummaryPath)!);
await File.WriteAllTextAsync(
artifacts.MeetingNotePath,
"""
---
title: Meeting
projects:
- Current Project
- Second Project
---
""");
await File.WriteAllTextAsync(
artifacts.SummaryPath,
"""
---
title: Existing
projects:
- Stale Project
---
Old summary.
""");
var tools = new MeetingSummaryTools(artifacts);
await tools.WriteSummary("# Summary");
var summary = await File.ReadAllTextAsync(artifacts.SummaryPath);
Assert.Contains("projects:", summary);
Assert.Contains("- Current Project", summary);
Assert.Contains("- Second Project", summary);
Assert.DoesNotContain("- Stale Project", summary);
}
[Fact]
public async Task ReadToolsSupportClampedLineRanges()
{