Repository navigation
Releases: NandhaKishorM/laya
Releases · NandhaKishorM/laya
Release list
v0.4.1
What's Changed
- docs(benchmarks): the English-vs-rest table has three columns, so every number sat under the wrong header by @keemsisi in #1024
- docs(confidence): answer_confidence describes the clamped temperature, not the fitted one by @keemsisi in #1026
- docs(mcp): the environment table names LAYA_API_KEY by @keemsisi in #1027
- docs(dotnet): the Instructions remark names the escaping Python stopped doing by @keemsisi in #1029
- docs(benchmarks): sv moves down in the refreshed sweep, so not every large mover moves up by @keemsisi in #1030
- fix(fixtures): skip predict_golden when the checkpoint beside the graph is absent by @keemsisi in #1031
- docs(guardrails): Document prompt_injection limitation on document-shaped text (#781) by @aashish254 in #1032
- docs(hooks): eight pages describe a dispatch the code does not do by @keemsisi in #1033
- docs(readme): seven return shapes and feature lists that do not match the code by @keemsisi in #1034
- fix(choice): sort criteria keys for order-invariant option rendering by @aashish254 in #1035
- docs(dotnet): six claims in the .NET README and MODELS that the SDK contradicts by @keemsisi in #1037
- docs(http-api): five tables that disagree with the endpoint they document by @keemsisi in #1038
- docs(integrations): min_confidence flags the answer, it does not withhold it by @keemsisi in #1039
- docs(evals): the metric table does not match a default run by @keemsisi in #1040
- docs(benchmarks): the laya typed-decisions row must round its committed file, like the row below it by @keemsisi in #1041
- docs(mcp): a remote batch is one request per item for every batch, not only a heterogeneous one by @keemsisi in #1042
- docs(contributing): the extras list must name all nine, starting with… by @keemsisi in #1043
- docs(docker): the GPU image installs cu130 wheels, not CUDA 12.8 by @keemsisi in #1044
- fix(evals): write redirected output as utf-8 by @plox-sumit in #1045
- feat(java): dispatch router lifecycle hooks, and add AsyncHook by @keemsisi in #1046
- feat(serve): register extra checkpoints from LAYA_EXTRA_MODELS by @jxoesneon in #1047
- fix(serve): serve again after the app's lifespan restarts by @hemanthrayuduu in #1049
- fix(structured): let Router.decide_batch pin a checkpoint by @hemanthrayuduu in #1050
- fix(onnx): answer single-option questions instead of failing in TopK by @hemanthrayuduu in #1051
- fix(train): move the model to the device before the base evaluation by @FerryQ in #1052
- feat(java): language routing, presets and the embedding shortlist by @keemsisi in #938
- feat(train): print the optimizer-update budget before a run by @Bruce-Yii in #1014
- fix(ts): reject impossible min_confidence bucket keys in both TypeScript trees by @Bruce-Yii in #1015
- docs(finetune): add the #963 positive-control and multi-seed diagnostic by @Bruce-Yii in #1016
- refactor(finetune): converge the Kaggle DDP path on shared training primitives by @Bruce-Yii in #1017
- docs(window): floor and room binding on two prose sites that teach it by @aashish254 in #1018
- docs(reference): document the pre-run request sizing surface by @Bruce-Yii in #1019
- fix(dotnet): synchronize EnsureStrippedTokenizer to prevent race cond… by @LEVELING2108 in #1020
- docs(hooks): run_id is shared by the predict events, not by on_load/on_evict by @keemsisi in #1021
- docs(mcp): both batch rows must name every call argument their handler takes by @keemsisi in #1022
- docs(readme): routing metadata is five keys, not the three the page showed by @keemsisi in #1023
- docs(mcp): the laya_status row names the per-checkpoint device map by @keemsisi in #1028
New Contributors
- @jxoesneon made their first contribution in #1047
- @FerryQ made their first contribution in #1052
Full Changelog: v0.4.0...v0.4.1
v0.4.0
v0.3.29
What's Changed
- build(deps): cap NumPy below 2 in the onnx extra by @thread3d in #947
- feat(evals): evidence inspection over checkpoint and eval artifacts by @Bruce-Yii in #964
- fix(agent): read a state predict_long's questions leave room for in one pass by @JeelGajera in #966
- docs(examples): example 18 must not call the shipped answer_confidence calibrated by @aashish254 in #973
- docs(examples): example 30 must call score confidence 1 - H/log(k), not the entropy by @aashish254 in #974
- docs(examples): example 21 must read its cost claim off the measurement it takes by @aashish254 in #975
- docs(evals): the --min-confidence gate flags the answer, it does not overwrite it by @aashish254 in #976
- docs(examples): example 26 must count triage_questions()'s three yes/no fields by @aashish254 in #978
- docs(tl_kernels): the multiple-of-16 comes from tokens, not rows by @aashish254 in #979
- docs(structured): DecisionResult's confidence is per-type, not uniformly entropy by @aashish254 in #980
- docs(presets): questions-and-answers must count five, not three by @aashish254 in #981
- docs(typescript-sdk): /health returns seven keys, not the three the page listed by @aashish254 in #983
- docs(mcp): laya_route_batch row must name its own six keys by @aashish254 in #984
- docs(http-api): strict JEV answers carry type, the pages did not say so by @aashish254 in #986
- docs(hooks): scope plain callables to on_predict_start=/on_predict_end=, not hooks= by @aashish254 in #987
- docs(hooks): api.md blocks must name hooks_timeout like their hooks_raise siblings by @aashish254 in #988
- docs(hooks): tracing.md nested-call example must read child run_id from ctx by @aashish254 in #989
- docs(hooks): errors.md must enumerate every hooks_raise and hooks_timeout surface by @aashish254 in #990
- docs(hooks): lifecycle.md must place process-wide defaults ahead of installed by @aashish254 in #991
- docs(readme): batch-hooks bullet must split predict_batch from route_batch by @aashish254 in #992
- docs(hooks): patterns.md Composition must name defaults as the head tier by @aashish254 in #993
- docs(security): /health sample must filter to revisions, not claim four keys by @aashish254 in #994
- docs(hooks): examples.md Composition must name the three tiers, not two by @aashish254 in #995
- docs(agent): predict_long gate comments must describe the None contract, not claim a report by @aashish254 in #996
- docs(common): render_criterion's docstring must name the separators it passes by @aashish254 in #997
- docs(mcp): laya_shortlist's metadata list must name passthrough, the fifth key by @aashish254 in #998
- docs(email): email_state's **extra rule must name the None filter it documents by @aashish254 in #999
- test(portability): no repo read in tests/ may leave the codec to the runner by @aashish254 in #1001
- fix(confidence): a min_confidence map key must name a bucket an answer can produce by @aashish254 in #1002
- docs(calibrate): the calibration payload's contract must name binning_map and every shape it refuses by @aashish254 in #1003
- docs(examples): example 03 must give
confidenceper question type, not one formula by @aashish254 in #1004 - docs: both confidence pages must attribute
confidenceper question type, not as one entropy formula by @aashish254 in #1005 - docs(train): rewrite the fine-tuning guide around laya-train by @GuilhermeFusari in #1007
- fix(example): the demo's certainty chip must name its question type's formula by @aashish254 in #1008
- docs(predict_long): the default window's 64-token floor must be in the docstrings that state the default by @aashish254 in #1009
- docs(evals): the calibration column must name its fallback, and the shipped level is not calibrated by @aashish254 in #1011
- fix(lang): do not name all-caps acronym and address lines as foreign prose by @keemsisi in #1013
- refactor(finetune): converge single-process wrappers on laya.train by @Bruce-Yii in #965
- feat(train): add --eval, abstention threshold fitting, and before/after train_report.json (#887) by @Swatantra-66 in #967
- fix(train): warn when fine-tune predictions collapse to the class prior by @tiagovilasboas in #968
- docs(examples): example 40 must not call answer_confidence calibrated by @aashish254 in #972
- docs(mcp): laya_decide row must list min_confidence; every tool row must name every handler param by @aashish254 in #985
- feat(research): three-seed RLCD vs soft-CE default-loss panel for #887 by @Bruce-Yii in #1012
New Contributors
- @JeelGajera made their first contribution in #966
Full Changelog: v0.3.28...v0.3.29
v0.3.28
What's Changed
- fix(serve): refuse unpublished path-like model ids instead of auto-routing by @sathariels in #930
- fix(finetune): the Apple Silicon and research scripts fit temperatures outside the runtime clamp by @Bruce-Yii in #851
- feat(train): add laya.train, one fine-tuning loop for the notebook and scripts to share by @GuilhermeFusari in #899
- docs(router): explain why predict_batch composes default hooks by @sathariels in #929
- feat(train): add laya-train CLI and CSV/expected dataset loaders (#887) by @Swatantra-66 in #931
- fix(train): warn when the fine-tune's calibration rests on too little by @GuilhermeFusari in #933
- fix(train): skip questions whose options run past max_len instead of crashing the batch by @GuilhermeFusari in #934
- fix(ts): forward per-call hook options through predictBatch by @sathariels in #936
- feat(router): a registry of checkpoints beside the built-ins by @alandefreitas in #937
- fix(ts): clean French mail like Python by @kevin9327 in #939
- fix(packaging): include inference backends in wheels by @NikitaaRamesh in #940
- fix(train): normalize partial accumulation windows by @NikitaaRamesh in #941
- fix(java): keep empty action probabilities finite by @NikitaaRamesh in #942
- fix(common): support torch 2.0-2.3 in the action-head dtype check by @thread3d in #945
- test(compile): guard the duck-shaping checks on a torch without the config by @thread3d in #946
- feat(setup): a macOS/Intel checkout setup and verification path by @thread3d in #948
- test(model): skip the bf16 legs on a Windows CPU, which SIGILLs by @thread3d in #949
- feat(shortlist): add predict_tournament for choice questions past the option budget by @Rish-it in #950
- feat(common): parallel option layout for order-invariant decisions by @sharath-sms in #951
- build(docker): default the base image to Debian 13 (trixie) by @somtri in #953
- fix(evals): refuse a NaN --min-accuracy or --max-ece like the --min pairs by @sameedkhan17 in #954
- fix(ts): count an English/foreign collision word once, like Python by @sameedkhan17 in #955
- fix(dotnet): match French device footers with normal spacing by @sameedkhan17 in #956
- fix(calibrate): fit abstention cuts on the 4-decimal confidences the gate reads by @sameedkhan17 in #957
- fix(mcp): keep and validate a question's option_order by @sameedkhan17 in #958
- fix(onnx): catch an in-place question rewrite in the scan-budget guard by @sameedkhan17 in #959
- fix(structured): resolve local $defs refs so pydantic Enum fields become choices by @sameedkhan17 in #960
- fix(ci): ignore false positive sha256 checksums in gitleaks (#961) by @Swatantra-66 in #962
New Contributors
- @GuilhermeFusari made their first contribution in #899
- @alandefreitas made their first contribution in #937
- @kevin9327 made their first contribution in #939
- @sharath-sms made their first contribution in #951
- @sameedkhan17 made their first contribution in #954
Full Changelog: v0.3.27...v0.3.28
v0.3.27
What's Changed
- fix(confidence): clear stale low_confidence flag on re-evaluation (#910) by @Sarthak-Pandey in #911
- fix(router): accept and compose per-call hooks in predict_batch and route_batch (#909) by @Swatantra-66 in #912
- fix(email): match French device footers with normal spacing by @AzarudeenshariffA in #913
- fix(router): run predict_long's scan after the hook chain, not as a hook by @keemsisi in #914
- fix(evals): a coverage cut must not split a group of tied confidences by @keemsisi in #918
- fix(calibrate): fit abstention thresholds on the scale the gate will read by @AlKor13 in #920
- fix: keep transformers from importing TensorFlow, which crashes a load when it cannot load by @PerryLink in #924
- feat(java): laya-java: a JVM inference package, gated against the Python reference by @keemsisi in #927
- docs(benchmarks): MPS fp16 autocast against fp32 on an Apple M1 Pro by @cacheline999 in #928
New Contributors
- @AzarudeenshariffA made their first contribution in #913
- @cacheline999 made their first contribution in #928
Full Changelog: v0.3.26...v0.3.27
v0.3.26
What's Changed
- chore(deps): bump github/codeql-action/init from 4.38.1 to 4.38.2 by @dependabot[bot] in #907
- feat(dotnet): add .NET SDK (Laya.Onnx) by @kevin-gatimu in #671
- feat(ts): port histogram-binning recalibration to laya-ts by @Swatantra-66 in #902
- chore(deps): bump zensical from 0.0.65 to 0.0.67 by @dependabot[bot] in #903
- chore(deps-dev): bump @types/node from 24.19.0 to 26.6.3 in /laya-ts by @dependabot[bot] in #904
- chore(deps): bump ruff from 0.16.8 to 0.16.9 by @dependabot[bot] in #905
- chore(deps): bump github/codeql-action/analyze from 4.38.1 to 4.38.2 by @dependabot[bot] in #906
New Contributors
- @kevin-gatimu made their first contribution in #671
Full Changelog: v0.3.25...v0.3.26
v0.3.25
What's Changed
- fix(verify): numerics_check compares the unrounded outputs, not the 4-dp answers by @aashish254 in #884
- fix(agent): validate CUDA ordinals, accept auto, survive capability-probe failures by @sahiixx in #886
- fix(serve): split an oversized batch across forward passes instead of collating it whole by @keemsisi in #889
- feat(calibrate): wire histogram binning into answers and the calibration payload by @Bruce-Yii in #890
- feat(ts): accept the per-bucket minConfidence map by @Bruce-Yii in #891
- fix(cli): write redirected output as utf-8 by @plox-sumit in #893
- feat(serve): add idle unload and shared-server MCP mode by @Rish-it in #894
- feat(backends): restore the inference backend class layer by @cklxx in #895
- feat(fast): add an fp32 TileLang CPU lowering for the kernels by @cklxx in #896
- fix(model): match the action head dtype so AOTInductor packaging completes by @cklxx in #897
- feat(agent): carry the compile items left out of the #472 split by @cklxx in #898
- feat(ts): port per-bucket minConfidence map to on-device engine by @Swatantra-66 in #900
- perf(fast): use two pipeline stages for GEGLU by @RagingSilence in #901
New Contributors
Full Changelog: v0.3.24...v0.3.25
v0.3.24
What's Changed
- docs: expand install guide and add minimal quick-start by @xiehuanyi in #162
- fix(agent): resolve checkpoint names and aliases in load() by @Yi-111-a in #789
- fix(serve): refuse an unpaired surrogate on /v1/systemone/batch too by @aashish254 in #814
- docs(http-api): report every key a decision response actually carries by @aashish254 in #816
- docs(router): add routing guide by @Asthenia0412 in #461
- chore(deps-dev): Bump vitest from 2.1.9 to 5.0.1 in /laya-ts by @dependabot[bot] in #631
- chore(deps-dev): Bump typescript from 5.9.3 to 7.0.2 in /laya-ts by @dependabot[bot] in #633
- feat(ts): report the options a head budget collapsed, as laya.common does by @aashish254 in #817
- fix(docker): upgrade bundled pip and setuptools in the runtime venv by @xiehuanyi in #818
- docs(structured): gate every documented usage shape against the code by @aashish254 in #819
- fix(router): synchronize unload per checkpoint instead of globally by @Sarthak-Pandey in #881
- fix(hooks): accept sequences in hooks_installed and enforce in API contract by @Swatantra-66 in #882
- fix(hooks): reject non-finite hooks_timeout and enforce in API contract by @Swatantra-66 in #883
- fix(evals): fail the gates on a NaN metric, limit or tolerance by @abhijithneilabraham in #836
- docs(sdk): the design page must name the controls the client really forwards by @aashish254 in #837
- docs(examples): the truncation pages must teach the report and the clamp they deny by @aashish254 in #841
- docs(examples): example 35 must teach the MPS autocast policy it denies by @aashish254 in #842
- fix(examples): example 39 must run, and must name the error it really raises by @aashish254 in #843
- fix(examples): example 24 must state the resident cap Router defaults to by @aashish254 in #844
- fix(examples): example 33 must teach the head budget build_head implements by @aashish254 in #845
- fix(calibration): validate fitting inputs and save maps atomically by @antonio-mello-ai in #846
- docs(http-api): list laya-php, the PHP client that targets laya-serve by @Yi-111-a in #847
- fix(router): build checkpoints outside the lifecycle lock by @tiagovilasboas in #849
- fix(examples): example 28 must compute the conclusions it prints by @aashish254 in #850
- docs(shortlist): publish the ordering contract the code ranks by by @aashish254 in #852
- feat(confidence): per-option-count abstention thresholds (Closes #394) by @AlKor13 in #853
- feat(evals): selective-classification metrics (brier, aurc, selective accuracy) by @AlKor13 in #854
- fix(langchain): .batch() forwards lang and min_confidence like .invoke() by @AlKor13 in #855
- fix(serve): /v1/systemone/batch total_usage sums output_tokens instead of reporting 0 by @AlKor13 in #856
- fix(mcp): laya_predict_batch validates min_confidence and hooks_timeout up front by @AlKor13 in #857
- fix(mcp): type-check a batch item's lang_guess like the single-request path by @AlKor13 in #858
- ci(windows): install the extras and httpx the suite list assumes by @thread3d in #860
- fix(agent): warn on fallbacks instead of printing to stdout by @thread3d in #861
- fix(agent): catch an in-place question rewrite in the scan-budget guard by @thread3d in #862
- fix(agent): reject non-scalar choice labels exactly, not by deny-list by @thread3d in #863
- ci(typescript-sdk): pin the three floating actions by SHA by @thread3d in #864
- ci(evals): run the offline research suites no workflow executes by @thread3d in #865
- ci(evals): run the ONNX parity and demo-server suites in the weight lane by @thread3d in #866
- docs(readme): link absolutely in the published READMEs, and name the gate fields by @thread3d in #867
- fix(laya-ts): keep bytecode out of the npm tarball and ship the LICENSE by @thread3d in #868
- ci: run one shared test list in CI and before a release by @thread3d in #869
- feat(serve): LAYA_JEV_STRICT projects the response onto the strict Jev wire contract by @davidberardozzi in #870
- feat(calibrate): histogram-binning recalibration for answer_confidence by @AlKor13 in #871
- fix(laya-ts): verify ONNX artifacts before importing the native runtime by @thread3d in #872
- fix(serve): reject a null score level with 422 instead of an unparseable null legend (#302) by @AlKor13 in #873
- fix(fast): partition the decision head's attention by the head's own head count by @AlKor13 in #874
- docs(agent): fix predict_long's note on when a window is cut by @somtri in #875
- fix(hooks): close unawaited coroutine when run_coroutine_sync rejects loop by @kaushikharsh99 in #877
- feat(sdk): type and validate the whole usage report /v1/systemone answers with by @aashish254 in #820
- fix(sdk): type the mixed_segment a routing detection answer carries by @aashish254 in #821
- fix(sdk): read the confidence an answer is gated on and the abstention report by @aashish254 in #822
- docs(serve): document the abstention gate's report on every answer, and hold the answer table to the code by @aashish254 in #824
- fix(agent): hold the tokenizer lock while predict_long encodes the state by @abhijithneilabraham in #831
- fix(calibrate): run records_from_labeled with gradients off by @abhijithneilabraham in #832
- fix(integrations): gate a LayaTaskGuard score question on its upper-half probability by @abhijithneilabraham in #833
- docs: correct cross-references, remove duplicated text and repair two stale paths by @ashyyhere in #840
New Contributors
- @xiehuanyi made their first contribution in #162
- @Asthenia0412 made their first contribution in #461
- @abhijithneilabraham made their first contribution in #836
- @antonio-mello-ai made their first contribution in #846
- @tiagovilasboas made their first contribution in #849
- @kaushikharsh99 made their first contribution in #877
- @ashyyhere made their first contribution in #840
Full Changelog: v0.3.23...v0.3.24
v0.3.23
What's Changed
- fix(docker): read a file-backed secret past a Windows editor BOM by @aashish254 in #765
- feat(mcp): forward hooks_timeout, min_confidence and sort_by_length on laya_predict_batch by @aashish254 in #766
- fix(examples): example 33 quoted the shipped temperature, not the applied one by @aashish254 in #768
- fix(examples): example 03 now shows answer_confidence, the field to gate on by @aashish254 in #769
- feat(mcp): forward hooks_timeout on laya_route_batch by @aashish254 in #770
- fix(examples): example 04 called the entropy confidence "calibrated" by @aashish254 in #771
- fix(examples): the README row for example 33 listed an option count the example never had by @aashish254 in #772
- fix(examples): the shared describe() prints answer_confidence, not just entropy by @aashish254 in #773
- feat(serve): forward the per-call controls /v1/systemone already forwards on /v1/systemone/batch by @aashish254 in #774
- fix(docker): check_torch reports a missing argument and a missing torch by name by @aashish254 in #775
- feat(evals): make laya-evals run --min-confidence reach the abstention gate by @aashish254 in #777
- feat(examples): forward the per-call controls laya.serve forwards on /v1/systemone by @aashish254 in #778
- feat(research): add Spanish phone-turn benchmark and fine-tuning recipe by @fchinch in #784
- feat(evals): attribute shortlist retrieval and decision errors by @zhangxinping666 in #787
- chore(security): name the advisories in the warning and pin the image boundary by @devloper961-maker in #788
- fix(onnx): default --quantize to per-tensor; per-channel collapses the model (#790) by @AlKor13 in #792
- feat(cli): make core's soft language hint (lang_guess) reachable with --lang-guess by @aashish254 in #795
- feat(mcp): forward Router lang_guess through the single-request tools by @aashish254 in #797
- feat(integrations): forward lang and min_confidence through the framework wrappers by @aashish254 in #798
- fix(cli): read --batch - from stdin as utf-8 by @plox-sumit in #799
- feat(integrations): forward budgets and hooks from LayaDecision by @aashish254 in #800
- fix(verify): checkpoints.py repairs a truncated download instead of trusting it by @aashish254 in #801
- fix(mcp): reject a LAYA_DEVICE value torch cannot parse where it is read by @aashish254 in #802
- fix(benchmarks): plot_results labels the figure from the data and the repo, not literals by @aashish254 in #803
- fix(compose): forward the laya-serve knobs the gate deferred by @aashish254 in #806
- fix(compose): the example override's model default must be the one the page prints by @aashish254 in #807
- fix(examples): keep the /gui 4xx error page off exception text by @modusensus in #808
- test(env): hold the AMP dtype spellings the docs promise to the code by @aashish254 in #809
- docs(http-api): document every field /health returns, and gate it by @aashish254 in #811
- fix(notebooks): fine-tune notebook fits temperatures outside runtime clamp, so served calibration differs (#637) by @Sarthak-Pandey in #642
- feat(confidence): report the abstention gate's state on every answer by @Bruce-Yii in #679
- docs(guides): add production use cases and architectural patterns (#675) by @Swatantra-66 in #684
- fix(agent): predict_long skips part of the document and reports that it read it by @keemsisi in #689
- fix(router): stop a per-checkpoint pin from silently disabling the ca… by @keemsisi in #690
- feat(docker): bake checkpoints from ModelScope at build time by @cgq0816 in #720
- feat(cli): make core's abstention gate reachable from the command line by @aashish254 in #725
- fix(onnx): declare dynamic dims with dynamic_axes again so export works on torch < 2.9 by @cklxx in #726
- test(serve): bound the loopback waits so a stalled bind fails instead of hanging by @Yi-111-a in #727
- feat(lang): detect Swedish with MASSIVE evaluation by @yeager in #728
- feat(serve): make the routing fallback reachable from the environment by @aashish254 in #730
- feat(shortlist): return cosine scores from shortlist_choice on request by @aashish254 in #733
- fix(integrations): gate thresholds on answer_confidence, never entropy confidence by @aashish254 in #734
- fix(shortlist): refuse a cache write whose embedding width changed by @aashish254 in #735
- feat(email): clean French mail clients the way EN/PT/ES are cleaned by @aashish254 in #736
- fix(tests): normalize relpath separators in test_env_docs for Windows compatibility by @LEVELING2108 in #737
- fix(docs): link the TypeScript SDK guide by URL so the strict build stops failing by @keemsisi in #742
- docs(finetune): add Apple Silicon MPS fine-tuning script guide by @Angboo in #743
- fix(ci): do not cancel an eval run that is already in flight by @Bruce-Yii in #745
- fix(ts): reject a null or empty instructions, as Python does by @Bruce-Yii in #746
- fix(ts): reject bucket overrides that are not a mapping, as Python does by @Bruce-Yii in #749
- feat(research): choice identical-option control for presentation_checks (#602, part a) by @hiroki-abe-58 in #753
- feat(evals): add opt-in per-slice quality gates by @zhangxinping666 in #755
- fix(common): refuse a bool where a temperature is expected by @aashish254 in #757
- fix(hooks): refuse a skip() whose count breaks the contract it documents by @aashish254 in #758
- feat(evals): accept --calibration on laya-evals run --onnx by @NAVEENPRASAATH23 in #759
- docs(security): add SECURITY.md vulnerability reporting policy (#740) by @Swatantra-66 in #761
- feat(sdk): expose the per-request controls /v1/systemone forwards by @aashish254 in #763
- fix(calibrate): refuse a payload whose shape is not one this code can read by @aashish254 in #764
- fix(revisions): find the reviewed pin whatever case the repo id is spelled in by @aashish254 in #767
- perf(agent): reuse compiled CUDA graphs across token lengths by @RagingSilence in #791
- fix(agent): synchronize GPU OOM fallback to protect concurrent in-flight inference (#649) by @Swatantra-66 in #810
- feat(benchmarks): add Chinese reliability evaluation by @Fanrito in #392
- fix(evals): every laya-evals argument says what it is, in --help and on the page by @aashish254 in #813
New Contributors
- @fchinch made their first contribution in #784
- @plox-sumit made their first contribution in #799
- @Sarthak-Pandey made their first contribution in #642
- @cgq0816 made their first contribution in #720
- @Yi-111-a made their first contribution in #727
- @yeager made their first contribution in #728
- @NAVEENPRASAATH23 made their first contribution in #759
- @Fanrito made their first contribution in #392
Full Changelog: v0.3.22...v0.3.23
v0.3.22
What's Changed
- feat(ts): per-checkpoint SHA-256 artifact verification in Router by @Swatantra-66 in #723
- feat(serve): forward the /v1/systemone controls a JSON body can state by @aashish254 in #724
- chore(deps): Bump actions/upload-artifact from 4.6.2 to 7.0.1 by @dependabot[bot] in #627
- chore(deps): Bump zensical from 0.0.64 to 0.0.65 by @dependabot[bot] in #632
- fix(serve): read the checkpoints a client may name from laya.router by @aashish254 in #638
- feat(eval): selective-prediction report for metamorphic variants by @Charanraj-24 in #639
- fix(agent): say what precision a call runs in, not only the autocast target (#621) by @phant0um in #641
- feat(ts): port confidence-based abstention gating on answer_confidence (#361) by @Swatantra-66 in #644
- fix(ts): validate questions and reject null state before serialization (#607, #608) by @Swatantra-66 in #648
- feat(research): non-English fixed states for presentation_checks (#602, part b) by @hiroki-abe-58 in #650
- feat(integrations): forward budgets and hooks from CrewAI/LlamaIndex by @aashish254 in #652
- fix(agent): merge per-question usage across predict_long windows by @Bruce-Yii in #653
- feat(cli): make core's length grouping reachable from every surface by @aashish254 in #654
- fix(integrations): read text out of LangChain content-block lists by @Bruce-Yii in #655
- feat(serve): support reverse-proxy URL prefixes by @SomSamantray in #656
- feat(mcp): expose core's min_confidence abstention control on the decision tools by @aashish254 in #657
- fix(mcp): normalise LAYA_DEVICE once, so torch and laya_status agree by @Bruce-Yii in #659
- fix(evals): return the documented exit code for a usage error by @Bruce-Yii in #661
- fix(onnx): reject the same invalid inputs Agent.predict_batch already rejected by @Bruce-Yii in #662
- feat(evals): a run identity, and a gate that refuses a baseline it cannot match by @Bruce-Yii in #664
- fix(docker): run the child command instead of exec'ing it on Windows by @liwenjie200543 in #665
- fix(structured): honour minimum when a score answer has no probabilities by @cr-sbarbouche in #666
- fix(common): report state truncation from the token budget that applies by @somtri in #668
- fix(ts): honour score minimum in structured projection (#663) by @Swatantra-66 in #676
- fix(evals): use nearest-rank 95th percentile by @rahul05ranjan in #682
- fix(structured): expose answer_confidence on DecisionResult by @Bruce-Yii in #685
- fix(email): cut a sign-off whose name carries a mark from any script by @Denimworld12 in #686
- fix(serve): measure the state limit on the text the tokenizer receives by @keemsisi in #691
- fix(agent): preserve start-hook questions in long scans by @kapelame in #692
- fix(security): split the CVE audit into shipped (blocking) and extras (advisory) by @devloper961-maker in #694
- docs(common): the state budget is max_len - head_len - 1, not max_len - head_max_len by @Parswanadh in #696
- research: accuracy against evidence position at fixed document length by @Parswanadh in #697
- fix(notebook): trim train items before DDP sharding by @lab1207 in #699
- perf(agent): reuse CUDA autocast weight cache across batches by @RagingSilence in #700
- feat(finetune): single-device training script for any checkpoint by @wlfonseca in #704
- feat(eval): report budget-confounded metamorphic comparisons by @Rukafuu in #706
- fix(agent): reject malformed question types with clear errors by @zhangxinping666 in #708
- fix(ts): reject a null choice label, as Python does (#508 parity) by @Divit-aggarwal in #710
- fix(ts): reject choice labels that share an answer key, as Python does (#496 parity) by @Divit-aggarwal in #711
- fix(ts): refuse a temperature that is not a list of 3 at construction, as Python does (#502 parity) by @Divit-aggarwal in #712
- fix(ts): let emailState set the body budget, as Python does (#589 parity) by @Divit-aggarwal in #713
- fix(examples): the demo's model field must resolve names like core by @aashish254 in #714
- fix(docker): forward LAYA_REVISION so a Compose deployment can actually pin by @Bruce-Yii in #715
- fix(onnx): export at batch 2 with explicit Dims so the graph runs at any batch size by @cklxx in #717
- feat(agent): opt-in warmup() so compile=True does not stall the first requests by @cklxx in #718
- docs: engineering notes for compile=True and the TileLang fast path by @cklxx in #719
- feat: fit and persist per-bucket temperatures by @mvanhorn in #19
- fix(benchmarks): trace every table to its run, align script outputs with cited paths by @Nafeel005 in #190
- feat(sdk): add TypeScript SDK by @baninaveen in #198
- feat(ts): port Agent.predict_batch and Router.route_batch/predict_batch by @aashish254 in #329
- feat(ts): report state truncation in usage from the real token budget by @aashish254 in #336
- feat(agent): let a question choose the order its options are shown in by @Suzzt in #352
- feat(notebooks): add Apple Silicon fine-tuning script by @Angboo in #355
- feat(serve): add batch decision endpoint (/v1/systemone/batch) by @sirgio03 in #387
- research: refresh the 51-language multilingual columns from the re-run (#208) by @PerryLink in #389
- feat(ts): retrying loads with abort signal and progress by @nnlgsakib in #411
- docs(ts): point examples at the shipped model weights by @nnlgsakib in #412
- feat(ts): dx helpers, shortlist auto-embed, and encode caches by @nnlgsakib in #414
- docs: add the Questions and answers guide (#390) by @PerryLink in #418
- docs(reference): render answer_confidence, which no page documented by @PerryLink in #419
- fix(agent): a score legend echoed the caller own type instead of level text by @PerryLink in #420
- fix(hooks): hooks_installed removed a hook it did not install by @PerryLink in #424
- fix(agent): lang_temperatures crashed on the inputs it exists to reject by @PerryLink in #428
- docs(benchmarks): add independent NVIDIA capacity results by @bhushankinge in #429
- docs: add command line and MCP server guide by @Bruce-Yii in #430
- fix(mcp): handle auto model in routing fallback by @soumojit-D48 in #445
- fix(serve): a lone surrogate in the body was a 500 instead of a 400 by @PerryLink in #454
- fix(agent): the over-budget message named the one knob that makes it worse by @PerryLink in #455
- fix(ts): make split ONNX loadable in the browser by @nnlgsakib in #457
- feat(laya-ts): browser triage demo with custom questions by @nnlgsakib in #458
- fix(agent): scope the autocast fallback to the failed request by @MoonPointer-Byte in #459
- fix(lang): repeated English word colliding with a foreign function word routed English to multilingual by @AlKor13 in #460
- feat(examples): add the 41-script learning path by @thread3d in #465
- feat(verify): add the local verification harnesses by @thread3d in #466
- fix(email): preserve request text after device mentions by @lloyd-aloysius in htt...