π 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!