v4.5.6

dubinc/dubv4.5.6Jun 30, 2026by mudler

AI Summary

This release focuses on distributed system enhancements, introduces new voice and face detection backends, and improves the real-time interaction experience with semantic VAD tokens.

Key Highlights

  • New ggml backends for voice and face detection replacing Python libraries
  • Distributed system improvements with SyncedMap and shared mode models
  • Robust binary download and upgrade UX
  • Semantic VAD EOU token for real-time interaction

New Features

  • Voice-detect and face-detect ggml backends
  • Semantic VAD EOU token
  • LOCALAI_DISTRIBUTED_SHARED_MODELS environment variable
  • SyncedMap component for cross-replica state migration
  • Robust binary download with rate-limiting

Full Release Notes

<!-- Release notes generated using configuration in .github/release.yml at master -->

## What's Changed
### 👒 Dependencies
* chore(deps): bump actions/cache from 4 to 6 by @dependabot[bot] in https://github.com/mudler/LocalAI/pull/10593
### Other Changes
* docs: :arrow_up: update docs version mudler/LocalAI by @localai-bot in https://github.com/mudler/LocalAI/pull/10560
* fix(distributed): missing agent NATS permission by @ALameLlama in https://github.com/mudler/LocalAI/pull/10549
* feat(distributed): SyncedMap component + migrate finetune/quant/agent-tasks to cross-replica state by @localai-bot in https://github.com/mudler/LocalAI/pull/10542
* chore(fish-speech): drop the darwin/metal build target by @localai-bot in https://github.com/mudler/LocalAI/pull/10561
* fix(config): fall back to DefaultContextSize for unparseable GGUFs; pin NVFP4 gallery context_size by @localai-bot in https://github.com/mudler/LocalAI/pull/10563
* ci(vibevoice): skip the ASR transcription e2e on release tag builds by @localai-bot in https://github.com/mudler/LocalAI/pull/10567
* fix(gallery): match mmproj/model quant as a whole token so F16 no longer selects BF16 (#10559) by @localai-bot in https://github.com/mudler/LocalAI/pull/10564
* fix(distributed): return empty backend list for agent nodes instead of failing backend.list (#10545) by @localai-bot in https://github.com/mudler/LocalAI/pull/10565
* feat(distributed): add LOCALAI_DISTRIBUTED_SHARED_MODELS to skip staging on shared volumes (#10556) by @localai-bot in https://github.com/mudler/LocalAI/pull/10566
* chore: :arrow_up: Update leejet/stable-diffusion.cpp to `9956436c925a367daeab097598b1ea1f32d3503f` by @localai-bot in https://github.com/mudler/LocalAI/pull/10533
* fix(openresponses): bound resume-stream buffer and enforce response ownership by @localai-bot in https://github.com/mudler/LocalAI/pull/10569
* chore: :arrow_up: Update ggml-org/whisper.cpp to `0ae02cdb2c7317b50991367c165736ce42ed96ac` by @localai-bot in https://github.com/mudler/LocalAI/pull/10532
* chore: :arrow_up: Update CrispStrobe/CrispASR to `6514c9da00b03a2f0f1b49a43fae4f3a01a41844` by @localai-bot in https://github.com/mudler/LocalAI/pull/10535
* chore: :arrow_up: Update ggml-org/llama.cpp to `0ed235ea2c17a19fc8238668653946721ed136fd` by @localai-bot in https://github.com/mudler/LocalAI/pull/10536
* fix(ik-llama): port multimodal path to mtmd API and bump to f96eaddb (#10534) by @localai-bot in https://github.com/mudler/LocalAI/pull/10568
* feat(backends): add voice-detect + face-detect ggml backends (replace Python insightface/speaker-recognition) by @localai-bot in https://github.com/mudler/LocalAI/pull/10441
* fix(kokoro): add explicit click dep so spacy CLI works on intel build by @localai-bot in https://github.com/mudler/LocalAI/pull/10572
* fix(launcher): robust binary download/upgrade (resume, rate-limit, UX) by @localai-bot in https://github.com/mudler/LocalAI/pull/10575
* fix(distributed): missing agent NATS permissions by @ALameLlama in https://github.com/mudler/LocalAI/pull/10571
* fix(fish-speech): allow invalid_reference_casting so tokenizers builds on darwin by @localai-bot in https://github.com/mudler/LocalAI/pull/10573
* fix(oci): retry layer downloads on transient network errors by @localai-bot in https://github.com/mudler/LocalAI/pull/10579
* chore(model-gallery): :arrow_up: update checksum by @localai-bot in https://github.com/mudler/LocalAI/pull/10585
* chore: :arrow_up: Update leejet/stable-diffusion.cpp to `c1790754d31bec0731ed5fddc9d5b9ff22ee19cd` by @localai-bot in https://github.com/mudler/LocalAI/pull/10584
* chore: :arrow_up: Update CrispStrobe/CrispASR to `6b50f76e59700665358a1aabf5295597fa318e06` by @localai-bot in https://github.com/mudler/LocalAI/pull/10583
* chore: :arrow_up: Update ggml-org/llama.cpp to `dbdaece23de9ac63f2e7ca9e6bfcdc4fc156a3fa` by @localai-bot in https://github.com/mudler/LocalAI/pull/10582
* chore: :arrow_up: Update mudler/voice-detect.cpp to `3d510772357538c5182808ac7de2278b84824e24` by @localai-bot in https://github.com/mudler/LocalAI/pull/10581
* chore: :arrow_up: Update mudler/face-detect.cpp to `06914b077d52f90d5421299138e7be6bdd06b5e8` by @localai-bot in https://github.com/mudler/LocalAI/pull/10580
* chore: :arrow_up: Update vllm-metal (darwin) to `v0.3.0.dev20260628073537` by @localai-bot in https://github.com/mudler/LocalAI/pull/10562
* chore(recon): re-pin voice/face-detect to squashed release commits (+ graph-cache fix) by @localai-bot in https://github.com/mudler/LocalAI/pull/10591
* fix(sglang): parse tool_call function arguments before applying the chat template by @pos-ei-don in https://github.com/mudler/LocalAI/pull/10558
* feat(realtime): Semantic VAD EOU token by @richiejp in https://github.com/mudler/LocalAI/pull/10444
* fix(openai): stop max_tokens streaming retry loop on reasoning models (#9716) by @Dennisadira in https://github.com/mudler/LocalAI/pull/10448
* fix(import): derive model name from selected GGUF for repo-root URIs by @Dennisadira in https://github.com/mudler/LocalAI/pull/10589
* fix(functions): avoid quadratic-time debug logging in CleanupLLMResult / ParseFunctionCall by @pos-ei-don in https://github.com/mudler/LocalAI/pull/10592
* chore: :arrow_up: Update leejet/stable-diffusion.cpp to `3b6c9ca97cfcda8e68e719e6670d06379fcbe943` by @localai-bot in https://github.com/mudler/LocalAI/pull/10594
* chore: :arrow_up: Update ggml-org/llama.cpp to `6f4f53f2b7da54fcdbbecaaa734337c337ad6176` by @localai-bot in https://github.com/mudler/LocalAI/pull/10595
* chore: :arrow_up: Update localai-org/privacy-filter.cpp to `595f59630c69d361b5196f2aba2c71c873d0c13c` by @localai-bot in https://github.com/mudler/LocalAI/pull/10596
* chore: :arrow_up: Update CrispStrobe/CrispASR to `3b93758f9725d400eca82976f895e4cec3f31260` by @localai-bot in https://github.com/mudler/LocalAI/pull/10597
* chore: :arrow_up: Update ikawrakow/ik_llama.cpp to `f74a6fb87b315b2c3154166e075360e15021a61d` by @localai-bot in https://github.com/mudler/LocalAI/pull/10598
* fix(import): strip file:// scheme from model path for local imports by @Dennisadira in https://github.com/mudler/LocalAI/pull/10599
* fix(tests): align openresponses test model name with GGUF-derived naming (#10589) by @localai-bot in https://github.com/mudler/LocalAI/pull/10609
* fix(macos): staple the notarization ticket to the .app, not just the dmg by @localai-bot in https://github.com/mudler/LocalAI/pull/10606
* fix(watchdog): persist UI-saved Check Interval across restarts (#10601) by @localai-bot in https://github.com/mudler/LocalAI/pull/10605
* feat(config): default swa_full:true for sliding-window-attention models by @localai-bot in https://github.com/mudler/LocalAI/pull/10611

## New Contributors
* @ALameLlama made their first contribution in https://github.com/mudler/LocalAI/pull/10549

**Full Changelog**: https://github.com/mudler/LocalAI/compare/v4.5.5...v4.5.6