# Changelog

> What changed in each release. The package follows semantic versioning; before 1.0, minor versions may change the public API.

Section: Reference · HTML: https://jevascript.org/docs/changelog · Markdown: https://jevascript.org/docs/changelog.md

Releases are also published on [GitHub](https://github.com/hakantapanyigit/jevascript/releases) and [npm](https://www.npmjs.com/package/jevascript).

## 0.1.0

*2026-09-23*

Initial public release.

- `semantic(state)` with `is()`, `score()`, `choose()`, `batch()` and `rank()`.
- Automatic batching: every question created in one synchronous turn shares a request. Warning on unbatched sequential awaits outside production.
- `createSemantic()` for private instances; `configureSemantic()` for the module-level one; zero configuration with `JEV_API_KEY`.
- Definitions: `defineRule`, `defineMetric`, `defineSchema`, and the low-level `evaluate()` with `boolean`, `number`, `enumOf`, `object` and `numberRange` output helpers.
- Collections: `filter`, `some`, `every`, `rank`, `find` (one request) and `compare` (one request).
- Measured confidence via `samples` and `minConfidence`, with value or async `fallback`; `allowUnknown` bands.
- Caching with TTL strings, an LRU `MemoryCache`, and the `SemanticCache` interface for shared stores.
- Observability hooks `onEvaluation` and `onUnbatched`.
- Jev provider with a pinned model, retries with backoff, timeouts, and per-request key resolution.
- `jevascript/testing` with `createMockSemanticProvider`.
- Error classes: `SemanticError`, `NotConfiguredError`, `UnsupportedByProviderError`, `LowConfidenceError`, `ProviderError`.

### Not yet built

Designed but out of scope for this release: `evidence` (extractive citation of the lines behind a judgement), `semanticAssert` and `defineInvariant`, `definePolicy` (mixed deterministic and semantic rules), `semantic.query`, `evaluateDataset`, adaptive `filter` packing, and framework and provider add-ons (Next.js helper, Zod bridge, OpenAI provider, Vercel AI SDK bridge).
