Skip to main content
Turns never run the draft config. They run the latest version: an immutable, numbered copy of the draft taken at publish time. Publishing is gated. Before a version is released, the platform replays your gate eval scenarios against the candidate config with real model calls and compares the result with the previous release. A regression can block the release.

How it works

  1. You save the draft config. Saving changes nothing live.
  2. You publish. The platform checks that the instance is not a follower, checks the waiver fields, and revalidates the draft (400 invalid_instance_config on failure).
  3. The platform runs the eval gate on the candidate config and records the run.
  4. The platform releases the candidate as the next integer version, inside a locked transaction that confirms the draft and the gate scenario set did not change while the gate ran.
  5. New message turns resolve the new version from then on. A turn that is paused keeps the version it started on when it resumes.
Versions are dense integers per instance, starting at 1. Each carries the config_hash of the config it froze. Nothing edits or deletes a version.

The eval gate

The gate runs only scenarios in the gate suite. Scenario authoring is on Evaluation. The on_regression value is read from the candidate config. Eval model spend is metered to your org and tagged eval, separate from conversation spend. The gate runs at most 40 scenarios of at most 8 scripted turns each, and one publish has 50 minutes end to end.

Publish outcomes

A 422 carries the per-scenario diff:
The message text is informational. Match on code and read details.

Publish in the portal

Conversations, then the instance, then the Config tab, then Publish. The portal runs the same gate and shows the same diff. When a publish is blocked, the same dialog offers the waiver fields. The portal waits at most 10 minutes for the gate. A larger scenario set can outlast that wait while the publish continues on Nexio’s side, so check the Versions tab before publishing again, and publish large sets with the API. The Versions tab lists released versions and their eval results. Publishing needs the portal permission to manage engines; see Team and roles.

Publish with the API

Publishing through the API needs an organization API key. Every scoped key is refused with 403 insufficient_capability. The request body is optional. The route is exempt from the 30-second request timeout; keep the connection open for up to 50 minutes when the instance has gate scenarios.
NEXIO_API_KEY holds an organization API key from Settings, then API keys. Response 200:
To publish over a blocked regression, add both waiver fields:
A waiver is recorded only when there is a regression to waive.

Read versions and their eval runs

  • List versions: {versions: [{version, config_hash, changelog, created_by, released_at}]}, newest first.
  • Get a version’s eval run: the most recent eval run recorded for that version (the publish gate run, or a later on-demand run for the same version), per-scenario results, and the diff against the run of the version immediately before it, when that version has one. The version path segment is the integer. A version with no recorded eval run, such as one published while the instance had no gate scenarios, returns 404 conversation_eval_run_not_found.
Both reads accept a scoped key with conversations:use.

Evaluation

Write scenarios and rubrics, and run suites on demand.

Instance configuration

What the draft contains.
Last modified on September 25, 2026