v0.4.7

google/artemisv0.4.7Oct 14, 2026by github-actions[bot]

Upgrading?

AI Summary

This release focuses on Docker HTTP liveness checks, routing validation, and TypeScript SDK improvements. It includes significant updates to the Go language implementation, tournament selection features, and comprehensive documentation fixes.

Key Highlights

  • Docker HTTP liveness checks are now distinct from inference checks.
  • Foundation for Go language support (tokenizer and language detection) is added.
  • Tournament selection and elimination features are expanded.
  • ONNX graph verification is implemented before saving to output directories.
  • Hook and citation documentation has been significantly improved.

New Features

  • Go language foundation for questions, sequences, and decoding.
  • Large choice narrowing on `/v1/systemone/batch`.
  • Tournament elimination and final-choice error attribution.

Full Release Notes

## What's Changed
* docs(docker): distinguish HTTP liveness from inference by @maxfield-allison in https://github.com/NandhaKishorM/laya/pull/1181
* test(docker): add an optional cached HTTP inference check by @maxfield-allison in https://github.com/NandhaKishorM/laya/pull/1182
* fix(cli): an interactive session returns the exit code its requests earned by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1184
* fix(evals): hash option_order into the question fingerprint by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1187
* fix(ts): read email text the way the Python reference does by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1188
* test(citations): a :NNN citation must fall inside the symbol it names by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1189
* fix(common): report a bool temperature a checkpoint shipped, not load it silently by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1190
* fix(ts): report a bool temperature a checkpoint shipped, not load it silently by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1191
* fix(ts): read a temperature as float() does, not as Number() does by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1192
* fix(presets): an empty category map falls back to the defaults by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1193
* docs(hooks): the RuntimeWarning arrives once per distinct message, not per failure by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1194
* fix(ts): normalise the action head at the model boundary, not in the decoder by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1195
* feat(ts): honour a question's `option_order` across encoding and decoding by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1196
* docs(benchmarks): MPS fp16 autocast against fp32 on an Apple M5 Pro by @sandole in https://github.com/NandhaKishorM/laya/pull/1199
* fix(router): validate questions in predict before checkpoint load (#707) by @Swatantra-66 in https://github.com/NandhaKishorM/laya/pull/1201
* fix(calibrate): refuse a non-integral JSON version instead of truncating it by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1202
* feat(serve): narrow large choices on /v1/systemone/batch too (#302) by @kmitul in https://github.com/NandhaKishorM/laya/pull/1204
* fix(ts): verify the ONNX graphs before anything lands in --out-dir by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1206
* fix(compose): forward tournament group knob to laya-serve by @NAVEENPRASAATH23 in https://github.com/NandhaKishorM/laya/pull/1207
* fix(common): report lang_temperatures overrides that inherited the checkpoint's temperatures by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1208
* docs(calibrate): name what actually covers a bucket the abstention floor omits by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1209
* docs(index): routing and the HTTP API have pages; link them, and hold the front door to the tree by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1167
* feat(go): questions, sequences and answer decoding by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1169
* docs(onnx): teach the stride default as half the effective window by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1170
* fix(evals): an unwritable report path is a usage error, not exit 1 by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1171
* ci(suites): a crashing suite leaves its output and an exit status by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1172
* fix(evidence): stop calling a limitation "fitted with" when it says "not fitted" by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1173
* feat(evals): attribute tournament elimination and final-choice errors by @xinpingzh in https://github.com/NandhaKishorM/laya/pull/1175
* fix(evals): read a report's identity wherever the report puts it by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1177
* feat(mcp): expose core tournament selection as laya_tournament by @Rish-it in https://github.com/NandhaKishorM/laya/pull/1178
* test(batch): pin the two hook cases the batch path can still get wrong by @PerryLink in https://github.com/NandhaKishorM/laya/pull/1179
* docs(typescript-sdk): say which endpoints the client actually calls by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1180
* ci(dependabot): cover the TypeScript HTTP SDK by @maxfield-allison in https://github.com/NandhaKishorM/laya/pull/1183
* fix(shortlist): hold every tournament call to the reply shape it indexes by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1185
* fix(compose): forward LAYA_SHA256_DIGESTS to quickstart service in compose.yaml by @NAVEENPRASAATH23 in https://github.com/NandhaKishorM/laya/pull/1186

## New Contributors
* @sandole made their first contribution in https://github.com/NandhaKishorM/laya/pull/1199

**Full Changelog**: https://github.com/NandhaKishorM/laya/compare/v0.4.6...v0.4.7

Related Repositories