Schema Changes
Waza public artifacts use an explicit schemaVersion field so checked-in eval suites, baselines, and dashboard data remain stable across CLI upgrades.
Versioned artifacts
Section titled “Versioned artifacts”| Artifact | Field | Current version |
|---|---|---|
eval.yaml | schemaVersion | 1.2 |
results.json | schemaVersion | 1.2 |
snapshot.json | schemaVersion | 1.0 |
| Dashboard/SSE event envelope | schemaVersion | 1.0 |
Policy
Section titled “Policy”Schema versions use MAJOR.MINOR format with no patch component.
- MINOR changes are backward-compatible additions, usually optional fields. Readers accept same-major artifacts and warn when they see unknown fields.
- MAJOR changes are breaking. Readers refuse artifacts from a different major version and point to
waza migrate <file>. - Missing
schemaVersionis interpreted as the current schema version (currently1.2for eval/result artifacts). Same-major minor differences are accepted and any unknown fields are warned about; cross-major mismatches are rejected. - New eval/result artifacts should emit the current
schemaVersion(currently1.2). The version is automatically populated by the writer; you only need to set it manually when authoring fixtures or schema-pinned test data.
Migration command
Section titled “Migration command”Use waza migrate <file> when a reader reports an incompatible major version.
waza migrate eval.yamlwaza migrate results.jsonFor schema 1.0, the command is a no-op because there is no prior major version to migrate from.
Changelog
Section titled “Changelog”- Added optional
EvalSpec.adversarialto declare built-in fault-injection packs and theon_unsafe_outcomepolicy consumed bywaza adversarial --spec(issue #365). - Added optional
runs[].snapshot_pathtoresults.json, pointing to the per-tasksnapshot.jsonartifact produced bywaza run --snapshot(issue #367). - Introduced
snapshot.jsonas a separatetask-snapshotartifact with its own independentschemaVersion: "1.0", prompt/fixture digests, environment allow-list capture, redaction metadata, and ordered tool-event replay tape (issue #367).
- Added optional
checkpoints[]to task YAML for per-turn graders (after_turn,graders,on_failure). Backward-compatible: 1.0 task files load unchanged. - Added optional
checkpoints[]toresults.jsontask results, recording per-turn grader outcomes. - Added optional
runs[].tool_events[]array toresults.json(issue #366). Each entry captures one tool call withturn,sequence,tool_call_id,tool_name,args,result,success,error, andduration_ms. The legacysession_digest.tool_callsfield is preserved. - Bumped
results.jsonschemaVersiondefault to1.1. Readers accept1.0and1.1interchangeably (same major).
- Added
schemaVersiontoeval.yaml. - Added
schemaVersiontoresults.json. - Added
schemaVersionto the dashboard SSE event envelope type. - Established same-major unknown-field warnings and cross-major reader errors.
- Added the
waza migrate <file>command stub for future major migrations.