diff --git a/CHANGELOG.md b/CHANGELOG.md index 68bb526..1ffd4be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.4.7] - 2026-08-09 + ### Fixed - `install.sh` now recognizes Artix as pacman-based, chooses an explicitly requested or unambiguous package manager for unknown distros, treats @@ -416,7 +418,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.6...HEAD +[Unreleased]: https://github.com/agent-sh/computer-use-linux/compare/v0.4.7...HEAD +[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 [0.4.4]: https://github.com/agent-sh/computer-use-linux/compare/v0.4.3...v0.4.4 diff --git a/Cargo.lock b/Cargo.lock index 1cb96ac..a12ed18 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -313,7 +313,7 @@ dependencies = [ [[package]] name = "computer-use-linux" -version = "0.4.6" +version = "0.4.7" dependencies = [ "anyhow", "atspi", diff --git a/Cargo.toml b/Cargo.toml index 4805351..2c05666 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "computer-use-linux" -version = "0.4.6" +version = "0.4.7" edition = "2021" authors = ["Avi Fenesh "] license = "MIT" diff --git a/package.json b/package.json index 4322803..e26d76f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@agent-sh/computer-use-linux", - "version": "0.4.6", + "version": "0.4.7", "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 de7a8b1..6c537a2 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.6", + version = "0.4.7", 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 {}