Skip to content

HFlow 0.2.11

Choose a tag to compare

@kstonekuan kstonekuan released this 18 Sep 19:17
d99ad0a

HFlow 0.2.11 makes check execution and processing async-only. Existing callers must migrate.

  • Define checks with async def and await built-in checks.
  • Await App.process, process_many, test, test_many, process_stage_batch, and run_stages_directly. Use asyncio.run(...) at synchronous script entry points; the CLI and generated Airflow tasks handle this boundary.
  • Checks run on the caller's event loop. Batch processing preserves input order and bounds admission; cancellation stops active checks and drains started blocking work before releasing episode files.
  • Use hflow.asyncio_utils.run_blocking for existing blocking media/file work. Threads cannot be forcibly stopped, so use native async clients for interruptible HTTP/model requests.
  • Build AI and example model integrations now use async clients. Hosted checks enforce a total deadline across request attempts, streamed response reads, and retry delays. Connections are reused within a check invocation and closed on exit.

CheckResult and report schemas remain unchanged. Transform, enrichment, derived-channel, and progress callbacks retain synchronous signatures. Canonical transform identity is unchanged by this API migration.

This release also includes the real-camera LeRobot workflow, stricter LeRobot input validation, fail-closed joint-motion measurements, atomic contact-sheet staging, and a shared single-SELECT SQL gate for dry-run and manifest-writing curation, already merged since 0.2.10.

Migration guide · Full changelog