Tracking issue for making voice enrollment a first-class feature. Design + phasing: PR #495 (docs/plans/voice-enrollment.md).
Problem: the engine exists (embeddings, voices.db, blended profiles, L2/L3 attribution) but there's no product around it — no desktop UI, no MCP tool, no passive learning, no backfill. Surfaced by first-run testing:
Approach (see PR #495 for the full design + codex adversarial review):
Phase 1 (next release) — safe foundation + active enrollment:
Phase 2 (fast-follow, gated on an adversarial FAR/FRR eval):
Sequencing: start after the in-flight conversation-trust work merges to avoid colliding on commands.rs/pipeline.rs.
Tracking issue for making voice enrollment a first-class feature. Design + phasing: PR #495 (
docs/plans/voice-enrollment.md).Problem: the engine exists (embeddings,
voices.db, blended profiles, L2/L3 attribution) but there's no product around it — no desktop UI, no MCP tool, no passive learning, no backfill. Surfaced by first-run testing:user-select: none) #490 — Recall panel text not copyableApproach (see PR #495 for the full design + codex adversarial review):
Phase 1 (next release) — safe foundation + active enrollment:
voice_samplesschema; one active profile per (person, model); never blend across models (fixes model-version-blind matching)embed_solo_clipprimitive (16kHz, multi-window, reject inconsistent clips)Phase 2 (fast-follow, gated on an adversarial FAR/FRR eval):
.embeddingssidecars (dry-run report; no clustering-to-guess-self)Sequencing: start after the in-flight conversation-trust work merges to avoid colliding on
commands.rs/pipeline.rs.