# Changelog All notable changes to this project will be documented in this file. ## 1.9.0 - 2026-09-15 Changes since 1.8.0: ### Added - Added `context.assert(fn, description)` for scenario/snippet script steps: runs the given function, requires it to return `true`, logs the outcome (`log` on success, `error` on failure or exception), and throws to stop the step on failure. ### Changed - Documented `context.assert` in `docs/scenario.md`. ## 1.8.0 - 2026-09-15 Changes since 1.7.1: ### Added - `context.downloadFile()` now accepts `data:` URIs, so scenario steps can save in-script generated content (e.g. a credential JWT) as a run artifact without a network fetch. ### Changed - Documented the full scenario step `context` file API (`getScenarioFiles`, `downloadFile`) in `docs/scenario.md`. ## 1.7.1 - 2026-04-21 Changes since 1.7.0: ### Added - Added MCP tools to upload, list, and fetch scenario files using base64 content payloads. - Added MCP tools to list run artifacts and fetch run artifact content with metadata. ### Changed - Documented MCP binary content handling for scenario files and run artifacts. ## 1.7.0 - 2026-04-21 Changes since 1.6.1: ### Added - Added scenario file storage and run artifact support on the backend. - Added file management UI for scenarios and run details, including artifact lists. - Added snippet CRUD tools to the MCP server. ### Changed - Added dynamic page titles based on the active client content. - Extended the scenarios list to show the latest run status and timestamp. ### Fixed - Exposed file expiry metadata in scenario and run file responses. - Disabled expired download actions in the UI while keeping the action visible.