cli@1.4.0

leejet/stable-diffusion.cppcli@1.4.0Oct 10, 2026by github-actions[bot]

Upgrading?

AI Summary

This release introduces a dedicated AI checks engine and significantly enhances Server-Sent Events (SSE) support. Checks are now run post-flow completion and include new validation metrics like time-to-first-token.

Key Highlights

  • AI checks are now part of the engine and run after flow completion, not impacting step timings.
  • New check types include `max_ttft_ms`, token budgets, and G-Eval judges.
  • Server-Sent Events responses are read in real-time with access to `response.events` and `response.ttft_ms`.
  • Support for `stream: openai | anthropic | vercel-ai | sse` presets.

New Features

  • AI checks engine with new validation metrics (ttft_ms, budgets)
  • Real-time SSE reading capabilities
  • Cached judge verdicts for performance
  • Parallel judge execution

Full Release Notes

## 1.4.0 (2026-10-10)

### 🚀 Features

- AI checks are now part of the engine. A request or graphql step's `expect:` block (the Stresseur syntax, unchanged) is validated on import and evaluated by `devtools flow run` after the flow's steps finish, so it never counts in step timings. Results are printed under the flow's table and written to the JSON report as each step's `checks[]` (`kind`, `passed`, `score`, `reason`, `judge_model`, `cached`, `value`, `limit`). ([4b494b2f](https://github.com/the-dev-tools/dev-tools/commit/4b494b2f))

  - **Checks:** `schema`/`schema_at`, `max_latency_ms`, the new `max_ttft_ms`, token budgets from `usage`, and a G-Eval `judge` (Anthropic or any OpenAI-compatible API). The judge uses injection-resistant prompting, logprob weighting or borderline re-sampling, and runs in parallel.
  - **Judge key:** `STRESSEUR_JUDGE_API_KEY`, `ANTHROPIC_API_KEY` or `OPENAI_API_KEY`, from the environment or `./.env`. Without one, judge checks are skipped with a notice.
  - **Cache:** verdicts are cached in `--judge-cache`, default `.devtools/judge-cache.json`.
  - **Exit code:** failed checks fail a flow only with `quality: { fail_below: … }`.

  Server-Sent Events responses are now read as they arrive. A text/event-stream response streams automatically; a request step's `stream: openai | anthropic | vercel-ai | sse` picks the preset that assembles the text, and `stream_timeout_ms` bounds an open stream (default 30 s). Assertions, `expect:` and later steps can read `response.text`, `response.events`, `response.event_count`, `response.ttft_ms` and the streamed `response.usage`.

### ❤️ Thank You

- moosebay

Related Repositories