github microsoft/Foundry-Local v1.2.0
v1.2.0 Foundry Local

19 hours ago

πŸš€ Foundry Local v1.2.0 Release Notes

We're excited to announce Foundry Local v1.2.0. This release builds on v1.1 with improvements across SDK usability, runtime stability, platform support, and the EP download experience.


πŸ†• What's New

πŸ›‘ Cancellable model and EP downloads

Long-running model downloads and execution provider (EP) downloads can now be canceled from each SDK using the platform’s standard cancellation pattern. This lets applications stop downloads from a timeout, UI cancel button, signal handler, or background task.

Note: this applies to model and EP downloads, not inference requests such as chat completions.

C# ```csharp // mgr and model already initialized using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5)); await mgr.DownloadAndRegisterEpsAsync(ct: cts.Token); await model.DownloadAsync(ct: cts.Token); ```
JavaScript ```javascript // manager and model already initialized const controller = new AbortController(); setTimeout(() => controller.abort(), 5000); await manager.downloadAndRegisterEps(controller.signal); await model.download(controller.signal); ```
Python ```python import threading # manager and model already initialized cancel_event = threading.Event() threading.Timer(5.0, cancel_event.set).start() manager.download_and_register_eps(cancel_event=cancel_event) model.download(cancel_event=cancel_event) ```
Rust ```rust use std::sync::{ atomic::AtomicBool, Arc, }; // manager and model already initialized let cancel_flag = Arc::new(AtomicBool::new(false)); // Set cancel_flag to true from another task or signal handler to cancel. manager .download_and_register_eps_builder() .cancel(Arc::clone(&cancel_flag)) .run() .await?; model .download_builder() .cancel(Arc::clone(&cancel_flag)) .run() .await?; ```
C++ ```cpp #include std::atomic cancelRequested{false}; auto isCancellationRequested = [&]() { return cancelRequested.load(); }; // manager and model already initialized manager.DownloadAndRegisterEps(nullptr, isCancellationRequested); model->Download( [](float pct) { printf("\rDownloading: %5.1f%%", pct); fflush(stdout); return true; }, isCancellationRequested); ```

🧰 SDK & API

  • Support for SDK-based model versioning, so only models supported by the SDK version in use are shown
  • Added support for multilingual ASR speech models

πŸ–₯️ Platform & Runtime

  • Upgraded to WinML 2.0
    • The WinAppSDKRuntime bootstrapper is no longer needed
    • Extended support for WinML EP downloads to Windows 10.0.18362.0 and higher
  • Added WebGPU EP variant for WinML and plug-in auto-update support
  • Added support for Linux ARM64 / aarch64

πŸ› Fixed

  • Fixed EP progress reporting issue where 100% could be reported prematurely, causing exceptions
  • Restored the missing Microsoft.AI.Foundry.Local.Core dependency in the Microsoft.AI.Foundry.Local C# NuGet package
  • Addressed issues loading Microsoft.AI.Foundry.Local.Core.dll in netstandard2.0 applications

⚑ Improved

πŸ”Ž Observability & Debugging

  • Improved SDK logging to include ORT, GenAI, EP versions, and detailed stack traces on error

🧱 Reliability

  • Added support for region-based downloads to improve model download latency and throughput
  • Improved handling of large model downloads by removing the 5-minute timeout

πŸ“¦ Runtime & Dependency Updates

  • Updated dependencies for improved performance, security, and stability
  • Upgraded to ONNX Runtime 1.26.0 and ONNX Runtime GenAI 0.14.0 for performance, security, and model support improvements

πŸ“š Resources

Resource Link
πŸ“– MSLearn Docs learn.microsoft.com/en-us/azure/foundry-local/get-started
πŸ™ GitHub github.com/microsoft/Foundry-Local
πŸ§ͺ Samples samples/

πŸ’™ Thank You

Thank you to our community for your feedback and contributions!

Don't miss a new Foundry-Local release

NewReleases is sending notifications on new releases.