Commit Graph
713 Commits
Author SHA1 Message Date
dependabot[bot] 75453544e1 chore(deps): Bump actions/setup-python from 5.6.0 to 7.0.0
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.6.0 to 7.0.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/a26af69be951a213d495a4c3e4e4022e16d87065...5fda3b95a4ea91299a34e894583c3862153e4b97)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-27 19:29:49 +00:00
NandakishorandClaude Opus 5.5 9d95567141 release: 0.3.21, ONNX batch/long parity, opt-in abstention, batch and budget on every surface
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
v0.3.21
2026-09-28 00:57:17 +05:30
NandakishorandClaude Opus 5.5 e63a02929f docs(onnx): list predict_long's hook arguments one per line so the reference renders
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 00:57:17 +05:30
NandakishorandClaude Opus 5.5 794c5fd3bc chore: wire the merged env vars, extras and suites through nix, docs and CI guards
- nix/laya-serve.nix: maxLoaded, maxTokenBudget and revision options for LAYA_MAX_LOADED
  (#603), LAYA_MAX_TOKEN_BUDGET (#566) and LAYA_REVISION (#605); test_packaging counts
  mcp/device.py's _ENV_KEY as the LAYA_DEVICE read serve now goes through (#574).
- docs/docker.md documents LAYA_REVISION.
- test_audit_scope knows the llamaindex/crewai extras and onnxscript.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 00:54:23 +05:30
NandakishorandClaude Opus 5.5 588766b705 feat(langchain): send max_len/head_max_len to laya-serve instead of refusing them
#530 refused a token budget on a remote node because laya-serve had no field for it. #566
added the field (bounded by LAYA_MAX_TOKEN_BUDGET), so _call_remote now puts the override in
the request body. Also puts the budget and hooks sections of docs/langchain.md back at the
end of the page in order (5-8).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 00:54:23 +05:30
NandakishorandClaude Opus 5.5 ed5f7de4ad fix(integrations): one LayaLowConfidenceError for LlamaIndex and CrewAI, local URLs in tests
#533 and #535 each defined their own LayaLowConfidenceError, so laya.integrations exported
whichever was imported last and 'except' on it missed the other integration's errors. Both
now import the class from laya/integrations/_errors.py.

The remote-mode tests used https://api.laya.ai as a placeholder. Laya has no hosted API, so
the tests use a local laya-serve address instead.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 00:54:23 +05:30
NandakishorandClaude Opus 5.5 3b0998b26d fix(serve): only set TCP_NODELAY on TCP sockets, and never fail a connection over it
#624 called setsockopt on whatever transport.get_extra_info("socket") returned. A Unix
socket (or a transport with no socket) would raise inside connection_made and drop the
connection, for what is only a latency hint.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 00:54:22 +05:30
NandakishorandClaude Opus 5.5 bd1513e924 fix(onnx,structured): keep ONNXAgent and decide_batch in step after the batch merges
- ONNXAgent.predict_long takes the per-call hooks Agent.predict_long gained in #577, with
  the same usage["windows"] contract (1 for one window, 0 for a hook's answer, no window
  attribution on a rewritten scan). tests/test_onnx_long.py's parity check caught the gap.
- decide_batch takes min_confidence like decide (#361), and ONNXAgent gets decide_batch now
  that it has predict_batch (#489). The docs no longer say ONNXAgent cannot batch.
- test_structured_docs follows decide's signature, and the API table names callables that
  exist (agent./router.decide_batch).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 00:54:22 +05:30
Nandakishor f888f43786 Merge pull request #542 from aashish254/feat-cli-questions
feat(cli): answer your own questions, and give them the token budget they need

# Conflicts:
#	README.md
#	laya/cli.py
#	tests/test_cli.py
2026-09-28 00:54:22 +05:30
Nandakishor 6e19780df8 Merge pull request #625 from modusensus/fix/example-server-error-text
fix(server): keep exception text out of responses, log it instead

# Conflicts:
#	.github/workflows/ci.yml
#	examples/server.py
2026-09-28 00:54:22 +05:30
Nandakishor ca59ce2785 Merge pull request #624 from Jayanth-reflex/fix/serve-tcp-nodelay
fix(serve): set TCP_NODELAY on every accepted connection

# Conflicts:
#	tests/test_serve.py
2026-09-28 00:54:22 +05:30
Nandakishor 8ad061ba68 Merge pull request #619 from aashish254/feat-onnx-load-token
feat(onnx): let ONNXAgent authenticate its Hub download the way Agent does

# Conflicts:
#	tests/test_download.py
2026-09-28 00:54:22 +05:30
Nandakishor 9b8715f419 Merge pull request #618 from Swatantra-66/ci/missing-test-coverage
ci(workflows): run missing test suites in CI and guard against test omission (#399)

# Conflicts:
#	.github/workflows/ci.yml
#	.github/workflows/release.yml
2026-09-28 00:54:22 +05:30
Nandakishor 3616158b6b Merge pull request #617 from aashish254/feat-load-compile
feat(agent): let laya.load reach the compile option Agent already takes

# Conflicts:
#	tests/test_download.py
2026-09-28 00:54:22 +05:30
Nandakishor 008deb86a4 Merge pull request #615 from RagingSilence/perf/reuse-question-tokenization
perf(agent): reuse question tokenization within prediction batches

# Conflicts:
#	.github/workflows/ci.yml
#	laya/agent.py
2026-09-28 00:54:22 +05:30
Nandakishor 0b1374f405 Merge pull request #614 from aashish254/feat-nix-deployment-parity
fix(nix): the module must not refuse names laya accepts, must not copy them, and must reach every knob the server reads
2026-09-28 00:54:22 +05:30
Nandakishor 7c8c526cba Merge pull request #613 from aashish254/feat-mcp-device-label
fix(mcp): the auto-detected device label must know about MPS and XPU
2026-09-28 00:54:22 +05:30
Nandakishor 6451ab538c Merge pull request #612 from nefro313/main
docs(install): document installing with uv

# Conflicts:
#	README.md
2026-09-28 00:54:22 +05:30
Nandakishor fe210ebd3f Merge pull request #611 from aashish254/feat-demo-predict-batch
fix(examples): /predict/batch must call Router.predict_batch, not predict per state

# Conflicts:
#	tests/test_example_server_limits.py
2026-09-28 00:54:22 +05:30
Nandakishor 90f074b054 Merge pull request #610 from AliAkbariAlashti/fix/ci-job-timeouts
ci: bound remaining workflow jobs
2026-09-28 00:54:22 +05:30
Nandakishor 9b2e86cb58 Merge pull request #609 from rahul05ranjan/fix/validate-questions-and-state
fix(agent): validate questions and reject None state before serialization
2026-09-28 00:54:22 +05:30
Nandakishor d3863bdade Merge pull request #606 from hemanthrayuduu/fix/router-predict-batch-followups
fix(router): predict_batch hook follow-ups to #289

# Conflicts:
#	docs/hooks/lifecycle.md
#	laya/router.py
2026-09-28 00:54:21 +05:30
Nandakishor 897aaf6904 Merge pull request #605 from aashish254/feat-revision-env
feat(revisions): let LAYA_REVISION pick the checkpoint commit
2026-09-28 00:54:21 +05:30
Nandakishor d28aef54f6 Merge pull request #604 from aashish254/fix-demo-max-loaded
fix(examples): the demo's resident-checkpoint cap must follow laya's own

# Conflicts:
#	tests/test_example_server_limits.py
2026-09-28 00:54:21 +05:30
Nandakishor 98e3fa9036 Merge pull request #603 from aashish254/fix-serve-max-loaded
feat(serve): make the resident-checkpoint cap reachable (LAYA_MAX_LOADED)

# Conflicts:
#	docs/docker.md
#	laya/serve.py
#	tests/test_serve.py
2026-09-28 00:54:21 +05:30
Nandakishor de8900610d Merge pull request #601 from aashish254/fix-mcp-auto-task
fix(mcp): honour LAYA_AUTO_TASK, the one serve env var that changes routing
2026-09-28 00:54:21 +05:30
Nandakishor e0e8154c9f Merge pull request #598 from gRain-is-grainy/fix/guardrail-score-threshold
fix(integrations): gate a guardrail score question on its upper-half probability

# Conflicts:
#	laya/integrations/langchain.py
2026-09-28 00:31:28 +05:30
Nandakishor a5b7fd9a48 Merge pull request #597 from aashish254/feat-entrypoint-secret-parity
test(docker)+ci: every secret the container entrypoint loads has to be proven, including over HTTP
2026-09-28 00:31:10 +05:30
Nandakishor ea6daa87cd Merge pull request #596 from aashish254/feat-structured-docs-subset
docs(structured): the subset tables now say what the compiler maps
2026-09-28 00:31:10 +05:30
Nandakishor 8b3b7082e5 Merge pull request #595 from aashish254/feat-audit-extras
fix(security): audit every declared dependency, not just the core five

# Conflicts:
#	.github/workflows/ci.yml
2026-09-28 00:31:10 +05:30
Nandakishor c16b8528cc Merge pull request #594 from aashish254/feat-compose-amp-env
fix(compose): forward the autocast dtype overrides the runtime reads
2026-09-28 00:31:02 +05:30
Nandakishor 733a34635a Merge pull request #593 from aashish254/feat-evals-cli-within
feat(evals): let laya-evals run ask for the tolerance metric its docs publish

# Conflicts:
#	laya/evals_cli.py
#	tests/test_evals.py
2026-09-28 00:31:02 +05:30
Nandakishor e0b5dbf615 Merge pull request #591 from aashish254/fix-hooks-patterns-cover-batch
fix(hooks): cover every decision of a call in the taught hook patterns
2026-09-28 00:30:18 +05:30
Nandakishor 1e28b6e467 Merge pull request #590 from aashish254/fix-cache-key-question-order
fix(examples): key the cache hook on what the answer depends on
2026-09-28 00:30:18 +05:30
Nandakishor 1c84cb90df Merge pull request #589 from aashish254/feat-email-state-max-chars
fix(email): email_state swallowed max_chars into the model's input
2026-09-28 00:30:18 +05:30
Nandakishor 691d0fcf2d Merge pull request #588 from aashish254/feat-evals-revision
feat(evals): pin the checkpoint commit a run scores, and record it in the report

# Conflicts:
#	docs/evals.md
#	laya/evals_cli.py
2026-09-28 00:30:18 +05:30
Nandakishor 188aa9fae9 Merge pull request #587 from aashish254/feat-docs-export-coverage
docs(reference): render cached_embed_fn and gate every name in __all__

# Conflicts:
#	tests/test_packaging.py
2026-09-28 00:29:49 +05:30
Nandakishor 9f0d06c23b Merge pull request #592 from aashish254/fix-evals-latency-quantity
fix(evals): report what a request waited, and name the throughput share
2026-09-28 00:29:36 +05:30
Nandakishor a7f7b4bd4e Merge pull request #583 from aashish254/feat-router-batch-budget
feat(router): honour a request's token budget in predict_batch

# Conflicts:
#	tests/test_router_batch.py
2026-09-28 00:29:36 +05:30
Nandakishor 762e1d849a Merge pull request #581 from NandhaKishorM/dependabot/github_actions/actions/setup-node-7.0.0
build(deps): bump actions/setup-node from 4.4.0 to 7.0.0
2026-09-28 00:29:26 +05:30
Nandakishor a7b8eeebda Merge pull request #580 from NandhaKishorM/dependabot/github_actions/actions/download-artifact-8.0.1
build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1
2026-09-28 00:29:26 +05:30
Nandakishor 8c270c287c Merge pull request #579 from NandhaKishorM/dependabot/github_actions/github/codeql-action/analyze-4.38.1
build(deps): bump github/codeql-action/analyze from 3.38.2 to 4.38.1
2026-09-28 00:29:26 +05:30
Nandakishor 3546b57b7f Merge pull request #578 from NandhaKishorM/dependabot/github_actions/github/codeql-action/init-4.38.1
build(deps): bump github/codeql-action/init from 3.38.2 to 4.38.1
2026-09-28 00:29:26 +05:30
Nandakishor d6f1f3e3a3 Merge pull request #577 from aashish254/feat-predict-long-hooks
feat(agent): per-call prediction hooks on predict_long, and no window for a skipped answer

# Conflicts:
#	tests/test_predict_long.py
2026-09-28 00:29:26 +05:30
Nandakishor 4196a39b5b Merge pull request #576 from cklxx/feat/compile-cold-start
perf(agent): stop compile=True from recompiling on every new request shape (part 1 of #472)

# Conflicts:
#	laya/agent.py
2026-09-28 00:29:16 +05:30
Nandakishor 39411b1b79 Merge pull request #575 from aashish254/feat-env-docs
docs(env): write down the two LAYA_* names no page carried, and sweep for the rest
2026-09-28 00:29:06 +05:30
Nandakishor f964afd530 Merge pull request #574 from aashish254/feat-serve-health
fix(serve): /health reports where inference actually runs, not the requested device

# Conflicts:
#	laya/serve.py
2026-09-28 00:29:06 +05:30
Nandakishor 7c6af40abf Merge pull request #573 from rsshir60/main
test(lang): add Hindi and Marathi routing regression tests
2026-09-28 00:28:49 +05:30
NandakishorandClaude Opus 5.5 7ac55ad909 fix(router): keep Router's positional parameters where they were
#568 and #572 added agent_kwargs and sha256_digests in the middle of the signature,
ahead of max_loaded, so Router(models, device, token, revision, revisions, 2) would
have bound 2 to agent_kwargs. Both are new, so they go last instead.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 00:28:42 +05:30
Nandakishor 7febda4c9b Merge pull request #572 from aashish254/feat-router-digests
feat(router): verify each checkpoint with its own SHA-256 map

# Conflicts:
#	laya/router.py
#	tests/test_hooks_api.py
#	tests/test_revision_pinning.py
2026-09-28 00:28:40 +05:30