v0.3.28

browser-use/video-usev0.3.28Oct 5, 2026by github-actions[bot]

Upgrading?

AI Summary

A major refactoring consolidates fine-tuning workflows with the new laya.train module and CLI, alongside improvements to routing and packaging.

Key Highlights

  • Unified fine-tuning loop (laya.train) shared between notebooks and scripts
  • Released laya-train CLI with CSV/expected dataset loaders
  • Added a registry of custom checkpoints for the router
  • Fixed Apple Silicon temperature clamping and packaging wheels

New Features

  • Unified laya.train module
  • laya-train CLI
  • Dataset loaders (CSV/expected)
  • Router registry for custom checkpoints
  • predict_tournament for choice questions

Full Release Notes

## What's Changed
* fix(serve): refuse unpublished path-like model ids instead of auto-routing by @sathariels in https://github.com/NandhaKishorM/laya/pull/930
* fix(finetune): the Apple Silicon and research scripts fit temperatures outside the runtime clamp by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/851
* feat(train): add laya.train, one fine-tuning loop for the notebook and scripts to share by @GuilhermeFusari in https://github.com/NandhaKishorM/laya/pull/899
* docs(router): explain why predict_batch composes default hooks by @sathariels in https://github.com/NandhaKishorM/laya/pull/929
* feat(train): add laya-train CLI and CSV/expected dataset loaders (#887) by @Swatantra-66 in https://github.com/NandhaKishorM/laya/pull/931
* fix(train): warn when the fine-tune's calibration rests on too little by @GuilhermeFusari in https://github.com/NandhaKishorM/laya/pull/933
* fix(train): skip questions whose options run past max_len instead of crashing the batch by @GuilhermeFusari in https://github.com/NandhaKishorM/laya/pull/934
* fix(ts): forward per-call hook options through predictBatch by @sathariels in https://github.com/NandhaKishorM/laya/pull/936
* feat(router): a registry of checkpoints beside the built-ins by @alandefreitas in https://github.com/NandhaKishorM/laya/pull/937
* fix(ts): clean French mail like Python by @kevin9327 in https://github.com/NandhaKishorM/laya/pull/939
* fix(packaging): include inference backends in wheels by @NikitaaRamesh in https://github.com/NandhaKishorM/laya/pull/940
* fix(train): normalize partial accumulation windows by @NikitaaRamesh in https://github.com/NandhaKishorM/laya/pull/941
* fix(java): keep empty action probabilities finite by @NikitaaRamesh in https://github.com/NandhaKishorM/laya/pull/942
* fix(common): support torch 2.0-2.3 in the action-head dtype check by @thread3d in https://github.com/NandhaKishorM/laya/pull/945
* test(compile): guard the duck-shaping checks on a torch without the config by @thread3d in https://github.com/NandhaKishorM/laya/pull/946
* feat(setup): a macOS/Intel checkout setup and verification path by @thread3d in https://github.com/NandhaKishorM/laya/pull/948
* test(model): skip the bf16 legs on a Windows CPU, which SIGILLs by @thread3d in https://github.com/NandhaKishorM/laya/pull/949
* feat(shortlist): add predict_tournament for choice questions past the option budget by @Rish-it in https://github.com/NandhaKishorM/laya/pull/950
* feat(common): parallel option layout for order-invariant decisions by @sharath-sms in https://github.com/NandhaKishorM/laya/pull/951
* build(docker): default the base image to Debian 13 (trixie) by @somtri in https://github.com/NandhaKishorM/laya/pull/953
* fix(evals): refuse a NaN --min-accuracy or --max-ece like the --min pairs by @sameedkhan17 in https://github.com/NandhaKishorM/laya/pull/954
* fix(ts): count an English/foreign collision word once, like Python by @sameedkhan17 in https://github.com/NandhaKishorM/laya/pull/955
* fix(dotnet): match French device footers with normal spacing by @sameedkhan17 in https://github.com/NandhaKishorM/laya/pull/956
* fix(calibrate): fit abstention cuts on the 4-decimal confidences the gate reads by @sameedkhan17 in https://github.com/NandhaKishorM/laya/pull/957
* fix(mcp): keep and validate a question's option_order by @sameedkhan17 in https://github.com/NandhaKishorM/laya/pull/958
* fix(onnx): catch an in-place question rewrite in the scan-budget guard by @sameedkhan17 in https://github.com/NandhaKishorM/laya/pull/959
* fix(structured): resolve local $defs refs so pydantic Enum fields become choices by @sameedkhan17 in https://github.com/NandhaKishorM/laya/pull/960
* fix(ci): ignore false positive sha256 checksums in gitleaks (#961) by @Swatantra-66 in https://github.com/NandhaKishorM/laya/pull/962

## New Contributors
* @GuilhermeFusari made their first contribution in https://github.com/NandhaKishorM/laya/pull/899
* @alandefreitas made their first contribution in https://github.com/NandhaKishorM/laya/pull/937
* @kevin9327 made their first contribution in https://github.com/NandhaKishorM/laya/pull/939
* @sharath-sms made their first contribution in https://github.com/NandhaKishorM/laya/pull/951
* @sameedkhan17 made their first contribution in https://github.com/NandhaKishorM/laya/pull/954

**Full Changelog**: https://github.com/NandhaKishorM/laya/compare/v0.3.27...v0.3.28

Related Repositories