You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
```rust
if diarization {
tracing::warn!(target: TARGET, "diarization not yet supported, skipping");
}
```
Caller asks for speaker diarization via `extraction.audial.diarization = true`, gets a flat single-block transcript instead — with no error, just a buried tracing::warn. Operator has no way to know their config silently degraded.
Fix shape
Three paths, easiest to hardest:
Fail at config-load time when `diarization = true` is set. One `Result::Err` with an explanatory message in `Extractors::from_config` or earlier. Operators see the failure immediately instead of after a run completes.
Surface in run output. Add a degradation field to the run's audit/metadata so downstream consumers can see "requested diarization, got flat transcript".
Wire diarization properly. Whisper's `verbose_json` + `timestamp_granularities="segment"` + a downstream speaker-clustering pass. Real feature work; siblings issue STT extraction stamps TimeSpan(0,0) on speech blocks #238 (TimeSpan(0,0)) and the TODO at `nvisy-agent/src/audio/stt/mod.rs:60`.
(1) is the immediate unblocker. (3) is the actual feature.
Context
`crates/nvisy-engine/src/extraction/stt/mod.rs:69`:
```rust
if diarization {
tracing::warn!(target: TARGET, "diarization not yet supported, skipping");
}
```
Caller asks for speaker diarization via `extraction.audial.diarization = true`, gets a flat single-block transcript instead — with no error, just a buried tracing::warn. Operator has no way to know their config silently degraded.
Fix shape
Three paths, easiest to hardest:
(1) is the immediate unblocker. (3) is the actual feature.
Related