v0.1.41-beta
ocrmypdf/OCRmyPDFv0.1.41-betaMay 19, 2026by danielhanchen
AI Summary
This update focuses on bug fixes and UI/UX improvements for Unsloth Studio, including fixes for offline mode support, MTP (Multi-Token Prediction) performance on various hardware, and desktop shortcuts.
Key Highlights
- Fixes for `unsloth studio update` command and desktop shortcuts not working.
- Improved MTP performance on Macs, CPUs, and GPUs.
- Enhanced offline mode support.
- Multiple UI/UX bug fixes including accessibility and layout adjustments.
- Tool calling support for Llama-3, Mistral, and Gemma 4 on safetensors.
New Features
- Tool healing utilities.
- Speculative decoding toggle for MTP.
- Playwright default model expectation derivation.
- Respect for `HF_HUB_OFFLINE` and `TRANSFORMERS_OFFLINE` environment variables.
- Fix for GGUF multi-image chat handling.
Full Release Notes
## Lots of bug fixes, UI, UX fixes to Studio! To get the latest updates do: #### macOS, Linux, WSL: ```bash curl -fsSL https://unsloth.ai/install.sh | sh ``` #### Windows: ```powershell irm https://unsloth.ai/install.ps1 | iex ``` ## Fixes 1. Fix `unsloth studio update` not working well 2. Fix getting stuck on `reset-password` page 3. More offline mode support 4. Improve MTP not being faster on Macs, CPUs and GPUs - now it's much better! 5. Fix Desktop Shortcut not working after update 6. Many many UI UX bug fixes ## What's Changed in Unsloth * install scripts: bump unsloth pin to >=2026.5.3 by @danielhanchen in https://github.com/unslothai/unsloth/pull/5557 * studio: engage draft-mtp on vision MTP GGUFs (drop incorrect vision gate) by @danielhanchen in https://github.com/unslothai/unsloth/pull/5560 * install scripts: bump unsloth pin to >=2026.5.4 by @danielhanchen in https://github.com/unslothai/unsloth/pull/5566 * Studio: derive Playwright default model expectation by @Imagineer99 in https://github.com/unslothai/unsloth/pull/5589 * studio: read Playwright default model from defaults.py without importing it by @danielhanchen in https://github.com/unslothai/unsloth/pull/5595 * [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/unslothai/unsloth/pull/5586 * studio: fix toast close-button click and light-mode hover by @shimmyshimmer in https://github.com/unslothai/unsloth/pull/5597 * fix(loader): honour HF_HUB_OFFLINE/TRANSFORMERS_OFFLINE env vars by @xodn348 in https://github.com/unslothai/unsloth/pull/5598 * studio: emit one comma-chained --spec-type for CPU/Mac MTP path by @danielhanchen in https://github.com/unslothai/unsloth/pull/5575 * Fix loss function not patched for Qwen3.5 models by @rycerzes in https://github.com/unslothai/unsloth/pull/5442 * Fix GGUF multi-image chat handling by @alkinun in https://github.com/unslothai/unsloth/pull/5508 * Expose standalone tool healing utilities by @alkinun in https://github.com/unslothai/unsloth/pull/5583 * studio/frontend: reconcile stale must_change_password localStorage flag by @danielhanchen in https://github.com/unslothai/unsloth/pull/5576 * studio/frontend: cap auto-load cascade attempts by @danielhanchen in https://github.com/unslothai/unsloth/pull/5578 * studio: regenerate desktop launcher on `unsloth studio update` (macOS + Linux + Windows) by @danielhanchen in https://github.com/unslothai/unsloth/pull/5577 * ci: advisory lockfile supply-chain audit (no install-script changes) by @danielhanchen in https://github.com/unslothai/unsloth/pull/5604 * loader: import FORCE_FLOAT32 from unsloth_zoo (single source of truth) by @danielhanchen in https://github.com/unslothai/unsloth/pull/5610 * fix(peft): expose finetune_last_n_layers for parity with mlx-lm CLI by @danielhanchen in https://github.com/unslothai/unsloth/pull/5564 * studio: add --spec-draft-n-max toggle for MTP speculative decoding by @danielhanchen in https://github.com/unslothai/unsloth/pull/5582 * studio: reserve VRAM headroom for the MTP draft cache in auto-fit by @danielhanchen in https://github.com/unslothai/unsloth/pull/5585 * Studio: tools, thinking blocks, code execution and web search for safetensors by @danielhanchen in https://github.com/unslothai/unsloth/pull/5520 * studio/frontend: widen settings sidebar so 'Connections' label fits by @danielhanchen in https://github.com/unslothai/unsloth/pull/5607 * studio: respect prefers-reduced-motion across animations by @danielhanchen in https://github.com/unslothai/unsloth/pull/5611 * studio/frontend: guard message-timing badge against unphysical tok/s by @danielhanchen in https://github.com/unslothai/unsloth/pull/5570 * studio/web: differentiate offline from backend-down in fetch error by @danielhanchen in https://github.com/unslothai/unsloth/pull/5591 * studio/frontend: keep theme classes mutually exclusive on <html> by @danielhanchen in https://github.com/unslothai/unsloth/pull/5580 * studio/frontend: show Loading fallback instead of blank pane on lazy route navigation by @danielhanchen in https://github.com/unslothai/unsloth/pull/5568 * studio/frontend: include filename in attachment aria-label + img alt by @danielhanchen in https://github.com/unslothai/unsloth/pull/5594 * studio/frontend: compare composer blocks send when no model picked by @danielhanchen in https://github.com/unslothai/unsloth/pull/5574 * studio: restore focus to opener when settings dialog closes by @danielhanchen in https://github.com/unslothai/unsloth/pull/5612 * studio/frontend: add aria-label to Dictate / Stop dictation buttons by @danielhanchen in https://github.com/unslothai/unsloth/pull/5599 * studio/frontend: settings dialog fits viewport at tablet widths by @danielhanchen in https://github.com/unslothai/unsloth/pull/5600 * studio/frontend: show Generation stopped placeholder when cancelled mid-thinking by @danielhanchen in https://github.com/unslothai/unsloth/pull/5565 * studio: tool calling for Llama-3, Mistral, Gemma 4 on safetensors + MLX by @danielhanchen in https://github.com/unslothai/unsloth/pull/5615 * Revert "studio: tool calling for Llama-3, Mistral, Gemma 4 on safetensors + MLX (#5615)" by @danielhanchen in https://github.com/unslothai/unsloth/pull/5619 ## What's Changed in Unsloth Zoo: * Honour offline env vars when enabling hf_transfer by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/675 * Fix Studio q2_k_l GGUF export and new llama.cpp converter package layout by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/667 * fix(mlx): match mlx-lm batch padding rule (1 + pad_to * ceil) by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/672 * fix(mlx): expose finetune_last_n_layers for parity with mlx-lm CLI by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/669 * fix(mlx): honor max_grad_value=None as a disable signal by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/671 * fix(mlx): seed mx.random immediately before linear_to_lora_layers (re-PR of #674) by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/678 * fix(mlx): warn on bf16 -> fp16 downcast in FastMLXModel loader by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/670 * fix(mlx): make_baseline_loss_fn byte-identical to mlx-lm default_loss when labels=None by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/673 * Fix Q2_K_L recipe: q2_k base + ffn_down=Q3_K, output=Q6_K, embed=Q4_K by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/677 **Full Changelog**: https://github.com/unslothai/unsloth/compare/v0.1.40-beta...v0.1.41-beta