|
1 | 1 | # CHANGELOG |
2 | 2 |
|
3 | 3 |
|
| 4 | +## v0.5.0 (2026-03-04) |
| 5 | + |
| 6 | +### Features |
| 7 | + |
| 8 | +- Conditional window capture + recording profiling with auto-wormhole |
| 9 | + ([#12](https://github.com/OpenAdaptAI/openadapt-capture/pull/12), |
| 10 | + [`c58e880`](https://github.com/OpenAdaptAI/openadapt-capture/commit/c58e8800ce4096316bd1af6b5b6db7ce9e9fedc9)) |
| 11 | + |
| 12 | +* feat: disable window capture by default, add recording profiling with auto-wormhole |
| 13 | + |
| 14 | +- Make window reader/writer conditional on RECORD_WINDOW_DATA (defaults to False), eliminating |
| 15 | + unnecessary thread + process + expensive platform API calls - Add throttle to read_window_events |
| 16 | + (0.1s) and memory_writer (1s) loops - Add profiling summary at end of record() with duration, |
| 17 | + event counts/rates, config flags, main thread check, and thread count - Auto-send profiling.json |
| 18 | + via Magic Wormhole after recording stops |
| 19 | + |
| 20 | +Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
| 21 | + |
| 22 | +* fix: skip window requirement when RECORD_WINDOW_DATA=False, set log level to WARNING |
| 23 | + |
| 24 | +- When window capture is disabled, skip the window timestamp requirement in process_events instead |
| 25 | + of discarding all action events - Set loguru log level to WARNING by default (was DEBUG) to reduce |
| 26 | + noise during recording |
| 27 | + |
| 28 | +* fix: set log level to INFO not WARNING |
| 29 | + |
| 30 | +* fix: guard window event save when capture disabled, fix PyAV pict_type compat |
| 31 | + |
| 32 | +- Second reference to prev_window_event in process_events was unguarded, causing AttributeError when |
| 33 | + RECORD_WINDOW_DATA=False - PyAV pict_type="I" raises TypeError on newer versions; fall back to |
| 34 | + integer constant |
| 35 | + |
| 36 | +* fix: use PictureType.I enum for PyAV pict_type, add video tests |
| 37 | + |
| 38 | +- Use av.video.frame.PictureType.I instead of string "I" which is unsupported in current PyAV |
| 39 | + versions - Add test_video.py with tests for frame writing, key frames, and PictureType enum |
| 40 | + compatibility |
| 41 | + |
| 42 | +* fix: use Agg backend for matplotlib, improve wormhole-not-found message |
| 43 | + |
| 44 | +- Set matplotlib to non-interactive Agg backend so plotting works from background threads (fixes |
| 45 | + RuntimeError when Recorder runs record() in a non-main thread) - Improve wormhole-not-found |
| 46 | + message with install instructions |
| 47 | + |
| 48 | +* feat: add per-screenshot timing to profiling, fix stop sequence IndexError |
| 49 | + |
| 50 | +- Track screenshot duration (avg/max/min ms) and total iteration duration per screen reader loop |
| 51 | + iteration in profiling.json - Reset stop sequence index after match to prevent IndexError on extra |
| 52 | + keypresses |
| 53 | + |
| 54 | +* feat: make send_profile opt-in CLI flag, add magic-wormhole as regular dep |
| 55 | + |
| 56 | +Profiling data is no longer auto-sent via wormhole after every recording. Use --send_profile flag to |
| 57 | + opt in. Also promotes magic-wormhole from optional [share] extra to a regular dependency since |
| 58 | + sharing is core functionality. |
| 59 | + |
| 60 | +* fix: address PR #12 review feedback (5 issues) |
| 61 | + |
| 62 | +- Move magic-wormhole back to optional [share] extra (was accidentally made a required dependency; |
| 63 | + recorder.py already handles ImportError) - Remove module-level logger.remove() that destroyed |
| 64 | + global loguru config for all library consumers; configure inside record() instead - Replace |
| 65 | + duplicate wormhole-finding logic with _find_wormhole() from share.py to eliminate code duplication |
| 66 | + - Add 60s timeout to _send_profiling_via_wormhole to prevent blocking indefinitely waiting for a |
| 67 | + receiver - Replace unbounded _screen_timing list with _ScreenTimingStats class that computes |
| 68 | + running stats (count/sum/min/max) in constant memory |
| 69 | + |
| 70 | +--------- |
| 71 | + |
| 72 | +Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
| 73 | + |
| 74 | + |
4 | 75 | ## v0.4.0 (2026-03-03) |
5 | 76 |
|
6 | 77 | ### Features |
|
0 commit comments