Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.3.4 - 2026-06-16
Added
- (atspi) read cache-only row values via text_ref/value_ref/selected_text_ref
Other
- (atspi) measure event-cache behavior and specify the design (#11)
- restore the GitHub-native video URL in the README
- (atspi) parallelize the tree-walk snapshot (#11)
- add a download-link fallback to the README demo video
- serve the demo video from the repo instead of a dead GitHub URL
- slim README to a landing page, defer detail to waydriver.io
- add mdBook documentation site with GitHub Pages deploy
- (atspi) benchmark tree-walk cost on a large synthetic tree (#11)
0.3.3 - 2026-06-14
Added
- (locator) drag_to_coords for off-window drop endpoints
- (gaction) drive app./win. GActions via org.gtk.Actions (#33)
- external-effect sinks (notifications/portal) + single-instance CLI forwarding
- (atspi) activate cache-only accessibles by (bus, path) ref
- (visual) add perceptual baseline-compare primitive
- live GSettings writes + AT-SPI Value/scroll readback
- (visual) per-search OCR upscale via VisualLocator::with_upscale (#23)
- (session) expose key_down/key_up for held-modifier gestures
Fixed
- (session) claim external-effect sink names before launching the app
- (atspi) resolve LABELLED_BY names for cache-only rows
Other
- release v0.3.2
- add cloud-env (non-Nix) dev tooling for SessionStart and Fedora container
- limit rustdoc to the crate itself (–no-deps)
0.3.2 - 2026-06-14
Added
- (locator) drag_to_coords for off-window drop endpoints
- (gaction) drive app./win. GActions via org.gtk.Actions (#33)
- external-effect sinks (notifications/portal) + single-instance CLI forwarding
- (atspi) activate cache-only accessibles by (bus, path) ref
- (visual) add perceptual baseline-compare primitive
- live GSettings writes + AT-SPI Value/scroll readback
- (visual) per-search OCR upscale via VisualLocator::with_upscale (#23)
- (session) expose key_down/key_up for held-modifier gestures
Fixed
- (session) claim external-effect sink names before launching the app
- (atspi) resolve LABELLED_BY names for cache-only rows
Other
- add cloud-env (non-Nix) dev tooling for SessionStart and Fedora container
- limit rustdoc to the crate itself (–no-deps)
0.3.1 - 2026-06-13
Added
- (atspi) read lazily-realized widgets via focus_walk + cache
Fixed
- (pointer) translate window-relative AT-SPI bounds to screen space
- (session) isolate XDG state/data/cache dirs + verify reported bugs live
Other
- (visual) warn on debug-built OCR stack + document the ~30x cost
0.3.0 - 2026-06-12
Added
- [breaking] harden visual-OCR, locator, and key-chord paths
Fixed
- (capture) stop pipewire runtime-dir nesting overflow at the root
0.2.10 - 2026-06-08
Fixed
- (mcp) keep start_session from hanging on stalled setup
0.2.9 - 2026-06-06
Added
- (gsettings) per-session GSettings isolation via keyfile backend
- (scale) custom display scale (HiDPI) for sessions
Other
- apply cargo fmt
0.2.8 - 2026-06-05
Fixed
- (compositor-mutter) snapshot host runtime root to keep session dirs flat
0.2.7 - 2026-06-03
Fixed
- (capture) give the video recorder its own ScreenCast stream
0.2.6 - 2026-05-24
Added
- (mcp) expose visual locator tools (OCR, template match, stdout wait)
- (visual) opt-in visual locator stack — OCR, flood-fill regions, template matching
Other
- (visual) apply rustfmt to visual locator stack
0.2.5 - 2026-05-13
Added
- (locator) pointer-click fallback for widgets without AT-SPI Action
0.2.4 - 2026-05-12
Fixed
- (session) prime mutter keyboard focus to prevent first-keypress drop
0.2.3 - 2026-04-29
Fixed
- (compositor-mutter) scrub stale PIPEWIRE_REMOTE before spawning per-session pipewire stack
Other
- (readme) embed gnome-calculator demo video
0.2.2 - 2026-04-26
Added
- (locator) pointer-click fallback when fill target lacks Component::grab_focus
- (input) thread CancellationToken through InputBackend for prompt kill
- (locator) element-scoped pointer actions (hover, double_click, right_click, drag_to)
- (locator) Locator::select_option via AT-SPI Selection interface
- (input) Locator::scroll_into_view with AT-SPI + wheel fallbacks
- (input) Locator::fill(), absolute pointer motion, Session::type_text (WAY-5)
- (atspi) capture element bounds via Component::get_extents
Fixed
- (mcp) kill_session no longer blocks on in-flight tool auto-waits
Other
- release v0.2.1
- refresh AGENTS.md and README.md for current API surface
- workspace-wide audit pass tightening trait surfaces and error types
- (mcp) split tool handlers into per-concern modules
- (mcp) split monolithic main.rs into focused modules
- split e2e tests into waydriver-e2e crate, add configurable video_fps
- (error) preserve typed error sources on Atspi/Process/Screenshot
- (compositor-mutter) separate doc paragraph before stage rationale
0.2.1 - 2026-04-26
Added
- (locator) pointer-click fallback when fill target lacks Component::grab_focus
- (input) thread CancellationToken through InputBackend for prompt kill
- (locator) element-scoped pointer actions (hover, double_click, right_click, drag_to)
- (locator) Locator::select_option via AT-SPI Selection interface
- (locator) layered wait_for / wait_until / wait_until_async primitives
- (input) Locator::scroll_into_view with AT-SPI + wheel fallbacks
- (input) Locator::fill(), absolute pointer motion, Session::type_text (WAY-5)
- (atspi) capture element bounds via Component::get_extents
- (locator) add richer AT-SPI state predicates and matching waiters
Fixed
- (session) bound kill latency with AT-SPI method timeout and shutdown budget
- (mcp) kill_session no longer blocks on in-flight tool auto-waits
Other
- refresh AGENTS.md and README.md for current API surface
- workspace-wide audit pass tightening trait surfaces and error types
- (error) preserve typed error sources on Atspi/Process/Screenshot
- split e2e tests into waydriver-e2e crate, add configurable video_fps
- (mcp) split tool handlers into per-concern modules
- (mcp) split monolithic main.rs into focused modules
- (compositor-mutter) separate doc paragraph before stage rationale
0.2.0 - 2026-04-24
Added
- (fixture) GTK4/libadwaita e2e fixture with stdout event capture
- (input) keyboard chord support via key_down/key_up primitives
- (atspi) Locator::focus via Component::grab_focus
- (atspi) auto-wait and explicit wait_for_* on Locator
- (atspi) [breaking] XPath-based locator API over AT-SPI tree
- (capture) WebM video recording for sessions
- (mcp) configurable virtual-monitor resolution
- (mcp) per-session event log and static HTML viewer
- (mcp) configurable report dir with per-session screenshot counter
Other
- update README and AGENTS.md for Locator API
- (release) move CHANGELOG.md into waydriver crate with root symlink
- (release) consolidate per-crate changelogs into workspace CHANGELOG
- (mcp) drop flaky second-screenshot assertion in e2e
0.1.3 - 2026-04-17
Added
- add publishable builder image and document multi-language dev workflows
0.1.2 - 2026-04-16
Added
- (mcp) add Docker packaging and container-based e2e test
0.1.1 - 2026-04-16
Added
- add MCP server for AI-driven headless UI testing
Other
- add rustdoc comments to public API surface
- add per-distro dependency tables and install commands to README