Files
meeting-assistant/openspec/changes/archive/2026-05-21-add-speaker-identity-learning/tasks.md
T
2026-05-27 12:55:17 +02:00

37 lines
2.9 KiB
Markdown

## 1. Specification
- [x] 1.1 Define requirements for local speaker identity storage and candidate elimination.
- [x] 1.2 Define requirements for live periodic matching and transcript relabeling.
## 2. Implementation
- [x] 2.1 Add SQLite speaker identity database in app data.
- [x] 2.2 Add speaker snippet extraction and matching orchestration.
- [x] 2.3 Learn unmatched speaker identities from meeting attendees at transcript completion.
- [x] 2.4 Eliminate candidate names on future matches and promote a canonical name.
- [x] 2.5 Relabel finished transcript segments when canonical identity matches are found.
- [x] 2.6 Add live periodic matching after an initial delay and apply matches to future transcript writes.
- [x] 2.7 Keep timestamped in-memory audio samples for live diarized speaker matching and reserve recording-file extraction for final-only diarization.
- [x] 2.8 Add speaker aliases and a diagnostic duplicate-identity merge process.
- [x] 2.9 Use aliases during candidate elimination and unmatched-candidate filtering.
- [x] 2.10 Keep live speaker matching read-only so final identity decisions use the latest meeting note frontmatter.
- [x] 2.11 Rewrite already-written live transcript segments when a live speaker match is found.
- [x] 2.12 Prioritize attendee-matched speaker identities, filter stale non-attendees, and cap match candidates.
- [x] 2.13 Run live speaker identification incrementally when new unmapped speakers appear or attendees change.
- [x] 2.14 Maintain speaker identity last-modified timestamps for active-age filtering.
- [x] 2.15 Add identified speaker display names to meeting note attendees without duplicating display names or aliases.
- [x] 2.16 Canonicalize calendar attendee names through identity canonical names and aliases before writing meeting notes.
## 3. Validation
- [x] 3.1 Add tests for candidate creation, elimination, canonical promotion, and reset on empty candidate intersection.
- [x] 3.2 Add tests for recording coordinator transcript relabel integration.
- [x] 3.3 Add tests for in-memory speaker samples and rolling audio buffer extraction.
- [x] 3.4 Add tests for duplicate speaker identity merging and the diagnostic endpoint.
- [x] 3.5 Add tests for alias-aware candidate elimination.
- [x] 3.6 Add tests that live matching does not mutate speaker identities.
- [x] 3.7 Add tests that live speaker matches relabel current and future transcript segments.
- [x] 3.8 Add tests for speaker identity candidate ordering, active-age filtering, and candidate caps.
- [x] 3.9 Add tests for incremental live speaker identification triggers.
- [x] 3.10 Add tests for speaker identity last-modified timestamp creation, updates, and schema upgrade.
- [x] 3.11 Add tests for adding matched speaker identities to meeting attendees and alias duplicate suppression.
- [x] 3.12 Add tests for calendar attendee canonicalization and alias duplicate suppression.
- [x] 3.13 Run `dotnet test`.