v0.3.29
feyninc/pulpiev0.3.29Oct 7, 2026by github-actions[bot]
Upgrading?
AI Summary
This release emphasizes documentation clarity regarding confidence formulas and hook behaviors. It introduces core training capabilities such as abstention threshold fitting and evidence inspection, alongside updates to the research panel for loss functions.
Key Highlights
- Major documentation corrections clarifying confidence formulas per question type and hook behaviors
- Training features: --eval flag, abstention threshold fitting, and train_report.json generation
- Evidence inspection for checkpoint and eval artifacts
- Research feature: Three-seed RLCD vs soft-CE default-loss panel
- ONNX dependency cap to prevent NumPy 2 compatibility issues
New Features
- Evidence inspection for eval artifacts
- Abstention threshold fitting in training
- train_report.json support
- Three-seed RLCD research panel
Full Release Notes
## What's Changed * build(deps): cap NumPy below 2 in the onnx extra by @thread3d in https://github.com/NandhaKishorM/laya/pull/947 * feat(evals): evidence inspection over checkpoint and eval artifacts by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/964 * fix(agent): read a state predict_long's questions leave room for in one pass by @JeelGajera in https://github.com/NandhaKishorM/laya/pull/966 * docs(examples): example 18 must not call the shipped answer_confidence calibrated by @aashish254 in https://github.com/NandhaKishorM/laya/pull/973 * docs(examples): example 30 must call score confidence 1 - H/log(k), not the entropy by @aashish254 in https://github.com/NandhaKishorM/laya/pull/974 * docs(examples): example 21 must read its cost claim off the measurement it takes by @aashish254 in https://github.com/NandhaKishorM/laya/pull/975 * docs(evals): the --min-confidence gate flags the answer, it does not overwrite it by @aashish254 in https://github.com/NandhaKishorM/laya/pull/976 * docs(examples): example 26 must count triage_questions()'s three yes/no fields by @aashish254 in https://github.com/NandhaKishorM/laya/pull/978 * docs(tl_kernels): the multiple-of-16 comes from tokens, not rows by @aashish254 in https://github.com/NandhaKishorM/laya/pull/979 * docs(structured): DecisionResult's confidence is per-type, not uniformly entropy by @aashish254 in https://github.com/NandhaKishorM/laya/pull/980 * docs(presets): questions-and-answers must count five, not three by @aashish254 in https://github.com/NandhaKishorM/laya/pull/981 * docs(typescript-sdk): /health returns seven keys, not the three the page listed by @aashish254 in https://github.com/NandhaKishorM/laya/pull/983 * docs(mcp): laya_route_batch row must name its own six keys by @aashish254 in https://github.com/NandhaKishorM/laya/pull/984 * docs(http-api): strict JEV answers carry type, the pages did not say so by @aashish254 in https://github.com/NandhaKishorM/laya/pull/986 * docs(hooks): scope plain callables to on_predict_start=/on_predict_end=, not hooks= by @aashish254 in https://github.com/NandhaKishorM/laya/pull/987 * docs(hooks): api.md blocks must name hooks_timeout like their hooks_raise siblings by @aashish254 in https://github.com/NandhaKishorM/laya/pull/988 * docs(hooks): tracing.md nested-call example must read child run_id from ctx by @aashish254 in https://github.com/NandhaKishorM/laya/pull/989 * docs(hooks): errors.md must enumerate every hooks_raise and hooks_timeout surface by @aashish254 in https://github.com/NandhaKishorM/laya/pull/990 * docs(hooks): lifecycle.md must place process-wide defaults ahead of installed by @aashish254 in https://github.com/NandhaKishorM/laya/pull/991 * docs(readme): batch-hooks bullet must split predict_batch from route_batch by @aashish254 in https://github.com/NandhaKishorM/laya/pull/992 * docs(hooks): patterns.md Composition must name defaults as the head tier by @aashish254 in https://github.com/NandhaKishorM/laya/pull/993 * docs(security): /health sample must filter to revisions, not claim four keys by @aashish254 in https://github.com/NandhaKishorM/laya/pull/994 * docs(hooks): examples.md Composition must name the three tiers, not two by @aashish254 in https://github.com/NandhaKishorM/laya/pull/995 * docs(agent): predict_long gate comments must describe the None contract, not claim a report by @aashish254 in https://github.com/NandhaKishorM/laya/pull/996 * docs(common): render_criterion's docstring must name the separators it passes by @aashish254 in https://github.com/NandhaKishorM/laya/pull/997 * docs(mcp): laya_shortlist's metadata list must name passthrough, the fifth key by @aashish254 in https://github.com/NandhaKishorM/laya/pull/998 * docs(email): email_state's **extra rule must name the None filter it documents by @aashish254 in https://github.com/NandhaKishorM/laya/pull/999 * test(portability): no repo read in tests/ may leave the codec to the runner by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1001 * fix(confidence): a min_confidence map key must name a bucket an answer can produce by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1002 * docs(calibrate): the calibration payload's contract must name binning_map and every shape it refuses by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1003 * docs(examples): example 03 must give `confidence` per question type, not one formula by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1004 * docs: both confidence pages must attribute `confidence` per question type, not as one entropy formula by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1005 * docs(train): rewrite the fine-tuning guide around laya-train by @GuilhermeFusari in https://github.com/NandhaKishorM/laya/pull/1007 * fix(example): the demo's certainty chip must name its question type's formula by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1008 * docs(predict_long): the default window's 64-token floor must be in the docstrings that state the default by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1009 * docs(evals): the calibration column must name its fallback, and the shipped level is not calibrated by @aashish254 in https://github.com/NandhaKishorM/laya/pull/1011 * fix(lang): do not name all-caps acronym and address lines as foreign prose by @keemsisi in https://github.com/NandhaKishorM/laya/pull/1013 * refactor(finetune): converge single-process wrappers on laya.train by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/965 * feat(train): add --eval, abstention threshold fitting, and before/after train_report.json (#887) by @Swatantra-66 in https://github.com/NandhaKishorM/laya/pull/967 * fix(train): warn when fine-tune predictions collapse to the class prior by @tiagovilasboas in https://github.com/NandhaKishorM/laya/pull/968 * docs(examples): example 40 must not call answer_confidence calibrated by @aashish254 in https://github.com/NandhaKishorM/laya/pull/972 * docs(mcp): laya_decide row must list min_confidence; every tool row must name every handler param by @aashish254 in https://github.com/NandhaKishorM/laya/pull/985 * feat(research): three-seed RLCD vs soft-CE default-loss panel for #887 by @Bruce-Yii in https://github.com/NandhaKishorM/laya/pull/1012 ## New Contributors * @JeelGajera made their first contribution in https://github.com/NandhaKishorM/laya/pull/966 **Full Changelog**: https://github.com/NandhaKishorM/laya/compare/v0.3.28...v0.3.29
Related Repositories
f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.
Open-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 🚀
1,324-exercise fitness dataset — animation GIFs, 180×180 thumbnails, muscle-group & equipment data, and step-by-step instructions in 6 languages. The exercise data layer behind the LogPress app.
A complete web-based remote monitoring and management web site. Once setup you can install agents and perform remote desktop session to devices on the local network or over the Internet.
A general purpose HTTP reverse proxy and forwarding tool. Now written in Go!