Skip to content

v0.16.2

Choose a tag to compare

@github-actions github-actions released this 25 Oct 06:56
· 162 commits to main since this release
1301165
  • Update the default LiteRT-LM native runtime to leehack/litert-lm-native@v0.18.1-4. Windows x64 apps no longer need the Visual C++ Redistributable for LiteRT-LM, which now ships its own Visual C++ runtime DLLs (litert-lm-native#87); llama.cpp already did, so only the opt-in stable_diffusion runtime still needs it. On Linux and Windows, LiteRT-LM CPU inference uses the configured thread count instead of one thread: Qwen3 0.6B CPU decode is 3.3× faster on an 8-vCPU Linux arm64 host and 2.2× faster on a 4-vCPU Windows x64 host (litert-lm-native#89, #1375). Flutter Apple apps get it with llamadart_litert_lm_flutter 0.16.2.
  • Linux and Windows apps built with dart build cli, flutter build linux or flutter build windows load LiteRT-LM from their own bundle, so a copied or installed app no longer fails with Failed to load dynamic library 'package:llamadart/litert_lm_LiteRtLm' once the project's hook cache is out of reach (#1397).
  • LiteRT-LM native embedding loads throw LlamaUnsupportedException on Linux, Windows and Android x86_64 instead of failing at engine creation or crashing the process; they stay available on macOS arm64, iOS arm64 and Android arm64 (verified on a Galaxy S24 without SME and on arm64 emulators) (#1367).
  • Native LiteRT-LM reports length instead of stop when a reply reaches maxTokens or fills the context, and automatic sendWithTools/completeWithTools loops now run on it, stopping truncated without running tools on a cut-off reply. This needs a runtime whose stream_proxy_finish_reason_abi_version export returns 1 (litert-lm-native v0.18.0-3 or later, including the default pin); on older runtimes loops still throw LlamaUnsupportedException. LiteRtLmRuntimeClient adds supportsFinishReasons and lastFinishReason. Web LiteRT-LM is unchanged (#919).
  • Aligned the default WebGPU bridge assets to v0.1.73: Web embed() and embedBatch() throw LlamaUnsupportedException for rank-pooled rerankers instead of returning an invalid vector built from classifier scores, and LlamaEmbeddingInputTooLongException for an input longer than the one micro-batch it must fit, instead of embedding only part of it or aborting the runtime, as native does (llama-web-bridge#194). Upstream v0.7.0@620d2225cc436ab0b001e3200e590e3b286ef9ab matches native v0.7.0-2, which the manifest records; Web LiteRT-LM stays @litert-lm/core@0.18.0. Manifest SHA-256: f89c41d151b7df0cbe4f5e97f95563e31e0968c13e65a630e4e0dba28adb1d44.
  • Add dart run llamadart:web_setup: it downloads the Web bridge files this version pins into web/webgpu_bridge/, checks each against the pinned release manifest and adds the loader to web/index.html; reruns keep current files, and --check verifies offline. It refuses a page that already loads the bridge, so remove a hand-written loader first. With its loader, a page whose files are missing fails the first model load at once instead of after 12 seconds (#855).
  • Native llama.cpp usage.promptTokens counts the tokens of an image or audio prompt, as llama-server does, instead of its positions, which M-RoPE vision models such as Qwen3.5 report far fewer of (#696).
  • Native llama.cpp frees each context's token batch and sampler chain, and the sampler chain of a running generation, when its worker isolate is killed, instead of leaking about 0.1 MiB per kill plus 12 bytes per vocabulary token during generation (1.8 MiB for Qwen2.5) (#1404).
  • Correct the LlamaVideoContent rejection text: on desktop it points to a projector without a vision encoder instead of saying video support is built out, and it names Android and iOS as the platforms whose artifacts lack video (#320).