v0.3.24
NandhaKishorM/layav0.3.24Oct 2, 2026by github-actions[bot]
Upgrading?
AI Summary
A feature-rich release introducing selective-classification metrics, histogram-binning recalibration, and the `LAYA_JEV_STRICT` wire contract, alongside numerous fixes for routing, hooks, and language handling.
Key Highlights
- Selective-classification metrics (brier, aurc, selective accuracy)
- Histogram-binning recalibration for answer_confidence
- Strict JEV wire contract support (`LAYA_JEV_STRICT`)
- Per-option-count abstention thresholds
New Features
- Selective-classification metrics
- Histogram-binning recalibration
- Strict JEV wire contract
- Per-option-count abstention thresholds
Full Release Notes
## What's Changed * docs: expand install guide and add minimal quick-start by @xiehuanyi in https://github.com/NandhaKishorM/laya/pull/162 * fix(agent): resolve checkpoint names and aliases in load() by @Yi-111-a in https://github.com/NandhaKishorM/laya/pull/789 * fix(serve): refuse an unpaired surrogate on /v1/systemone/batch too by @aashish254 in https://github.com/NandhaKishorM/laya/pull/814 * docs(http-api): report every key a decision response actually carries by @aashish254 in https://github.com/NandhaKishorM/laya/pull/816 * docs(router): add routing guide by @Asthenia0412 in https://github.com/NandhaKishorM/laya/pull/461 * chore(deps-dev): Bump vitest from 2.1.9 to 5.0.1 in /laya-ts by @dependabot[bot] in https://github.com/NandhaKishorM/laya/pull/631 * chore(deps-dev): Bump typescript from 5.9.3 to 7.0.2 in /laya-ts by @dependabot[bot] in https://github.com/NandhaKishorM/laya/pull/633 * feat(ts): report the options a head budget collapsed, as laya.common does by @aashish254 in https://github.com/NandhaKishorM/laya/pull/817 * fix(docker): upgrade bundled pip and setuptools in the runtime venv by @xiehuanyi in https://github.com/NandhaKishorM/laya/pull/818 * docs(structured): gate every documented usage shape against the code by @aashish254 in https://github.com/NandhaKishorM/laya/pull/819 * fix(router): synchronize unload per checkpoint instead of globally by @Sarthak-Pandey in https://github.com/NandhaKishorM/laya/pull/881 * fix(hooks): accept sequences in hooks_installed and enforce in API contract by @Swatantra-66 in https://github.com/NandhaKishorM/laya/pull/882 * fix(hooks): reject non-finite hooks_timeout and enforce in API contract by @Swatantra-66 in https://github.com/NandhaKishorM/laya/pull/883 * fix(evals): fail the gates on a NaN metric, limit or tolerance by @abhijithneilabraham in https://github.com/NandhaKishorM/laya/pull/836 * docs(sdk): the design page must name the controls the client really forwards by @aashish254 in https://github.com/NandhaKishorM/laya/pull/837 * docs(examples): the truncation pages must teach the report and the clamp they deny by @aashish254 in https://github.com/NandhaKishorM/laya/pull/841 * docs(examples): example 35 must teach the MPS autocast policy it denies by @aashish254 in https://github.com/NandhaKishorM/laya/pull/842 * fix(examples): example 39 must run, and must name the error it really raises by @aashish254 in https://github.com/NandhaKishorM/laya/pull/843 * fix(examples): example 24 must state the resident cap Router defaults to by @aashish254 in https://github.com/NandhaKishorM/laya/pull/844 * fix(examples): example 33 must teach the head budget build_head implements by @aashish254 in https://github.com/NandhaKishorM/laya/pull/845 * fix(calibration): validate fitting inputs and save maps atomically by @antonio-mello-ai in https://github.com/NandhaKishorM/laya/pull/846 * docs(http-api): list laya-php, the PHP client that targets laya-serve by @Yi-111-a in https://github.com/NandhaKishorM/laya/pull/847 * fix(router): build checkpoints outside the lifecycle lock by @tiagovilasboas in https://github.com/NandhaKishorM/laya/pull/849 * fix(examples): example 28 must compute the conclusions it prints by @aashish254 in https://github.com/NandhaKishorM/laya/pull/850 * docs(shortlist): publish the ordering contract the code ranks by by @aashish254 in https://github.com/NandhaKishorM/laya/pull/852 * feat(confidence): per-option-count abstention thresholds (Closes #394) by @AlKor13 in https://github.com/NandhaKishorM/laya/pull/853 * feat(evals): selective-classification metrics (brier, aurc, selective accuracy) by @AlKor13 in https://github.com/NandhaKishorM/laya/pull/854 * fix(langchain): .batch() forwards lang and min_confidence like .invoke() by @AlKor13 in https://github.com/NandhaKishorM/laya/pull/855 * fix(serve): /v1/systemone/batch total_usage sums output_tokens instead of reporting 0 by @AlKor13 in https://github.com/NandhaKishorM/laya/pull/856 * fix(mcp): laya_predict_batch validates min_confidence and hooks_timeout up front by @AlKor13 in https://github.com/NandhaKishorM/laya/pull/857 * fix(mcp): type-check a batch item's lang_guess like the single-request path by @AlKor13 in https://github.com/NandhaKishorM/laya/pull/858 * ci(windows): install the extras and httpx the suite list assumes by @thread3d in https://github.com/NandhaKishorM/laya/pull/860 * fix(agent): warn on fallbacks instead of printing to stdout by @thread3d in https://github.com/NandhaKishorM/laya/pull/861 * fix(agent): catch an in-place question rewrite in the scan-budget guard by @thread3d in https://github.com/NandhaKishorM/laya/pull/862 * fix(agent): reject non-scalar choice labels exactly, not by deny-list by @thread3d in https://github.com/NandhaKishorM/laya/pull/863 * ci(typescript-sdk): pin the three floating actions by SHA by @thread3d in https://github.com/NandhaKishorM/laya/pull/864 * ci(evals): run the offline research suites no workflow executes by @thread3d in https://github.com/NandhaKishorM/laya/pull/865 * ci(evals): run the ONNX parity and demo-server suites in the weight lane by @thread3d in https://github.com/NandhaKishorM/laya/pull/866 * docs(readme): link absolutely in the published READMEs, and name the gate fields by @thread3d in https://github.com/NandhaKishorM/laya/pull/867 * fix(laya-ts): keep bytecode out of the npm tarball and ship the LICENSE by @thread3d in https://github.com/NandhaKishorM/laya/pull/868 * ci: run one shared test list in CI and before a release by @thread3d in https://github.com/NandhaKishorM/laya/pull/869 * feat(serve): LAYA_JEV_STRICT projects the response onto the strict Jev wire contract by @davidberardozzi in https://github.com/NandhaKishorM/laya/pull/870 * feat(calibrate): histogram-binning recalibration for answer_confidence by @AlKor13 in https://github.com/NandhaKishorM/laya/pull/871 * fix(laya-ts): verify ONNX artifacts before importing the native runtime by @thread3d in https://github.com/NandhaKishorM/laya/pull/872 * fix(serve): reject a null score level with 422 instead of an unparseable null legend (#302) by @AlKor13 in https://github.com/NandhaKishorM/laya/pull/873 * fix(fast): partition the decision head's attention by the head's own head count by @AlKor13 in https://github.com/NandhaKishorM/laya/pull/874 * docs(agent): fix predict_long's note on when a window is cut by @somtri in https://github.com/NandhaKishorM/laya/pull/875 * fix(hooks): close unawaited coroutine when run_coroutine_sync rejects loop by @kaushikharsh99 in https://github.com/NandhaKishorM/laya/pull/877 * feat(sdk): type and validate the whole usage report /v1/systemone answers with by @aashish254 in https://github.com/NandhaKishorM/laya/pull/820 * fix(sdk): type the mixed_segment a routing detection answer carries by @aashish254 in https://github.com/NandhaKishorM/laya/pull/821 * fix(sdk): read the confidence an answer is gated on and the abstention report by @aashish254 in https://github.com/NandhaKishorM/laya/pull/822 * docs(serve): document the abstention gate's report on every answer, and hold the answer table to the code by @aashish254 in https://github.com/NandhaKishorM/laya/pull/824 * fix(agent): hold the tokenizer lock while predict_long encodes the state by @abhijithneilabraham in https://github.com/NandhaKishorM/laya/pull/831 * fix(calibrate): run records_from_labeled with gradients off by @abhijithneilabraham in https://github.com/NandhaKishorM/laya/pull/832 * fix(integrations): gate a LayaTaskGuard score question on its upper-half probability by @abhijithneilabraham in https://github.com/NandhaKishorM/laya/pull/833 * docs: correct cross-references, remove duplicated text and repair two stale paths by @ashyyhere in https://github.com/NandhaKishorM/laya/pull/840 ## New Contributors * @xiehuanyi made their first contribution in https://github.com/NandhaKishorM/laya/pull/162 * @Asthenia0412 made their first contribution in https://github.com/NandhaKishorM/laya/pull/461 * @abhijithneilabraham made their first contribution in https://github.com/NandhaKishorM/laya/pull/836 * @antonio-mello-ai made their first contribution in https://github.com/NandhaKishorM/laya/pull/846 * @tiagovilasboas made their first contribution in https://github.com/NandhaKishorM/laya/pull/849 * @kaushikharsh99 made their first contribution in https://github.com/NandhaKishorM/laya/pull/877 * @ashyyhere made their first contribution in https://github.com/NandhaKishorM/laya/pull/840 **Full Changelog**: https://github.com/NandhaKishorM/laya/compare/v0.3.23...v0.3.24
Related Repositories
public-apis/public-apis★ 491,190
A collective list of free APIs
NousResearch/hermes-agent★ 256,045
The agent that grows with you
yt-dlp/yt-dlp★ 200,215
A feature-rich command-line audio/video downloader
microsoft/markitdown★ 191,537
Python tool for converting files and office documents to Markdown.
Significant-Gravitas/AutoGPT★ 187,699
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.