@voltagent/evals@2.0.4
VoltAgent/voltagent@voltagent/evals@2.0.4Feb 25, 2026by voltagent-bot
AI Summary
Patch fix that enables offline experiment runs to persist when using inline datasets with non-UUID item IDs. The VoltOpsRunManager now allows run creation even when dataset.versionId is missing, fixing API failures with string IDs like 'item-1'.
Key Highlights
- VoltOpsRunManager now allows run creation when dataset.versionId is missing
- Non-UUID item IDs (like 'item-1') are now supported
- UUID item IDs sent as datasetItemId, non-UUID sent as null with datasetItemHash tracking
- Fixes API failures when inline dataset items use string IDs
New Features
- Persist offline eval runs when using inline datasets (dataset.items)
Full Release Notes
### Patch Changes
- [#1108](https://github.com/VoltAgent/voltagent/pull/1108) [`c1df46f`](https://github.com/VoltAgent/voltagent/commit/c1df46fe3a2f478615310c51e649309647b0370c) Thanks [@omeraplak](https://github.com/omeraplak)! - fix: persist offline eval runs when using inline datasets (`dataset.items`)
Offline experiment runs now create and sync run results even when the dataset is provided inline without a managed `datasetVersionId`.
### What changed
- `VoltOpsRunManager` now allows run creation when `dataset.versionId` is missing.
- Append payload generation now normalizes `datasetItemId`:
- UUID item IDs are sent as `datasetItemId`.
- Non-UUID item IDs are sent as `null` and still tracked via `datasetItemHash`.
This avoids API failures when inline dataset items use string IDs like `"item-1"`.
### Example
```ts
import { createExperiment, runExperiment } from "@voltagent/evals";
const experiment = createExperiment({
dataset: {
name: "inline-smoke",
items: [
{
id: "item-1", // non-UUID is supported
input: "What is VoltAgent?",
expected: "An open-source TypeScript framework for AI agents.",
},
],
},
runner: async ({ item }) => ({ output: String(item.input) }),
});
const result = await runExperiment(experiment, { voltOpsClient });
console.log(result.runId); // now created and persisted
```