Recent Releases
Review recent llamadart release highlights and jump to the canonical changelog for full release notes.
On this page
For canonical full release notes, use:
0.8.3#
-
Fixed Windows CUDA backend discovery when the native asset bundle directory is
not on the app
PATH. Apps using the CUDA llama.cpp backend can now resolve bundled CUDA redistributables besideggml-cuda.dllwithout manually adding.dart_tool/libor the native bundle path toPATH.
0.8.2#
-
Updated the default llama.cpp native runtime pin to
leehack/llamadart-native@b9694, regenerated matching Dart FFI bindings, refreshed thellamadart_llama_cpp_flutterApple SwiftPM checksum, and updated the default WebGPU bridge asset pin toleehack/llama-web-bridge-assets@v0.1.17(llama.cppb9699). The WebGPU backend now caps unset large-model browser batches so Gemma 4 mem64 loads do not fall back to context-sized compute buffers. -
Added
BackendGpuEnumeration.listGpuDevices({probeBackends})andLlamaEngine.listGpuDevicesso apps can enumerate GPU-class devices and select llama.cpp offload targets by backend-specificmainGpuindex. -
Added Cohere2 MoE / North Code chat-template detection and parsing so
<|START_TEXT|>responses and<|START_ACTION|>tool-call arrays are handled separately from older Command-R templates.
0.8.1#
-
Fixed docs references that still pointed at
llamadart_litert_lm_flutter0.0.1and the pre-native.1LiteRT-LM release after the 0.8.0 native pin sync moved LiteRT-LM Apple/runtime artifacts tov0.13.1-native.1. -
Routed native
.litertlmimage/audio chat parts through LiteRT-LM Conversation message JSON so bundles with native media processors can acceptLlamaImageContent/LlamaAudioContentpath and encoded-byte inputs without a separatemmprojprojector.
0.8.0#
-
Split Flutter Apple SwiftPM runtime linking into companion packages:
llamadart_llama_cpp_flutterfor GGUF/llama.cpp andllamadart_litert_lm_flutterfor.litertlm/LiteRT-LM. The core package remains a native-assets package without Flutter plugin metadata; the companion package sources live underpackages/in this repository. -
Changed unset or empty
llamadart_native_runtimesto mean all available runtime families. Flutter iOS/macOS companion packages decide Apple SPM runtimes when present; other builds continue to usellamadart_native_runtimes. -
Added opt-in native
.litertlmModelParamsfor activation data type, prefill chunk size, parallel file-section loading, and Android NPU LiteRT dispatch library directory, forwarding the pinned LiteRT-LMv0.13.1-native.1engine-settings C APIs while keeping defaults unchanged. - Extended the LiteRT-LM engine smoke tool with matching environment variables and documented the support decision for each candidate runtime knob.
- Kept LiteRT-LM web rejecting these native-only settings explicitly.
- Added llama.cpp MTP benchmark diagnostics and local smoke/benchmark tools so baseline-vs-MTP runs can report decode timing, draft/accepted token counts, draft verification timing, and acceptance rate.
-
Added
SpeculativeDecodingConfig.mtp(draftModelPath: ...)for llama.cpp external draft-model MTP sessions. - Removed the Android Vulkan MTP allow-list dart define and the model-name based Android Vulkan acceleration shortcut. Vulkan MTP now runs only when callers explicitly request Vulkan plus MTP in runtime parameters.
0.7.2#
- Added explicit pub.dev platform metadata for Android, iOS, Linux, macOS, web, and Windows. This keeps the package listing aligned with the actual cross-platform runtime support even though Flutter plugin registration is only needed for Darwin app integration.
0.7.1#
-
Added Flutter iOS/macOS Swift Package Manager integration so Apple apps link
pinned
leehack/llamadart-nativeandleehack/litert-lm-nativeXCFramework artifacts throughdarwin/llamadart/Package.swift. -
Disabled the legacy hook-managed Apple bundle path for Flutter iOS/macOS
builds, avoiding wrapper/framework
MinimumOSVersionmismatches in App Store uploads. - Raised the Flutter Apple runtime floors to iOS 16.4 and macOS 14.0 to match the published XCFramework artifacts.
-
Kept Android native builds on both
llama_cppandlitert_lmby default; iOS, macOS, Linux, and Windows now default tollama_cpponly. Non-Android.litertlmapps should opt in withllamadart_native_runtimes. - Added native release pin automation for Apple SPM checksums, excluded local SwiftPM artifact caches from pub archives, and hardened main-branch CI against Hugging Face tiny-model download rate limits.
- Compatibility note: no Dart API breaking changes. Flutter Apple apps must target iOS 16.4/macOS 14.0 or newer.
0.7.0#
-
Added LiteRT-LM as a first-class backend for native
.litertlmbundles and single-turn web-compatible.litertlmURLs, alongside the existing llama.cpp/GGUF path. -
Added
ModelParams.liteRtLmBackendso callers can select LiteRT-LM CPU, GPU, or Android NPU execution where the pinned runtime supports it. - Added native LiteRT-LM tokenization, detokenization, log-level control, runtime metrics, cached Hugging Face loading, and package hook overrides for testing compatible native runtime sources.
-
Added
GenerationParams.speculativeDecodingfor native LiteRT-LM and wired the benchmark app so speculative runs are reflected in metrics. -
Fixed Gemma 4
.litertlmthinking and tool calling with canonical templates, thought-channel parsing, reasoning suppression, and a filename-keyed template registry for Gemma and Qwen LiteRT-LM bundles. -
Fixed iOS
.litertlmloading by resolving embeddedLiteRtLmandStreamProxyframeworks from the app bundle. -
Added WebGPU mem64 selection through
ModelParams.preferMemory64andModelParams.modelBytesHintso large GGUF models such as Gemma 4 E2B can choose the 64-bit bridge core. - Fixed chat-app web downloads, LiteRT-LM web loading/generation, unsupported token-count refreshes, and misleading LiteRT-LM load progress.
- Hardened native and LiteRT-LM cancellation/disposal, multimodal cleanup, parser correctness, grammar generation, model download timeouts, and partial download resume behavior.
- Added Gemma 4 benchmark tooling, GGUF chat-feature smoke coverage, and the WebGPU Gemma 4 mem64 E2E scenario.
- Updated README and website docs for backend choice, capability limits, platform support, package-size controls, benchmark results, model templates, and pinned runtime artifacts.
-
Compatibility note: no public API breaking changes for existing GGUF /
llama.cpp callers. LiteRT-LM support is additive, with deprecated benchmark
wrappers retained for compatibility; unsupported llama.cpp-only parameters are
rejected for
.litertlmloads instead of being silently ignored.
0.6.17#
-
Synced native hook pinning and regenerated bindings through
leehack/llamadart-native@b9371, picking up llama.cppb9371. -
Picked up the Apple mobile Metal stability fix that disables Metal residency
sets on iOS/tvOS/visionOS native bundles, avoiding affected device
context-creation failures such as
MTLLibraryErrorDomain Code=3. -
Compatibility note: no public API breaking changes in
0.6.17; existing0.6.16callers remain compatible.
0.6.16#
-
Fixed native
getVramInfo()so llama.cpp GPU-class backend devices can report free/total VRAM when available, with Windows split-bundle registry fallback handling for backend-device symbols. - Improved browser recovery for large remote WebGPU model/projector loads by retrying wasm32 model-staging aborts with the wasm64 core before surfacing memory-pressure failures.
-
Improved the runnable chat app's web remote-model startup path so model assets
are prefetched into browser cache when available, browser
CacheStoragefailures fall back to direct network loading, and credentialed/signed model URLs skip persistent browser cache storage. - Improved the runnable chat app's mobile download behavior so lifecycle pauses no longer deliberately cancel active foreground downloads; the app now lets short screen-lock/background interruptions continue when the OS permits and still keeps explicit pause/dispose cancellation paths.
- Added in-app and docs guidance for mobile large-model downloads, including resumable partial files, foreground Dart lifecycle limits, and the need for opt-in native background download/model-store integrations for robust cross-app GGUF management.
-
Compatibility note: no public API breaking changes in
0.6.16; existing0.6.15callers remain compatible.
0.6.15#
- Fixed GLM-OCR and other multimodal chat-template workarounds so image and audio content parts are preserved when tool-call normalization runs, system prompts are merged before leading media parts, and invalid tool-call serialization fails loudly instead of silently falling back to the wrong template shape.
-
Added
tool/testing/run_local_e2e.dartas a discovery and orchestration entry point for heavyweight local-only Dart E2E, Flutter device, and Web/Playwright smoke scenarios. -
Hardened the upstream llama.cpp chat/template E2E runner against current
llama.cpp target renames, dynamic backend library lookup, and full
test-chatserver/mtmd build requirements. -
Documented that real-model/device/WebGPU scenarios remain skipped from
default CI and should be opted into explicitly with
--listand--dry-runfirst. -
Compatibility note: no public API breaking changes in
0.6.15; existing0.6.14callers remain compatible. The chat-template changes fix multimodal serialization behavior for affected templates, and the local E2E runner is additive.
0.6.14#
-
Updated the default WebGPU bridge asset pin to
leehack/llama-web-bridge-assets@v0.1.16(llama.cppb9165), picking up the published JS bridge build, TypeScript declaration asset, and refreshed bridge docs. - Added WebGPU readiness guidance covering browser capability checks, cross-origin isolation, bridge asset/version diagnostics, fallback behavior, model/configuration pressure, and the Flutter Web real-model smoke path.
-
Added
ModelDownloadController, a dependency-free helper that turnsModelDownloadManagercache/download work into app-facing lifecycle states for resolving, cache checks, downloads, verification, ready, failed, cancelled, and retry flows. -
Wired the runnable chat app example through a
ModelDownloadManageradapter so its model-management UI demonstrates the controller while preserving the example's multi-asset and web-cache service behavior. -
Compatibility note: no public API breaking changes in
0.6.14; the WebGPU bridge asset update andModelDownloadControllerare additive, and existing0.6.13callers remain compatible.
0.6.13#
-
Added package-managed model source downloads and cache management:
ModelSource,ModelLoadOptions,ModelCachePolicy, resolver targets, download/cache metadata, progress callbacks, cache inspection, removal, clearing, and age/size pruning. -
Added native/file-backed
DefaultModelDownloadManagersupport for streaming HTTP downloads,.partfiles with atomic promotion, authenticated bearer and custom headers, cooperative cancellation, retry, HTTP Range resume, cache hit/refresh/cache-only/no-cache policies, SHA-256 verification, and persisted redacted metadata for signed URLs. -
Improved Hugging Face
hf://ergonomics with?revision=...parsing for branch/ref names containing slashes, plus docs for private/gated bearer-token usage, separatemmprojassets, sharded-GGUF limitations, and redaction guarantees. -
Hardened download/cache correctness by serializing concurrent same-entry
downloads, recovering missing or malformed cache metadata sidecars, treating
mismatched byte-count/SHA-256 metadata as cache misses, and rejecting
remote-only options for local
ModelSource.path(...)inputs. -
Added
LlamaEngine.loadModelSource(...)so local path sources keep using the existing native loader, remote HTTP(S)/Hugging Face sources download through the package-managed native cache before local loading, and URL-capable web backends keep using direct URL loading for simple unauthenticated requests. -
Added KV-cache state persistence APIs:
LlamaEngine.supportsStatePersistence,stateSaveFile(...),stateLoadFile(...), backend support diagnostics, and WebGPU bridge forwarding for bridge assetsv0.1.15+. -
Compatibility note: no public API breaking changes in
0.6.13; existingloadModel(...)callers are unchanged.
0.6.12#
-
Synced default WebGPU bridge asset pinning to
leehack/llama-web-bridge-assets@v0.1.14(llama.cppb9016) to match the native runtime pin. - Picked up bridge-side Qwen UTF-8 streaming stabilization and multimodal fallback narrowing while preserving control-token output for parser consumers.
- Picked up the bridge-side BERT embedding thread-pool sizing fix so automatic thread selection does not exceed the compiled WebAssembly pthread pool.
-
Forwarded native-compatible
ModelParamsload tuning knobs through the WebGPU bridge path, including sequence slots, flash attention, KV cache type, RoPE overrides, split mode, and main GPU. -
Matched native batch defaults on WebGPU so unset
batchSizeandmicroBatchSizeusen_batch = n_ctxandn_ubatch = n_batch, avoiding first-embedding aborts for BERT-class/non-causal encoder models while preserving model-specific Qwen3.5-0.8B WebGPU safety tuning. - Filtered backend-owned runtime dependencies during native asset bundling so CUDA runtime DLLs and OpenBLAS runtime libraries are emitted only when their owning backend module is selected, while unknown runtime libraries stay bundled for forward compatibility.
- Compatibility note: no public API breaking changes in
0.6.12.
0.6.11#
-
Synced native hook pinning and regenerated bindings through
leehack/llamadart-native@b8955. -
Fixed Gemma 4 streaming so
<|channel>thought ... <channel|>output is emitted as thinking deltas instead of content text, including when channel markers are split across streamed chunks. - Tracked the chat app lockfile for stable generated Flutter plugin metadata in CI and release validation.
- Compatibility note: no public API breaking changes in
0.6.11.
0.6.10#
-
Synced native hook pinning and regenerated bindings through
leehack/llamadart-native@b8638. -
Hardened multimodal prompt overflow handling so native failures surface as
Dart exceptions, and reduced staged chat-app image size to a
384pxmax edge to lower multimodal context pressure. - Added built-in Gemma 4 template detection/render/parse support, including thinking and tool-call handling.
-
Added runtime projector capability gating so multimodal flows and the chat app
respect actual
supportsVision/supportsAudioresults instead of model-family assumptions. - Compatibility note: no public API breaking changes in
0.6.10.
0.6.9#
-
Documented that iOS builds require a minimum deployment target of
16.4or newer across the README, docs site, and example docs. -
Updated
example/chat_appiOS Podfile and Runner project settings to use deployment target16.4. -
Honored
ggml_backend_scoreduring Android asset-based backend fallback so unsupported CPU variant libraries are skipped before initialization. -
Changed Android
autobackend resolution to prefer CPU by default while keeping Vulkan available for explicit opt-in. -
Clarified that changing
hooks.user_definesrequiresflutter clean && flutter pub getbefore rebuilding. - Compatibility note: no public API breaking changes in
0.6.9.
0.6.8#
-
Synced native hook pinning and regenerated bindings to
leehack/llamadart-native@b8480. - Refreshed generated low-level FFI bindings to match the synced upstream headers.
- Compatibility note: no public API breaking changes in
0.6.8.
0.6.7#
-
Synced native hook pinning and regenerated bindings to
leehack/llamadart-native@b8373. -
Hardened Linux bundle loading for packaged apps and improved versioned
libllamadartdependency resolution. -
Fixed Hermes tool-call parsing when whitespace appears between
<tool_call>and the JSON payload. - Compatibility note: no public API breaking changes in
0.6.7.
0.6.6#
- Synced native hook pin to
leehack/llamadart-native@b8216. -
Updated default web bridge asset pinning to
leehack/llama-web-bridge-assets@v0.1.10(llama.cppb8216). - Switched bundled Qwen3.5 example presets to Unsloth
Q4_K_MGGUFs. -
Added native perf diagnostics chips in the chat app (
p_eval,eval,sample,reuse) and Android-specific Qwen tuning guidance. -
Restored a targeted Android Vulkan fast path for local Qwen3.5
0.8B/2B/4Bmodels while keeping CPU as the recommended Android preset for0.8B/2B. - Fixed local web chat app bridge/runtime handling for Qwen prompt streaming and multimodal fallback behavior.
- Compatibility note: no public API breaking changes in
0.6.6.
0.6.5#
-
Added embedding APIs:
LlamaEngine.embed(...)andLlamaEngine.embedBatch(...). - Added backend embedding capability interfaces for custom backend implementations.
-
Added multi-sequence embedding batching support via
ModelParams.maxParallelSequences(n_seq_max). -
Added native embedding benchmark tooling:
tool/testing/native_embedding_benchmark.dartandtool/testing/native_embedding_sweep.dart. - Added website docs for embeddings and updated basic-app docs with embedding examples.
-
Added a Basic App SQLite vector retrieval example using
bin/llamadart_sqlite_vector_example.dart. -
Updated default WebGPU bridge asset pinning to
leehack/llama-web-bridge-assets@v0.1.8. - Improved WebGPU runtime stability/tuning in chat app flows (backend switching, streaming smoothness, and multimodal regression gating).
- Added GPU-path multimodal image-size capping to reduce memory/runtime pressure on larger image inputs.
- Compatibility note: no public API breaking changes in
0.6.5.
0.6.4#
- Aligned multimodal projector offload with effective model-load settings, including CPU-only configurations.
- Added safer backend selection/discovery APIs and improved runtime backend status plus GPU-layer diagnostics accuracy.
- Improved web large-model handling with cache-prefetch download UX, bridge worker fallback paths, memory-pressure retries, and wasm64-core fallback wiring.
-
Synced native hook tag to
b8157and added Android arm64 CPU-profile and variant policy support with loader hardening.
0.6.3#
-
Synced native runtime to llama.cpp
b8138and picked up Android arm64 crash/compatibility hardening. - Example app performance/UX polish and web model handling improvements.
-
Added
example/tui_coding_agent, a terminal coding agent example with default stable text-protocol tool mode. - Added persisted settings log-level fallback handling with regression tests.
0.6.2#
- Native inference performance improvements (request overhead, stream batching, and prompt-prefix reuse with parity-safe fallback).
- Added native benchmark and prompt-reuse parity tooling, plus CI parity coverage.
0.6.1#
- Publishing compatibility fix for hook backend-config code paths.
- Continued parity hardening around template/parser behavior.
0.6.x line highlights#
- Expanded llama.cpp template and parser parity.
- Stronger handling for tool payload fidelity.
- More deterministic behavior around template routing and fallback removal.
0.5.x line highlights#
- Public API tightening and migration cleanup.
- Split Dart/native log controls.
- Example/runtime reliability improvements.
Release usage guidance#
- For upgrade planning, combine this page with Upgrade Checklist.
- For breaking changes, always validate against the exact release tag notes.