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
@@ -17,6 +17,7 @@ public sealed class MeetingSummaryInstructionBuilder : IMeetingSummaryInstructio
After writing the summary, update existing project files when the meeting produced durable project knowledge, decisions, next steps, or context.
Use list_projects first to see which projects are bound to this meeting. Use search and read_projectfile before changing existing project files.
The summary note should contain concise sections for summary, decisions, open questions, and next steps.
If the assistant context contains cropped screenshot markdown links, include only the most relevant cropped screenshots in the summary by markdown-linking them near the related summary text. Do not include every cropped screenshot by default, and do not link uncropped screenshots unless no cropped version exists and the image is important.
Keep the output grounded in the source material and explicitly say when a section has no known items.
""";
@@ -130,7 +130,7 @@ public sealed class MeetingSummaryTools
? await File.ReadAllTextAsync(artifacts.AssistantContextPath)
: "";
var (frontmatter, body) = MeetingArtifactFrontmatterRenderer.Split(existing);
var updatedBody = ApplyLineEdit(body, content, editMode);
var updatedBody = ApplyLineEdit(body, StripAccidentalFrontmatter(content), editMode);
var updated = string.IsNullOrWhiteSpace(frontmatter)
? updatedBody
: "---" + Environment.NewLine + frontmatter + Environment.NewLine + "---" + Environment.NewLine + Environment.NewLine + updatedBody;
@@ -139,6 +139,12 @@ public sealed class MeetingSummaryTools
return artifacts.AssistantContextPath;
}
private static string StripAccidentalFrontmatter(string content)
{
var document = MarkdownDocumentParser.SplitOptional(content);
return document.HasFrontmatter ? document.Body : content;
}
public async Task<string> ListProjects()
{
var projects = await GetBoundProjectsAsync();