v0.3.21
visioncortex/vtracerv0.3.21Sep 27, 2026by github-actions[bot]
Upgrading?
AI Summary
A comprehensive update featuring router bug fixes, performance optimizations, Intel GPU enablement, and new evaluation tools.
Key Highlights
- Fixed router bugs including predict_batch, hooks, and language detection.
- Performance improvements in BPE merging and cache shortlist embeddings.
- Intel GPU enablement for laya inferencing.
- New features: `predict_long`, structured decisions in TypeScript, and an eval harness.
- Security hardening for remote inference and model verification.
New Features
- Router bug fixes.
- Performance optimizations.
- Intel GPU support.
- Evaluation harness.
- Structured decisions in TypeScript.
- Security hardening.
Full Release Notes
## What's Changed * fix(serve): return 400 for a deeply nested JSON body by @can-gaa-hou in https://github.com/NandhaKishorM/laya/pull/401 * fix(serve): log the inference failure the client is not allowed to see by @PerryLink in https://github.com/NandhaKishorM/laya/pull/375 * fix(examples): refuse oversized requests in the demo server by @keemsisi in https://github.com/NandhaKishorM/laya/pull/395 * ci: let runs on main finish and time out hung jobs by @maxfield-allison in https://github.com/NandhaKishorM/laya/pull/400 * perf: single-pass script stats; wire test_lang_stats by @emiliano-go in https://github.com/NandhaKishorM/laya/pull/287 * docs: organize the site navigation and check docstrings by @maxfield-allison in https://github.com/NandhaKishorM/laya/pull/391 * docs: note cancellation negation limits in choice answers by @Ha1baraA11 in https://github.com/NandhaKishorM/laya/pull/385 * docs: stop presenting a confidence threshold as permission to act by @PerryLink in https://github.com/NandhaKishorM/laya/pull/378 * docs(langchain): document full-conversation state extraction by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/328 * research: server CPU latency for 0.3.20 on a 4-core EPYC by @arunjoyt in https://github.com/NandhaKishorM/laya/pull/393 * fix(router): predict_batch dropped each request lang, so lang_temperatures never applied by @PerryLink in https://github.com/NandhaKishorM/laya/pull/381 * fix(router): process-wide default hooks never reached predict_batch by @PerryLink in https://github.com/NandhaKishorM/laya/pull/379 * fix(router): a lang code that names no language must not pick a checkpoint by @PerryLink in https://github.com/NandhaKishorM/laya/pull/368 * fix(common): a choice label with no description came back as a non-string by @PerryLink in https://github.com/NandhaKishorM/laya/pull/380 * fix(email): `From:` starting a sentence deleted the request by @PerryLink in https://github.com/NandhaKishorM/laya/pull/371 * fix(lang): route a Portuguese ticket with an English log to multilingual by @paulocarinhena in https://github.com/NandhaKishorM/laya/pull/207 * fix(agent): reject a null score level, and say what differs from Jev by @Rish-it in https://github.com/NandhaKishorM/laya/pull/342 * fix(packaging): add the structured extra for the pydantic helpers by @GaotianJin in https://github.com/NandhaKishorM/laya/pull/348 * fix(ts): route plain-ASCII German like Python by @lihongyuan99 in https://github.com/NandhaKishorM/laya/pull/354 * fix(ts): keep sentences that merely mention "confidential" in cleanEmailBody (Python parity) by @lihongyuan99 in https://github.com/NandhaKishorM/laya/pull/353 * feat(laya-ts): report answer_confidence (max(p)) on every answer type by @nanami-0713 in https://github.com/NandhaKishorM/laya/pull/386 * perf+fix(onnx): tune ORT session, tokenize state once, report answer_confidence by @AlKor13 in https://github.com/NandhaKishorM/laya/pull/343 * fix(ts): require safetensors for ONNX export by @idongdongh in https://github.com/NandhaKishorM/laya/pull/358 * laya-ts: per-language temperature overrides (lang_temperatures) + Router lang forwarding by @aashish254 in https://github.com/NandhaKishorM/laya/pull/398 * feat(ts): port structured decisions (decide) to laya-ts by @aashish254 in https://github.com/NandhaKishorM/laya/pull/339 * feat(serve): attach Server-Timing and X-Inference-Time-Ms headers to POST /v1/systemone by @peterfriese in https://github.com/NandhaKishorM/laya/pull/372 * ci: run the pytest suites, which no lane was executing by @PerryLink in https://github.com/NandhaKishorM/laya/pull/376 * fix(lang): identifier stripping is quadratic; 31 s -> 1.8 ms at 50k chars by @keemsisi in https://github.com/NandhaKishorM/laya/pull/383 * docs(benchmarks): guide to results and known limits by @rahul05ranjan in https://github.com/NandhaKishorM/laya/pull/480 * docs: add staged adoption guide by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/415 * ci(security): read-only release defaults, pinned action SHAs, gitleaks checksum by @nanami-0713 in https://github.com/NandhaKishorM/laya/pull/413 * feat(bench): freeze the Chinese short-command comparison from #218 by @GaotianJin in https://github.com/NandhaKishorM/laya/pull/364 * feat(evals): labelled evaluation harness, laya-eval CLI, and a CI quality gate by @emiliano-go in https://github.com/NandhaKishorM/laya/pull/382 * feat(examples): redesign the server.py web GUI as a two-pane playground by @luiz-linkezio in https://github.com/NandhaKishorM/laya/pull/417 * fix(serve): a request with no state was answered about the literal text null by @PerryLink in https://github.com/NandhaKishorM/laya/pull/427 * fix(mcp): preserve supported question fields by @dakjdakd in https://github.com/NandhaKishorM/laya/pull/440 * fix(docker): keep torch's native Triton JIT off so a GPU image can infer without a C compiler (#365) by @bhushankinge in https://github.com/NandhaKishorM/laya/pull/436 * fix(security): bound remote inference work by @KunjShah95 in https://github.com/NandhaKishorM/laya/pull/335 * fix(model): harden revision and digest verification by @KunjShah95 in https://github.com/NandhaKishorM/laya/pull/347 * fix(structured): accept pydantic v2 Optional[...] (anyOf nullable) by @AlKor13 in https://github.com/NandhaKishorM/laya/pull/463 * fix(structured): reject unsupported multi-type schema fields by @MadrasLe in https://github.com/NandhaKishorM/laya/pull/448 * fix(structured): reject enum choice label collisions by @dakjdakd in https://github.com/NandhaKishorM/laya/pull/442 * fix(agent): a nested choice label is a named caller error, not a bare TypeError by @PerryLink in https://github.com/NandhaKishorM/laya/pull/425 * fix(agent): scope the per-inference CUDA OOM fallback to the failed request by @Linz1248 in https://github.com/NandhaKishorM/laya/pull/349 * feat(agent): predict_long — scan a state past the context window, aggregate per question by @AlKor13 in https://github.com/NandhaKishorM/laya/pull/363 * fix(hooks): run process-wide default hooks once per Router request by @sbhrwlr in https://github.com/NandhaKishorM/laya/pull/435 * fix(cli): --preset sent the request under a key no question set names by @PerryLink in https://github.com/NandhaKishorM/laya/pull/426 * fix(lang): keep plain English with one accented loanword on the English checkpoint by @Linz1248 in https://github.com/NandhaKishorM/laya/pull/350 * fix(lang): detect language from every string value in a dict state by @sathariels in https://github.com/NandhaKishorM/laya/pull/406 * perf: cache shortlist option embeddings across calls (cached_embed_fn) by @aashish254 in https://github.com/NandhaKishorM/laya/pull/405 * feat(fast): run the TileLang fast path in the agent's autocast dtype (bf16 or fp16) by @cklxx in https://github.com/NandhaKishorM/laya/pull/467 * feat: Intel GPU enablement on laya inferencing by @xiangyang-95 in https://github.com/NandhaKishorM/laya/pull/306 * fix(ts): loop-based tensor plumbing, cure spread overflow by @nnlgsakib in https://github.com/NandhaKishorM/laya/pull/410 * fix(ts): truncateLeft kept the whole state when no room was left (#112 parity) by @Divit-aggarwal in https://github.com/NandhaKishorM/laya/pull/470 * fix(ts): write small numbers the way Python's json.dumps does by @LudwigJMarx in https://github.com/NandhaKishorM/laya/pull/473 * fix(ts): count the Azerbaijani schwa as a non-English letter by @PerryLink in https://github.com/NandhaKishorM/laya/pull/423 * fix(ts): port the From: header rules the Python side already has by @PerryLink in https://github.com/NandhaKishorM/laya/pull/422 * perf(ts): BPE merging is quadratic in word length; 5.5 s -> 3 ms (1722x) at 16k chars by @keemsisi in https://github.com/NandhaKishorM/laya/pull/449 * fix(ts): lang codes that name no language fall through to detection like Python by @thejenilsoni in https://github.com/NandhaKishorM/laya/pull/403 * fix(serve): bound concurrent requests with a non-blocking admission check by @bunnysayzz in https://github.com/NandhaKishorM/laya/pull/431 * feat(hooks): async hooks and per-hook timeout by @emiliano-go in https://github.com/NandhaKishorM/laya/pull/277 * fix: serialise tokenizer encoding and stop load() initialising overwritten weights by @thread3d in https://github.com/NandhaKishorM/laya/pull/462 * mcp: add laya_shortlist tool for many-option choice questions by @aashish254 in https://github.com/NandhaKishorM/laya/pull/404 * feat(agent): LAYA_CUDA_AMP=fp16|bf16 overrides the CUDA autocast dtype (#443) by @bhushankinge in https://github.com/NandhaKishorM/laya/pull/451 * fix(ts): match accented words in latinProfile like Python (WORD_RE was ASCII-only) by @Divit-aggarwal in https://github.com/NandhaKishorM/laya/pull/471 * fix(router): share concurrent TypeScript model loads by @dakjdakd in https://github.com/NandhaKishorM/laya/pull/438 * fix(onnx): thread lang/lang_temperatures so ONNXAgent matches Agent by @AlKor13 in https://github.com/NandhaKishorM/laya/pull/464 * fix(serve): /health reports where inference actually runs, not the requested device by @aashish254 in https://github.com/NandhaKishorM/laya/pull/574 * build(deps): bump github/codeql-action/init from 3.38.2 to 4.38.1 by @dependabot[bot] in https://github.com/NandhaKishorM/laya/pull/578 * build(deps): bump actions/setup-node from 4.4.0 to 7.0.0 by @dependabot[bot] in https://github.com/NandhaKishorM/laya/pull/581 * feat(router): honour a request's token budget in predict_batch by @aashish254 in https://github.com/NandhaKishorM/laya/pull/583 * fix(evals): batch the runner shape evaluate() already documents by @aashish254 in https://github.com/NandhaKishorM/laya/pull/584 * docs(reference): render cached_embed_fn and gate every name in __all__ by @aashish254 in https://github.com/NandhaKishorM/laya/pull/587 * fix(examples): key the cache hook on what the answer depends on by @aashish254 in https://github.com/NandhaKishorM/laya/pull/590 * fix(hooks): cover every decision of a call in the taught hook patterns by @aashish254 in https://github.com/NandhaKishorM/laya/pull/591 * fix(evals): report what a request waited, and name the throughput share by @aashish254 in https://github.com/NandhaKishorM/laya/pull/592 * feat(evals): let laya-evals run ask for the tolerance metric its docs publish by @aashish254 in https://github.com/NandhaKishorM/laya/pull/593 * fix(compose): forward the autocast dtype overrides the runtime reads by @aashish254 in https://github.com/NandhaKishorM/laya/pull/594 * fix(security): audit every declared dependency, not just the core five by @aashish254 in https://github.com/NandhaKishorM/laya/pull/595 * docs(structured): the subset tables now say what the compiler maps by @aashish254 in https://github.com/NandhaKishorM/laya/pull/596 * test(docker)+ci: every secret the container entrypoint loads has to be proven, including over HTTP by @aashish254 in https://github.com/NandhaKishorM/laya/pull/597 * fix(integrations): gate a guardrail score question on its upper-half probability by @gRain-is-grainy in https://github.com/NandhaKishorM/laya/pull/598 * fix(mcp): honour LAYA_AUTO_TASK, the one serve env var that changes routing by @aashish254 in https://github.com/NandhaKishorM/laya/pull/601 * feat(serve): make the resident-checkpoint cap reachable (LAYA_MAX_LOADED) by @aashish254 in https://github.com/NandhaKishorM/laya/pull/603 * fix(examples): the demo's resident-checkpoint cap must follow laya's own by @aashish254 in https://github.com/NandhaKishorM/laya/pull/604 * feat(revisions): let LAYA_REVISION pick the checkpoint commit by @aashish254 in https://github.com/NandhaKishorM/laya/pull/605 * fix(router): predict_batch hook follow-ups to #289 by @hemanthrayuduu in https://github.com/NandhaKishorM/laya/pull/606 * fix(agent): validate questions and reject None state before serialization by @rahul05ranjan in https://github.com/NandhaKishorM/laya/pull/609 * ci: bound remaining workflow jobs by @AliAkbariAlashti in https://github.com/NandhaKishorM/laya/pull/610 * fix(examples): /predict/batch must call Router.predict_batch, not predict per state by @aashish254 in https://github.com/NandhaKishorM/laya/pull/611 * docs(install): document installing with uv by @nefro313 in https://github.com/NandhaKishorM/laya/pull/612 * fix(mcp): the auto-detected device label must know about MPS and XPU by @aashish254 in https://github.com/NandhaKishorM/laya/pull/613 * fix(nix): the module must not refuse names laya accepts, must not copy them, and must reach every knob the server reads by @aashish254 in https://github.com/NandhaKishorM/laya/pull/614 * perf(agent): reuse question tokenization within prediction batches by @RagingSilence in https://github.com/NandhaKishorM/laya/pull/615 * feat(agent): let laya.load reach the compile option Agent already takes by @aashish254 in https://github.com/NandhaKishorM/laya/pull/617 * ci(workflows): run missing test suites in CI and guard against test omission (#399) by @Swatantra-66 in https://github.com/NandhaKishorM/laya/pull/618 * feat(onnx): let ONNXAgent authenticate its Hub download the way Agent does by @aashish254 in https://github.com/NandhaKishorM/laya/pull/619 * fix(serve): set TCP_NODELAY on every accepted connection by @Jayanth-reflex in https://github.com/NandhaKishorM/laya/pull/624 * fix(server): keep exception text out of responses, log it instead by @modusensus in https://github.com/NandhaKishorM/laya/pull/625 * feat(eval): metamorphic label-renaming invariance for choice by @devloper961-maker in https://github.com/NandhaKishorM/laya/pull/517 * fix(ts): keep English with one accented loanword on the English checkpoint (#350 parity) by @Divit-aggarwal in https://github.com/NandhaKishorM/laya/pull/518 * fix(serve): send Retry-After with the 503 admission refusal by @bunnysayzz in https://github.com/NandhaKishorM/laya/pull/521 * feat(mcp): forward the routed language and reuse shortlist embeddings by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/523 * fix(ts): fall back to byte tokens for characters the vocab lacks, as Hugging Face does by @Divit-aggarwal in https://github.com/NandhaKishorM/laya/pull/526 * fix(ts): cut added tokens out of the text before tokenizing, as Hugging Face does by @Divit-aggarwal in https://github.com/NandhaKishorM/laya/pull/527 * feat(evals): an act-head diagnostic over labelled reports by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/529 * feat(langchain): forward the per-request token budget to every runnable by @aashish254 in https://github.com/NandhaKishorM/laya/pull/530 * perf(lang): skip lines too short to be detected; 17-30% faster on states of many short field by @keemsisi in https://github.com/NandhaKishorM/laya/pull/531 * feat(langchain): forward per-call prediction hooks to every runnable by @aashish254 in https://github.com/NandhaKishorM/laya/pull/532 * feat(integrations): add CrewAI task delegation routing and guardrails by @LEVELING2108 in https://github.com/NandhaKishorM/laya/pull/535 * test(ts): identifier fuzz generator collapses to 540 of 20 000 strings by @keemsisi in https://github.com/NandhaKishorM/laya/pull/537 * test(ci): run the four model-free suites no workflow runs by @dantedeprenda in https://github.com/NandhaKishorM/laya/pull/539 * fix(mcp): the model argument takes core's registry, not a stale copy of it by @aashish254 in https://github.com/NandhaKishorM/laya/pull/544 * ci: pin floating action tags to reviewed commit SHAs (#331) by @viwe-monai in https://github.com/NandhaKishorM/laya/pull/545 * fix(cli): --model resolves core's aliases instead of matching three names exactly by @aashish254 in https://github.com/NandhaKishorM/laya/pull/546 * ci: give each push to main its own concurrency group by @sathariels in https://github.com/NandhaKishorM/laya/pull/548 * fix(ts): reject a nested choice label, as Python does (#425 parity) by @Divit-aggarwal in https://github.com/NandhaKishorM/laya/pull/551 * fix(ts): accept a null or undefined noul `labels` as the defaults, as Python does by @Divit-aggarwal in https://github.com/NandhaKishorM/laya/pull/552 * fix(ts): read noul criteria keys case-insensitively, as Python does by @Divit-aggarwal in https://github.com/NandhaKishorM/laya/pull/553 * fix(ts): await async hooks and route their errors through hooksRaise by @Divit-aggarwal in https://github.com/NandhaKishorM/laya/pull/554 * fix(ts): a score legend echoed the caller's own types, unlike the Python backends by @PerryLink in https://github.com/NandhaKishorM/laya/pull/556 * test(local-e2e): assert the noul label override where the checkpoint can read it by @thread3d in https://github.com/NandhaKishorM/laya/pull/560 * fix(research): let the bench harnesses take their model root from LAYA_MODELS by @thread3d in https://github.com/NandhaKishorM/laya/pull/561 * ci(docs): deploy Pages only from the canonical repository by @thread3d in https://github.com/NandhaKishorM/laya/pull/562 * ci(ts): add automated npm release workflow with provenance (#288) by @Swatantra-66 in https://github.com/NandhaKishorM/laya/pull/563 * fix(mcp): laya_preset answered about a field the state did not have by @aashish254 in https://github.com/NandhaKishorM/laya/pull/564 * fix(mcp): reject a malformed question as a caller error, not a server fault by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/565 * fix(serve): forward and validate per-request token budget overrides (… by @Swatantra-66 in https://github.com/NandhaKishorM/laya/pull/566 * feat(mcp): expose task/lang/max_len/head_max_len on the decision tools by @aashish254 in https://github.com/NandhaKishorM/laya/pull/567 * feat(router): reach the Agent options a Router never forwards by @aashish254 in https://github.com/NandhaKishorM/laya/pull/568 * feat(common): report options that collapse into the same token span (#538) by @AlKor13 in https://github.com/NandhaKishorM/laya/pull/569 * fix(examples): mirror laya.serve's option budgets in the demo server by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/570 * fix(evals): report the checkpoint that answered, not the payload's family tag by @aashish254 in https://github.com/NandhaKishorM/laya/pull/571 * feat(router): verify each checkpoint with its own SHA-256 map by @aashish254 in https://github.com/NandhaKishorM/laya/pull/572 * test(lang): add Hindi and Marathi routing regression tests by @rsshir60 in https://github.com/NandhaKishorM/laya/pull/573 * docs(env): write down the two LAYA_* names no page carried, and sweep for the rest by @aashish254 in https://github.com/NandhaKishorM/laya/pull/575 * perf(agent): stop compile=True from recompiling on every new request shape (part 1 of #472) by @cklxx in https://github.com/NandhaKishorM/laya/pull/576 * feat(agent): per-call prediction hooks on predict_long, and no window for a skipped answer by @aashish254 in https://github.com/NandhaKishorM/laya/pull/577 * build(deps): bump github/codeql-action/analyze from 3.38.2 to 4.38.1 by @dependabot[bot] in https://github.com/NandhaKishorM/laya/pull/579 * build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 by @dependabot[bot] in https://github.com/NandhaKishorM/laya/pull/580 * feat(evals): pin the checkpoint commit a run scores, and record it in the report by @aashish254 in https://github.com/NandhaKishorM/laya/pull/588 * fix(email): email_state swallowed max_chars into the model's input by @aashish254 in https://github.com/NandhaKishorM/laya/pull/589 * feat: confidence-based abstention gating on answer_confidence (min_confidence) (#361) by @aashish254 in https://github.com/NandhaKishorM/laya/pull/456 * fix(mcp): run Agent directly for model=auto and report null model by @umran666 in https://github.com/NandhaKishorM/laya/pull/485 * feat(serve): report per-agent CPU fallback counters in /health by @umran666 in https://github.com/NandhaKishorM/laya/pull/487 * feat(onnx): add ONNXAgent.predict_batch, the batch API the torch Agent has (#323) by @aashish254 in https://github.com/NandhaKishorM/laya/pull/489 * fix(ts): accept pydantic v2 Optional[...] (anyOf/oneOf nullable) in structured schemas by @Rajojha-1 in https://github.com/NandhaKishorM/laya/pull/491 * feat(ts): port mixed-segment detection from Python analyse() (#384) by @Swatantra-66 in https://github.com/NandhaKishorM/laya/pull/492 * ci: use per-commit concurrency group for pushes to main (#399) by @Rajojha-1 in https://github.com/NandhaKishorM/laya/pull/493 * feat(onnx): add ONNXAgent.predict_long, the long-document API the torch Agent has by @aashish254 in https://github.com/NandhaKishorM/laya/pull/494 * fix(agent): a choice criteria list that cannot give every option its own answer key by @aashish254 in https://github.com/NandhaKishorM/laya/pull/496 * feat(router): predict_long — route, then scan the whole state in windows by @aashish254 in https://github.com/NandhaKishorM/laya/pull/497 * feat(onnx): opt-in INT8 quantized sidecar in the ONNX export by @aashish254 in https://github.com/NandhaKishorM/laya/pull/498 * fix(ts): stringify score legend values and document serve choice limi… by @Swatantra-66 in https://github.com/NandhaKishorM/laya/pull/499 * test(packaging): don't scan .venv for broken markdown links by @PerryLink in https://github.com/NandhaKishorM/laya/pull/500 * fix(onnx): the over-budget message named the wrong knob by @PerryLink in https://github.com/NandhaKishorM/laya/pull/501 * fix(agent): a short temperature list now fails at load, not at the first decode by @PerryLink in https://github.com/NandhaKishorM/laya/pull/502 * fix(email): the name class excludes lowercase in every script by @PerryLink in https://github.com/NandhaKishorM/laya/pull/503 * fix(packaging): the onnx extra must declare onnxscript by @PerryLink in https://github.com/NandhaKishorM/laya/pull/504 * docs: add the fine-tuning guide (#390) by @PerryLink in https://github.com/NandhaKishorM/laya/pull/505 * feat(evals): score an ONNX export with laya-evals run --onnx by @aashish254 in https://github.com/NandhaKishorM/laya/pull/506 * feat(onnx): port predict_batch sort_by_length to ONNXAgent by @aashish254 in https://github.com/NandhaKishorM/laya/pull/507 * fix(agent): a null `choice` label made the answer undecodable by @PerryLink in https://github.com/NandhaKishorM/laya/pull/508 * feat(router): forward predict_batch sort_by_length to every grouped Agent call by @aashish254 in https://github.com/NandhaKishorM/laya/pull/509 * fix(evals): fail the baseline comparison when a metric is missing by @can-gaa-hou in https://github.com/NandhaKishorM/laya/pull/510 * feat(cli): score a file or stdin of requests in one batch by @aashish254 in https://github.com/NandhaKishorM/laya/pull/511 * feat(mcp): add laya_predict_batch and laya_route_batch tools by @aashish254 in https://github.com/NandhaKishorM/laya/pull/513 * fix(router): run predict hooks when route() or load() fails by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/514 * feat(mcp): add laya_decide, the schema-driven decision tool by @aashish254 in https://github.com/NandhaKishorM/laya/pull/516 * fix(ts): run process-wide default hooks once per Router.predict (#435 parity) by @Divit-aggarwal in https://github.com/NandhaKishorM/laya/pull/519 * feat(langchain): answer a batch of inputs on Laya's shared forward passes by @aashish254 in https://github.com/NandhaKishorM/laya/pull/522 * feat(langchain): add LayaDecision, the schema-driven decision node by @aashish254 in https://github.com/NandhaKishorM/laya/pull/524 * ci: pin action SHAs in the evals job and evals.yml by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/525 * docs(http-api): add the HTTP API guide (#390) by @aashish254 in https://github.com/NandhaKishorM/laya/pull/490 * fix(router): forward the per-call hooks_timeout through route_batch by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/515 * feat(structured): add decide_batch, the throughput form of decide by @aashish254 in https://github.com/NandhaKishorM/laya/pull/520 * feat(integrations): add LlamaIndex query routing and selectors by @LEVELING2108 in https://github.com/NandhaKishorM/laya/pull/533 * feat(cli): answer your own questions, and give them the token budget they need by @aashish254 in https://github.com/NandhaKishorM/laya/pull/542 * ci: let Dependabot update laya-ts's npm dependencies by @somtri in https://github.com/NandhaKishorM/laya/pull/547 * Add zh-CN/zh-TW evaluation: same-methodology rerun, business-scenario eval set, temperature refit by @CodyQin in https://github.com/NandhaKishorM/laya/pull/557 * fix(common): keep the decision head's attention shapes when traced for ONNX by @thread3d in https://github.com/NandhaKishorM/laya/pull/559 ## New Contributors * @Ha1baraA11 made their first contribution in https://github.com/NandhaKishorM/laya/pull/385 * @arunjoyt made their first contribution in https://github.com/NandhaKishorM/laya/pull/393 * @GaotianJin made their first contribution in https://github.com/NandhaKishorM/laya/pull/348 * @lihongyuan99 made their first contribution in https://github.com/NandhaKishorM/laya/pull/354 * @nanami-0713 made their first contribution in https://github.com/NandhaKishorM/laya/pull/386 * @idongdongh made their first contribution in https://github.com/NandhaKishorM/laya/pull/358 * @peterfriese made their first contribution in https://github.com/NandhaKishorM/laya/pull/372 * @rahul05ranjan made their first contribution in https://github.com/NandhaKishorM/laya/pull/480 * @luiz-linkezio made their first contribution in https://github.com/NandhaKishorM/laya/pull/417 * @dakjdakd made their first contribution in https://github.com/NandhaKishorM/laya/pull/440 * @bhushankinge made their first contribution in https://github.com/NandhaKishorM/laya/pull/436 * @MadrasLe made their first contribution in https://github.com/NandhaKishorM/laya/pull/448 * @Linz1248 made their first contribution in https://github.com/NandhaKishorM/laya/pull/349 * @sbhrwlr made their first contribution in https://github.com/NandhaKishorM/laya/pull/435 * @xiangyang-95 made their first contribution in https://github.com/NandhaKishorM/laya/pull/306 * @Divit-aggarwal made their first contribution in https://github.com/NandhaKishorM/laya/pull/470 * @thejenilsoni made their first contribution in https://github.com/NandhaKishorM/laya/pull/403 * @bunnysayzz made their first contribution in https://github.com/NandhaKishorM/laya/pull/431 * @thread3d made their first contribution in https://github.com/NandhaKishorM/laya/pull/462 * @gRain-is-grainy made their first contribution in https://github.com/NandhaKishorM/laya/pull/598 * @nefro313 made their first contribution in https://github.com/NandhaKishorM/laya/pull/612 * @RagingSilence made their first contribution in https://github.com/NandhaKishorM/laya/pull/615 * @Swatantra-66 made their first contribution in https://github.com/NandhaKishorM/laya/pull/618 * @Jayanth-reflex made their first contribution in https://github.com/NandhaKishorM/laya/pull/624 * @modusensus made their first contribution in https://github.com/NandhaKishorM/laya/pull/625 * @dantedeprenda made their first contribution in https://github.com/NandhaKishorM/laya/pull/539 * @viwe-monai made their first contribution in https://github.com/NandhaKishorM/laya/pull/545 * @rsshir60 made their first contribution in https://github.com/NandhaKishorM/laya/pull/573 * @umran666 made their first contribution in https://github.com/NandhaKishorM/laya/pull/485 * @Rajojha-1 made their first contribution in https://github.com/NandhaKishorM/laya/pull/491 * @somtri made their first contribution in https://github.com/NandhaKishorM/laya/pull/547 * @CodyQin made their first contribution in https://github.com/NandhaKishorM/laya/pull/557 **Full Changelog**: https://github.com/NandhaKishorM/laya/compare/v0.3.20...v0.3.21
Related Repositories
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one