v0.4.1

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

Upgrading?

AI Summary

This release focuses on refining documentation accuracy and introducing new Java SDK capabilities, alongside critical bug fixes for serving, training, and structured decision routing.

Key Highlights

  • Added dispatch router lifecycle hooks and AsyncHook to the Java SDK
  • Enabled registration of extra checkpoints via the LAYA_EXTRA_MODELS environment variable
  • Fixed ONNX handling for single-option questions and training device placement
  • Improved documentation accuracy for hooks, APIs, and benchmarks

New Features

  • Java dispatch router lifecycle hooks
  • AsyncHook
  • Language routing and presets
  • Embedding shortlist
  • Serve extra checkpoints from environment variable

Full Release Notes

## What's Changed
* docs(benchmarks): the English-vs-rest table has three columns, so every number sat under the wrong header by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1024
* docs(confidence): answer_confidence describes the clamped temperature, not the fitted one by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1026
* docs(mcp): the environment table names LAYA_API_KEY by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1027
* docs(dotnet): the Instructions remark names the escaping Python stopped doing by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1029
* docs(benchmarks): sv moves down in the refreshed sweep, so not every large mover moves up by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1030
* fix(fixtures): skip predict_golden when the checkpoint beside the graph is absent by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1031
* docs(guardrails): Document prompt_injection limitation on document-shaped text (#781) by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1032
* docs(hooks): eight pages describe a dispatch the code does not do by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1033
* docs(readme): seven return shapes and feature lists that do not match the code by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1034
* fix(choice): sort criteria keys for order-invariant option rendering by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1035
* docs(dotnet): six claims in the .NET README and MODELS that the SDK contradicts by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1037
* docs(http-api): five tables that disagree with the endpoint they document by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1038
* docs(integrations): min_confidence flags the answer, it does not withhold it by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1039
* docs(evals): the metric table does not match a default run by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1040
* docs(benchmarks): the laya typed-decisions row must round its committed file, like the row below it by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1041
* docs(mcp): a remote batch is one request per item for every batch, not only a heterogeneous one by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1042
* docs(contributing): the extras list must name all nine, starting with… by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1043
* docs(docker): the GPU image installs cu130 wheels, not CUDA 12.8 by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1044
* fix(evals): write redirected output as utf-8 by @plox-sumit in https://github.com/NandhaKishorM/laya/pull/1045
* feat(java): dispatch router lifecycle hooks, and add AsyncHook by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1046
* feat(serve): register extra checkpoints from LAYA_EXTRA_MODELS by @jxoesneon in https://github.com/NandhaKishorM/laya/pull/1047
* fix(serve): serve again after the app's lifespan restarts by @hemanthrayuduu in https://github.com/NandhaKishorM/laya/pull/1049
* fix(structured): let Router.decide_batch pin a checkpoint by @hemanthrayuduu in https://github.com/NandhaKishorM/laya/pull/1050
* fix(onnx): answer single-option questions instead of failing in TopK by @hemanthrayuduu in https://github.com/NandhaKishorM/laya/pull/1051
* fix(train): move the model to the device before the base evaluation by @FerryQ in https://github.com/NandhaKishorM/laya/pull/1052
* feat(java): language routing, presets and the embedding shortlist by @keemsisi in https://github.com/NandhaKishorM/laya/pull/938
* feat(train): print the optimizer-update budget before a run by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/1014
* fix(ts): reject impossible min_confidence bucket keys in both TypeScript trees by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/1015
* docs(finetune): add the #963 positive-control and multi-seed diagnostic by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/1016
* refactor(finetune): converge the Kaggle DDP path on shared training primitives by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/1017
* docs(window): floor and room binding on two prose sites that teach it by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1018
* docs(reference): document the pre-run request sizing surface by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/1019
* fix(dotnet): synchronize EnsureStrippedTokenizer to prevent race cond… by @LEVELING2108 in https://github.com/NandhaKishorM/laya/pull/1020
* docs(hooks): run_id is shared by the predict events, not by on_load/on_evict by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1021
* docs(mcp): both batch rows must name every call argument their handler takes by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1022
* docs(readme): routing metadata is five keys, not the three the page showed by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1023
* docs(mcp): the laya_status row names the per-checkpoint device map by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1028

## New Contributors
* @jxoesneon made their first contribution in https://github.com/NandhaKishorM/laya/pull/1047
* @FerryQ made their first contribution in https://github.com/NandhaKishorM/laya/pull/1052

**Full Changelog**: https://github.com/NandhaKishorM/laya/compare/v0.4.0...v0.4.1

Related Repositories