> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coval.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> New features, improvements, and fixes across the Coval platform.

<div className="cl">
  <div className="cl-entry">
    <div className="cl-rail">
      <div className="cl-rail__date">Jun 15</div>
      <div className="cl-rail__year">2026</div>
      <div className="cl-rail__count">7 updates</div>
    </div>

    <div className="cl-content">
      <div className="cl-highlights">
        <div className="cl-highlights__label">Highlights</div>

        <ul className="cl-highlights__list">
          <li>Metric versioning with full change history</li>
          <li>Standardized LLM-judge metric templates</li>
          <li>AI-generated run summaries (beta)</li>
          <li>Project-scoped Human Review pages</li>
        </ul>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Metric versioning</div>
        <p className="cl-card__desc">Metrics now keep a version history, so you can see how a metric changed over time and review prior versions.</p>

        <input type="checkbox" id="cl-mv" className="cl-cb" />

        <div className="cl-card__extra">
          <hr className="cl-card__divider" />

          Each metric keeps a record of its prior states, newest first. You can review the history in the app or pull it through the v1 API.

          [View in docs ↗](/concepts/metrics/overview)
        </div>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Metrics</span>
          <label htmlFor="cl-mv" className="cl-toggle"><span className="more">Show more ▾</span><span className="less">Show less ▴</span></label>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Standardized metric templates</div>
        <p className="cl-card__desc">A library of ready-made LLM judge metric templates is now available when you create a metric, and the metric gallery is reorganized into clearer categories.</p>

        <input type="checkbox" id="cl-smt" className="cl-cb" />

        <div className="cl-card__extra">
          <hr className="cl-card__divider" />

          Pick a standardized judge prompt as a starting point instead of writing one from scratch.
        </div>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Metrics</span>
          <label htmlFor="cl-smt" className="cl-toggle"><span className="more">Show more ▾</span><span className="less">Show less ▴</span></label>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Run summaries (beta)</div>
        <p className="cl-card__desc">Runs now include an AI-generated summary of what happened, available in beta. Mark a summary helpful or not to help it improve.</p>

        <input type="checkbox" id="cl-rs" className="cl-cb" />

        <div className="cl-card__extra">
          <hr className="cl-card__divider" />

          The summary renders with clean formatting and a thumbs up or down control. As a beta feature, it should improve over time as we tune it.
        </div>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Runs</span>
          <label htmlFor="cl-rs" className="cl-toggle"><span className="more">Show more ▾</span><span className="less">Show less ▴</span></label>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Human Review project pages</div>
        <p className="cl-card__desc">Human Review now has project-scoped pages, so you can open a project's overview and assignments on their own pages and share a direct link to them.</p>

        <input type="checkbox" id="cl-hrp" className="cl-cb" />

        <div className="cl-card__extra">
          <hr className="cl-card__divider" />

          Each project gets its own overview and assignments view with breadcrumbs, so you can navigate to and share specific review work without losing context.

          [View in docs ↗](/concepts/metrics/human-review/human-review)
        </div>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Human Review</span>
          <label htmlFor="cl-hrp" className="cl-toggle"><span className="more">Show more ▾</span><span className="less">Show less ▴</span></label>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Connection validation for Pipecat, LiveKit, and WebSocket agents</div>
        <p className="cl-card__desc">Coval now validates Pipecat, LiveKit, and WebSocket agent connections when you set them up, so configuration problems surface before you run.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Agents</span>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Bring your own background sounds</div>
        <p className="cl-card__desc">You can now upload your own background sounds for simulations, so agents can be tested against the exact ambient conditions they will face in production.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Simulation</span>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Telephony recording uploads</div>
        <p className="cl-card__desc">Telephony call recordings in MP3 format now upload reliably, including low-sample-rate recordings that were previously rejected.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--fixed">Fixed</span>
          <span className="cl-cat">Conversations</span>
        </div>
      </div>
    </div>
  </div>

  <div className="cl-entry">
    <div className="cl-rail">
      <div className="cl-rail__date">Jun 6</div>
      <div className="cl-rail__year">2026</div>
      <div className="cl-rail__count">2 updates</div>
    </div>

    <div className="cl-content">
      <div className="cl-highlights">
        <div className="cl-highlights__label">Highlights</div>

        <ul className="cl-highlights__list">
          <li>New pitch variability metric</li>
          <li>New perceived loudness (LUFS) metric</li>
        </ul>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Pitch variability metric</div>
        <p className="cl-card__desc">A new metric that flags whether an agent sounds monotone or expressive across a call.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Metrics</span>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Perceived loudness (LUFS)</div>
        <p className="cl-card__desc">A new metric that measures perceived loudness across a call, so you can catch audio that is too quiet or too loud.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Metrics</span>
        </div>
      </div>
    </div>
  </div>

  <div className="cl-entry">
    <div className="cl-rail">
      <div className="cl-rail__date">Jun 1</div>
      <div className="cl-rail__year">2026</div>
      <div className="cl-rail__count">5 updates</div>
    </div>

    <div className="cl-content">
      <div className="cl-highlights">
        <div className="cl-highlights__label">Highlights</div>

        <ul className="cl-highlights__list">
          <li>Create and delete dashboards via the API and CLI</li>
          <li>Broader chat-agent connectivity with SSE streaming</li>
          <li>Per-conversation metadata in metric prompts</li>
        </ul>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Dashboards via API and CLI</div>
        <p className="cl-card__desc">Create and delete dashboards programmatically through the API and CLI.</p>

        <input type="checkbox" id="cl-dash" className="cl-cb" />

        <div className="cl-card__extra">
          <hr className="cl-card__divider" />

          Manage dashboards as part of your own workflows and scripts, without setting each one up by hand in the app. Useful for spinning up consistent dashboards per project or per environment.

          [View in docs ↗](/cli/dashboards)
        </div>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Dashboards</span>
          <label htmlFor="cl-dash" className="cl-toggle"><span className="more">Show more ▾</span><span className="less">Show less ▴</span></label>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Broader chat-agent connectivity</div>
        <p className="cl-card__desc">Chat agents now support SSE streaming and a configurable response format.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Agents</span>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Metadata in metric prompts</div>
        <p className="cl-card__desc">Dynamic metrics can now reference per-conversation metadata directly in the prompt template.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Metrics</span>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Clearer concurrency limits</div>
        <p className="cl-card__desc">When your organization is running evaluations beyond your concurrency limits, we will store your data but flag the evaluations as an error. This lets you rerun them later, once you are operating within your concurrency limits.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--improved">Improved</span>
          <span className="cl-cat">Simulation</span>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Smoother metric authoring</div>
        <p className="cl-card__desc">Metric descriptions auto-populate and the name auto-fills when you create a metric.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--improved">Improved</span>
          <span className="cl-cat">Metrics</span>
        </div>
      </div>
    </div>
  </div>

  <div className="cl-entry">
    <div className="cl-rail">
      <div className="cl-rail__date">May 26</div>
      <div className="cl-rail__year">2026</div>
      <div className="cl-rail__count">1 update</div>
    </div>

    <div className="cl-content">
      <div className="cl-highlights">
        <div className="cl-highlights__label">Highlights</div>

        <ul className="cl-highlights__list">
          <li>More reliable categorical audio metrics</li>
        </ul>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">More reliable categorical audio metrics</div>
        <p className="cl-card__desc">Categorical audio metrics now flag a clear, descriptive error when no categories are configured, so misconfigurations surface right away.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--improved">Improved</span>
          <span className="cl-cat">Metrics</span>
        </div>
      </div>
    </div>
  </div>

  <div className="cl-entry">
    <div className="cl-rail">
      <div className="cl-rail__date">May 19</div>
      <div className="cl-rail__year">2026</div>
      <div className="cl-rail__count">7 updates</div>
    </div>

    <div className="cl-content">
      <div className="cl-highlights">
        <div className="cl-highlights__label">Highlights</div>

        <ul className="cl-highlights__list">
          <li>Visual IVR Tree Builder</li>
          <li>IVR Flow Adherence metric</li>
          <li>Custom trace aggregations</li>
          <li>Tags for metrics, templates, and test sets</li>
        </ul>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">IVR Flow Adherence metric</div>
        <p className="cl-card__desc">A built-in metric that checks whether a call follows the intended IVR navigation path, with no custom scoring logic required.</p>

        <input type="checkbox" id="cl-ivrf" className="cl-cb" />

        <div className="cl-card__extra">
          <hr className="cl-card__divider" />

          The metric scores each call against the IVR path you define, so you can see where calls deviate from the intended route. Results are reported per call and roll up across the run.

          [View in docs ↗](/concepts/metrics/built-in-metrics)
        </div>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Metrics</span>
          <label htmlFor="cl-ivrf" className="cl-toggle"><span className="more">Show more ▾</span><span className="less">Show less ▴</span></label>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">IVR Tree Builder</div>
        <p className="cl-card__desc">Define and simulate branching IVR call flows visually, directly in Coval.</p>

        <input type="checkbox" id="cl-ivrt" className="cl-cb" />

        <div className="cl-card__extra">
          <hr className="cl-card__divider" />

          Lay out the call paths a caller can take, then run simulations against the whole tree to see where agents take the wrong branch. No external diagramming or scripting needed.

          [View in docs ↗](/concepts/simulations/overview)
        </div>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Simulation</span>
          <label htmlFor="cl-ivrt" className="cl-toggle"><span className="more">Show more ▾</span><span className="less">Show less ▴</span></label>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Custom trace aggregations</div>
        <p className="cl-card__desc">Choose how per-turn scores roll up across a multi-turn trace, for example worst-case or first-occurrence.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Metrics</span>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Tags</div>
        <p className="cl-card__desc">Apply custom tags to metrics, run templates, and test sets to organize and filter your library.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Organization</span>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Expanded voice catalog</div>
        <p className="cl-card__desc">New voices are available in the persona picker, ready to use with no setup.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Simulation</span>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Flexible sign-in</div>
        <p className="cl-card__desc">Custom sign-in now works across all configured authentication methods.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--fixed">Fixed</span>
          <span className="cl-cat">Sign-in</span>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Shared run access</div>
        <p className="cl-card__desc">Password-protected shared runs now open reliably across different saved password formats.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--fixed">Fixed</span>
          <span className="cl-cat">Runs</span>
        </div>
      </div>
    </div>
  </div>

  <div className="cl-entry">
    <div className="cl-rail">
      <div className="cl-rail__date">May 13</div>
      <div className="cl-rail__year">2026</div>
      <div className="cl-rail__count">6 updates</div>
    </div>

    <div className="cl-content">
      <div className="cl-highlights">
        <div className="cl-highlights__label">Highlights</div>

        <ul className="cl-highlights__list">
          <li>Faster, more reliable reports</li>
          <li>Easier metric selection</li>
          <li>More resilient metric scoring</li>
        </ul>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Faster, more reliable reports</div>
        <p className="cl-card__desc">Large reports that used to struggle to load now open reliably even at scale, thanks to a change in how we load them.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--new">New</span>
          <span className="cl-cat">Reports</span>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Easier metric selection</div>
        <p className="cl-card__desc">The metric picker now uses grouped, nested categories, so the right metric is faster to find and apply.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--improved">Improved</span>
          <span className="cl-cat">Metrics</span>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Larger conversation uploads</div>
        <p className="cl-card__desc">There is no longer a 1000-character limit on metadata for uploaded conversations.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--improved">Improved</span>
          <span className="cl-cat">Conversations</span>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Consistent LLM Judge labeling</div>
        <p className="cl-card__desc">Auto-generated metrics are now reliably tagged LLM Judge, so AI-scored and rule-based metrics are easy to tell apart.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--fixed">Fixed</span>
          <span className="cl-cat">Metrics</span>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">Accurate audio metric scoring</div>
        <p className="cl-card__desc">Speech anomaly, volume variance, and audio sentiment metrics now scope to the channel and time range you configure.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--fixed">Fixed</span>
          <span className="cl-cat">Metrics</span>
        </div>
      </div>

      <div className="cl-card">
        <div className="cl-card__title">More resilient metric scoring</div>
        <p className="cl-card__desc">Metrics now do a better job of handling a wider variety of metadata inputs.</p>

        <div className="cl-card__footer">
          <span className="cl-pill cl-pill--fixed">Fixed</span>
          <span className="cl-cat">Metrics</span>
        </div>
      </div>
    </div>
  </div>
</div>
