From a6719b4330328d647f77f96445637de7f2de293f Mon Sep 17 00:00:00 2001 From: Avi Fenesh Date: Wed, 12 Aug 2026 00:32:12 +0300 Subject: [PATCH] release: v0.4.8 --- CHANGELOG.md | 14 +++++++++++++- Cargo.lock | 2 +- Cargo.toml | 2 +- package.json | 2 +- src/server.rs | 2 +- 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ffd4be..6df0d94 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.4.8] - 2026-08-12 + +### Fixed +- AT-SPI state capture now reaches deeply nested GTK4 controls such as Nautilus + file cells by using a 1,000-node default budget and depth-32 traversal, with + bounded 2,000-node and depth-64 limits shared by the MCP and CLI paths. +- `install.sh` now treats unavailable window-targeting or exact-focus support as + a degraded platform capability when MCP registration, accessibility trees, + and development input are ready, while missing core prerequisites remain hard + failures. The same classification applies when `jq` is unavailable. + ## [0.4.7] - 2026-08-09 ### Fixed @@ -418,7 +429,8 @@ pages; also bumps the MCP server's advertised version string to match. - Validated against GNOME 50.1 on Wayland (Ubuntu 25.10). - KDE / Sway / Hyprland untested — see README support matrix. -[Unreleased]: https://github.com/agent-sh/computer-use-linux/compare/v0.4.7...HEAD +[Unreleased]: https://github.com/agent-sh/computer-use-linux/compare/v0.4.8...HEAD +[0.4.8]: https://github.com/agent-sh/computer-use-linux/compare/v0.4.7...v0.4.8 [0.4.7]: https://github.com/agent-sh/computer-use-linux/compare/v0.4.6...v0.4.7 [0.4.6]: https://github.com/agent-sh/computer-use-linux/compare/v0.4.5...v0.4.6 [0.4.5]: https://github.com/agent-sh/computer-use-linux/compare/v0.4.4...v0.4.5 diff --git a/Cargo.lock b/Cargo.lock index a12ed18..fc5c2b8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -313,7 +313,7 @@ dependencies = [ [[package]] name = "computer-use-linux" -version = "0.4.7" +version = "0.4.8" dependencies = [ "anyhow", "atspi", diff --git a/Cargo.toml b/Cargo.toml index 2c05666..b9243f5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "computer-use-linux" -version = "0.4.7" +version = "0.4.8" edition = "2021" authors = ["Avi Fenesh "] license = "MIT" diff --git a/package.json b/package.json index e26d76f..8007e8a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@agent-sh/computer-use-linux", - "version": "0.4.7", + "version": "0.4.8", "description": "Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.", "license": "MIT", "type": "commonjs", diff --git a/src/server.rs b/src/server.rs index bb1d04e..e819534 100644 --- a/src/server.rs +++ b/src/server.rs @@ -1689,7 +1689,7 @@ impl ComputerUseLinux { // The rmcp tool_handler macro only accepts a string literal here, so this // can't be env!("CARGO_PKG_VERSION"); the MCP safety check (CI) fails the // build if it drifts from the Cargo version. - version = "0.4.7", + version = "0.4.8", instructions = "Begin every turn that uses Computer Use by calling get_app_state. If diagnostics report disabled GNOME accessibility, call setup_accessibility before asking the user to retry. Use list_windows/focused_window before targeted keyboard input. If diagnostics report windowing.can_list_windows=false on GNOME, call setup_window_targeting to install the optional GNOME Shell extension backend, then ask the user to log out and back in if the setup report says a shell reload is required. This Linux backend can capture size-bounded screenshots through GNOME Shell or XDG Desktop Portal, read AT-SPI trees with action/value metadata, invoke native AT-SPI actions, set AT-SPI values or editable text, list/focus compositor windows through registered Linux window backends when the session permits it, attach best-effort terminal tty/process metadata to terminal windows, send coordinate or element-targeted click/scroll/drag input through the Wayland remote desktop portal when available, and send layout-safe literal type_text through KDE clipboard integration on Plasma Wayland or through portal keysyms on other Wayland sessions before falling back to ydotool. Screenshot results include width/height for the returned image plus coordinate_width/coordinate_height and scale for desktop coordinate conversion; request more detail with max_width, max_height, max_bytes, format=jpeg, quality, or a smaller target/crop instead of relying on unbounded screenshots. Tools with readOnlyHint=false may mutate local desktop or application state; hosts should require approval for actions that can submit, delete, send, purchase, or overwrite data. For element-targeted actions, prefer element_index from the latest get_app_state result; click, perform_action, and set_value can also use semantic role/name/text/states selectors when the target is unique. type_text and press_key accept optional window_id, pid, app_id, wm_class, title, tty, terminal_pid, terminal_command, or terminal_cwd selectors and refuse targeted input if focus cannot be verified. After targeted keyboard input, results append focused-element feedback from AT-SPI (role, name, editable) and warn when no editable element holds focus — treat that warning as the input not landing. Screenshot, click, and input results warn when the target window or coordinate is partially or fully off-screen; use move_window/resize_window (GNOME Shell extension backend) to bring a window fully on-screen before retrying. scroll accepts the same window targeting and relative coordinates as click. get_app_state returns a compact readiness block by default; pass verbose=true for the full diagnostics dump. Electron apps expose no AT-SPI tree unless launched with --force-renderer-accessibility." )] impl ServerHandler for ComputerUseLinux {}