packages feed

jev-0.1.1.0: CHANGELOG.md

# Changelog

## 0.1.1.0

- Accept probabilities rounded to two decimals, as returned by OpenRouter.
  Distribution sums now tolerate `0.005` per returned probability, the selected
  Choice may trail another option by a rounded tie (`0.01`), and Score checks
  allow for rounded probabilities. Values are still not renormalized; clearly
  invalid distributions are still rejected.
- Add `renderJevError`, a log-friendly rendering of `JevError` with the
  constructor, status code, request ID, and message or truncated body. Unlike
  `show`, it never includes response headers such as `Set-Cookie`.

## 0.1.0.0

- Enforce `timeoutMicros` across the complete HTTP operation, including reading
  the response body. Validation and JSON decoding remain outside the deadline.
- Add structured transport failures. `TransportError Text` becomes
  `TransportError TransportFailure`; total deadline expiry is `DeadlineExceeded`.
- Change `HttpError Int body` to `HttpError ResponseMetadata body`. Read the
  status from `metadata.statusCode`; headers and request IDs are retained.
- Add `ResponseDecodeError ResponseMetadata Text` for HTTP decoding failures.
  `DecodeError Text` is used by the pure fixture decoder.
- Reject contradictory distributions and scores using documented rounding
  tolerances, and require legends to cover returned probability indices.
- Add pure question validation, request inspection, and fixture decoding.
- Add optional OpenRouter routing and observability settings through
  `decideWith`, `decideJSONWith`, and `prepareRequestWith`.
- Add `Functor` instances for value-carrying public data types.
- Document public API contracts and consumer installation; add package bounds,
  license text, and isolated source-distribution verification.
- Move Nix tooling overrides to `cabal.project.nix`; ordinary Cabal builds now
  use a minimal project file.