# Changelog

Track the API contract and model identifiers.

## 2026-11-13 — Ren 1.1 (ren-1.1.0)

- Public model Ren uses semantic versions. Pin `ren-1.1.0`; `ren-latest` and `ren-preview` both resolve to it. Responses echo `ren-1.1.0` in `model` and `usage.model`.
- `GET /v1/models` lists the full ID and both aliases with `release_date: "2026-11-13"`.
- Unknown, shortened, and case-variant IDs return `400 unknown_model`, naming all valid IDs.

## 2026-11-12 — API rules before go-live

- The gated number is `probability`, the chosen answer's probability. `p` and `confidence` are removed. For true/false, the probability of true is `probabilities.true`.
- Status codes: JSON nesting deeper than 64 is `400`; option and level counts are `422`; bodies over 4 MB and inputs over 2048 tokens stay `413`. A request that can never succeed never receives `429`.
- Unknown fields are rejected at every level. Every response carries `X-Request-Id`; errors are `{code, message}` and never repeat request content.
- Default rate limits rise to 300 requests per minute per key and 600 per account. `429` responses add `retry-after-ms`; decisions carry `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset`.

## 2026-11-12 — private-beta integration draft

The documented gateway surface includes typed choice, score, and true/false decisions; full semantic model IDs and aliases; bearer authentication; input-token usage; and server-side routing thresholds.

`ren-1.1.0` is the full release identifier used in examples. Deployment and account availability must be checked through `GET /v1/models`. This entry records a contract milestone, not a measured model-quality improvement or a deployment announcement.

Future model changes should record the new pinned ID and any changes to input handling, primitives, calibration, or gate behavior. Recheck your thresholds before adopting a new version.
