forked from Manuel/meeting-assistant
5.5 KiB
5.5 KiB
1. Voice-vector persistence
- 1.1 Add a failing database behavior test for versioned, deduplicated voice vectors and cascade deletion
- 1.2 Add the voice-vector entity, EF mapping, and additive SQLite schema migration
2. Local Resemblyzer encoding
- 2.1 Add a failing encoder behavior test for batching WAV samples into validated 256-value vectors
- 2.2 Implement the bounded local Resemblyzer encoder and non-blocking feature-gated warm-up
- 2.3 Add behavior coverage for malformed, wrong-dimension, non-finite, and failed encoder results
3. Tunable cluster matching
- 3.1 Add a failing behavior test for accepting a coherent, similar, unambiguous five-vector cluster
- 3.2 Implement normalized-centroid, median-cosine, cohesion, threshold, and runner-up-margin scoring
- 3.3 Add behavior coverage for insufficient, incoherent, below-threshold, and ambiguous clusters
4. Resemblyzer identity lifecycle
- 4.1 Add a failing service behavior test proving a live vector match relabels the speaker and persists five vectors without WAV snippets
- 4.2 Implement the separate Resemblyzer identification service with existing candidate ordering, naming, attendee, reference, and transcript outcomes
- 4.3 Add and pass behavior tests for summary overrides with fewer than five vectors, unmatched learning, deduplication, and the 1,000-vector cap
5. Recording and merge integration
- 5.1 Add behavior tests and implement non-overlapping Resemblyzer sample collection with at least the configured required count
- 5.2 Add behavior tests and implement application-level feature selection without Azure/pyannote identity fallback
- 5.3 Add behavior tests and implement two-cluster Resemblyzer diagnostic merging plus bounded vector retention in manual merges
- 5.4 Expose vector counts in identity-management tools while keeping WAV playback operations separate
6. Configuration and verification
- 6.1 Add the disabled-by-default canonical configuration and document runtime, persistence, and tuning behavior
- 6.2 Run focused speaker, schema, encoder, matching, merge, recording, and workflow-tool tests
- 6.3 Run the full solution test suite and validate the OpenSpec change strictly
7. Local virtual-environment correction
- 7.1 Add a failing behavior test for provisioning a versioned venv with CPU-only PyTorch and no Docker command
- 7.2 Replace the Docker encoder with managed-venv provisioning and direct venv Python batch encoding
- 7.3 Replace Docker-specific Resemblyzer configuration and documentation with Python/venv settings
- 7.4 Run focused and full tests, validate OpenSpec strictly, and verify enabled application warm-up through logs
8. Sample-duration tuning
- 8.1 Add a failing configuration-default test for a 10-second minimum speaker sample
- 8.2 Change the sample-duration default and canonical configuration to 10 seconds and update documentation
- 8.3 Run focused tests, validate OpenSpec strictly, restart the enabled application, and verify health
9. STT segment aggregation and sample cap
- 9.1 Add a failing live-collector behavior test proving consecutive same-speaker STT lines survive provider-created pauses
- 9.2 Implement same-speaker aggregation for live and finalized samples while excluding provider pauses from the minimum speech duration
- 9.3 Add a failing behavior test proving recognition WAVs never exceed the configurable 60-second default
- 9.4 Implement and document the maximum sample duration across live and finalized collection
- 9.5 Run focused and full tests, refactor, validate OpenSpec strictly, and verify operational readiness without interrupting active work
10. Complete evidence retention and outlier pruning
- 10.1 Add a failing service behavior test proving five vectors unlock a decision without capping all qualifying current-run evidence
- 10.2 Retain, encode, and persist all qualifying current-run vectors up to the configured identity limit, including evidence collected after a live match
- 10.3 Add failing behavior tests for dominant density-cluster pruning and fail-safe ambiguous-cluster retention at the 20-vector floor
- 10.4 Implement configurable cosine-density outlier pruning after vector additions and identity merges
- 10.5 Document tuning settings, run focused/full tests and sequential refactor passes, validate OpenSpec strictly, and verify the enabled application without interrupting active work
11. Release verification corrections
- 11.1 Reproduce and fix final evidence retention after live transcript relabeling
- 11.2 Reproduce and fix live matching when an existing speaker reaches the required sample count
- 11.3 Run focused/full tests, strictly validate OpenSpec, and verify operational readiness
- 11.4 Split evidence-loading queries to avoid multiplying stored WAV blobs across vector, reference, and name rows
Release verification (2026-09-11): 128 initial focused tests passed. Both lifecycle regressions were reproduced and fixed; the full suite passed all 519 tests with compilation complete after two timing-sensitive audio tests failed during the concurrent Windows build and passed in isolation. The Windows target built successfully and strict OpenSpec validation passed. Local /health returned ok, recording status was idle, and application logs showed successful Resemblyzer warm-up, local encoding, and vector pruning. The release corrections were verified through behavior tests; the running workstation process was not restarted.