Skip to content

Releases: NandhaKishorM/laya

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 08 Oct 17:29

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

Full Changelog: v0.4.0...v0.4.1

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 14:33

Full Changelog: v0.3.29...v0.4.0

v0.3.29

Choose a tag to compare

@github-actions github-actions released this 07 Oct 10:14

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 confidence per question type, not one formula by @aashish254 in #1004
  • docs: both confidence pages must attribute confidence per 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

Full Changelog: v0.3.28...v0.3.29

v0.3.28

Choose a tag to compare

@github-actions github-actions released this 05 Oct 18:04

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

Full Changelog: v0.3.27...v0.3.28

v0.3.27

Choose a tag to compare

@github-actions github-actions released this 04 Oct 18:18

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

Full Changelog: v0.3.26...v0.3.27

v0.3.26

Choose a tag to compare

@github-actions github-actions released this 03 Oct 17:51

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

Full Changelog: v0.3.25...v0.3.26

v0.3.25

Choose a tag to compare

@github-actions github-actions released this 03 Oct 15:58

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

Choose a tag to compare

@github-actions github-actions released this 02 Oct 17:06

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

Full Changelog: v0.3.23...v0.3.24

v0.3.23

Choose a tag to compare

@github-actions github-actions released this 01 Oct 17:30

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

Full Changelog: v0.3.22...v0.3.23

v0.3.22

Choose a tag to compare

@github-actions github-actions released this 29 Sep 17:48

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...
Read more