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
@@ -13,7 +13,14 @@ public sealed class MarkdownDictationWordStore : IDictationWordStore
public async Task<IReadOnlyList<string>> ReadWordsAsync(CancellationToken cancellationToken)
{
var path = GetPath();
return await ReadWordsAsync(options, cancellationToken);
}
public async Task<IReadOnlyList<string>> ReadWordsAsync(
MeetingAssistantOptions options,
CancellationToken cancellationToken)
{
var path = GetPath(options);
if (!File.Exists(path))
{
return [];
@@ -25,7 +32,15 @@ public sealed class MarkdownDictationWordStore : IDictationWordStore
public async Task<IReadOnlyList<string>> AddWordAsync(string word, CancellationToken cancellationToken)
{
var path = GetPath();
return await AddWordAsync(word, options, cancellationToken);
}
public async Task<IReadOnlyList<string>> AddWordAsync(
string word,
MeetingAssistantOptions options,
CancellationToken cancellationToken)
{
var path = GetPath(options);
Directory.CreateDirectory(Path.GetDirectoryName(path)!);
var existing = File.Exists(path)
? await File.ReadAllLinesAsync(path, cancellationToken)
@@ -39,7 +54,7 @@ public sealed class MarkdownDictationWordStore : IDictationWordStore
return words;
}
private string GetPath()
private static string GetPath(MeetingAssistantOptions options)
{
return VaultPath.Resolve(options.Vault, options.Vault.DictationWordsPath);
}