Skip to content

v0.8.1

Latest

Choose a tag to compare

@hidai25 hidai25 released this 26 Jul 19:53
afbc7f6

EvalView 0.8.1 — the release that was written in July and never actually shipped. PyPI has been serving 0.8.0 since May; this closes that gap and folds in a new flag plus two bugs found while adding it.

Added

  • PEP 561 py.typed marker: the package now ships its inline type annotations, so mypy/pyright type-check code that imports evalview (e.g. from evalview import gate) instead of treating it as untyped.
  • evalview check --watch: re-runs the check on every file change, so the snapshot / check loop you already know gains a watch mode without reaching for a third command. Delegates to the same watcher as evalview watch. Supports TEST_PATH, --test, --fail-on, --strict, and --no-judge; combining it with one-shot options (--json, --report, --heal, …) is a loud error rather than a silently dropped flag.

Fixed

  • evalview watch never re-ran on file change. The watch loop runs under asyncio.run(), but a triggered check called the synchronous gate(), which calls asyncio.run() again — so every save failed with asyncio.run() cannot be called from a running event loop, rendered as a red Check failed: line. The startup banner and the initial check both succeeded, which is why this looked healthy. Triggered checks now go through gate_async(). Affected every release since watch mode shipped in 0.5.5.
  • Skill test suites broke directory loading. load_from_directory recurses, so a skill suite in a subdirectory (evalview skill territory, identified by its skill: key) was parsed as a plain test case and failed the whole load. This broke evalview check demo-tests — a directory shipped with the package — with three Pydantic errors. Skill suites are now skipped.
  • Test-case load errors now name the file. A malformed file in a directory of many previously reported a bare 3 validation errors for TestCase with nothing to grep for; the path is now included. Note: TestCaseLoader.load_from_directory now raises ValueError wrapping the underlying pydantic ValidationError. Since ValidationError subclasses ValueError, except ValueError callers are unaffected; anything catching ValidationError specifically should widen to ValueError.
  • Bumped the GitHub Action pin in README and docs/CI_CD.md from v0.8.0 to v0.8.1.
  • Synced stale version strings: evalview.__version__ (was 0.7.0) and the MCP registry server.json (was 0.6.1) now match the released version.

Install: pip install --upgrade evalview

Full changelog: https://github.com/hidai25/eval-view/blob/main/CHANGELOG.md