Pre-release of v3.45.0, for field validation of #866: Sentinel's calls stalling voice on a shared local model. HACS offers it only to users who opted into betas. It contains everything on main as of 3fd752a.
#866 step 1: Sentinel no longer stalls a voice turn on a shared local model (#875)
On an edge model shared with chat, Sentinel now avoids starting calls rather than cancelling them, since a cancel is what can wedge an Ollama runner:
- Triage calls per run, a new option in Sentinel's Advanced setup (default 5). The rest of a run's findings pass through untriaged; the same limit caps explanations.
- A 1 s gap between Sentinel's calls (triage, explanations, discovery).
- Sentinel waits while a chat turn is active and for 30 s after it ends, so a multi-turn voice exchange is not interrupted; after 5 minutes of back-to-back deferrals it yields once, so Sentinel is never starved.
- The stalled-provider probe is skipped while chat or video holds the GPU, and a probe once sent is never cancelled.
sensor.sentinel_healthgainstriage_calls_last_runandtriage_passed_through_last_run;triage_suppress_rateno longer counts findings that were never sent to the model.- None of this applies to cloud models, or when
model_provider_uncontendedis set.
#866 step 2: a model of its own for Sentinel (#876)
A new optional Sentinel Model feature under + Setup (Advanced setup, or the gear icon later) gives triage, discovery and explanations their own provider, model and fallback chain: a small model (qwen3:4b on Ollama by default), a cloud model, or a second Ollama server. It is off by default and Basic setup leaves it off: Sentinel then runs on the Conversation model, as before.
- A cloud Sentinel model is not held back or cancelled by a local chat model.
- On a second Ollama server the local GPU gates above still follow chat on the first server for now (#877).
- If the Sentinel provider is unreachable at startup, Sentinel runs on the Conversation model with a warning until it answers.
- A second account or server of the same type as Conversation's provider (two OpenAI keys, two OpenAI-compatible servers) is refused, since only one of a type can be used at a time.
New since beta.4:
- Simplified Chinese (zh-Hans) translation (#846, thanks @TwelveTwenty1220).
- Embedding fixes: a fallback no longer mixes models in the memory store (#751), a wrong vector size or a missing store table is reported instead of failing silently (#760), a change of embedding model no longer breaks memory search (#855), and a second OpenAI-compatible, OpenAI or Gemini embedding provider works as a fallback (#853).
- Remote Home Assistant (MCP): a command for this house no longer goes to a remote one with a tool of the same name (#843), tool search knows which house a tool belongs to (#848), and a remote house's devices require the Critical Action PIN (#840).
- A busy camera no longer crowds another camera's notifications out of the deduplication check (#706).
- Reloading the integration while a camera is being analyzed no longer logs an
AttributeError(#777, thanks @TwelveTwenty1220).
The full notes are in the [Unreleased] section of CHANGELOG.md.