v0.5.3
v0.5.3 (2026-06-13)
Bug Fixes
recorder.py computed monitor dimensions via utils.take_screenshot() at module scope, so import openadapt_capture crashed in any headless environment whose display reported a zero-size region. This took down openadapt version and openadapt doctor (found via the new CLI smoke tests in OpenAdaptAI/OpenAdapt). Move the computation into the video-setup function that is its only consumer.
Adds tests/test_headless_import.py: a deterministic AST guard that no package module calls a display API (take_screenshot/get_monitor_dims/ grab) at import scope. A subprocess import test is unreliable (only reproduces on a genuinely headless display); this fails regardless of environment.
Co-authored-by: Claude Fable 5 noreply@anthropic.com
Testing
Ecosystem rollout of the OpenAdaptAI/OpenAdapt#999 guards (see openadapt-ml#64, OpenAdapt#1002, openadapt-evals#262):
- tests/test_import_integrity.py: AST-based phantom-import and
phantom-kwarg detection, including imports inside function bodies
(40 modules scanned; this package is clean - zero findings) - release.yml: file/append a GitHub issue when the release workflow
fails, so PyPI cannot silently go stale
Co-authored-by: Claude Fable 5 noreply@anthropic.com
Detailed Changes: v0.5.2...v0.5.3