Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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