You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
release: v0.3.1 — window-targeted scroll defaults to the target window centre
A scroll with a window target but no x/y/element_index focused the window
and then sent wheel events without moving the pointer, scrolling whatever
happened to sit under the cursor while reporting success. Window-targeted
scroll now defaults its point to the centre of the resolved window (and
errors with a pass-x/y hint when bounds are unavailable). Scroll results
also gain the same off-screen coordinate warning click already had.
Raised by @ilysenko in codex-desktop-linux#650 review.
description = "Scroll an element in a direction by a number of pages.",
807
+
description = "Scroll an element in a direction by a number of pages. With a window target and no x/y/element_index, scrolls at the centre of the targeted window.",
message:"Action sent through the remote desktop portal."
952
+
.to_string(),
953
+
received,
954
+
},
955
+
off_screen_note.clone(),
956
+
));
957
+
}
958
+
Err(_) => self.clear_portal_pointer_session(),
923
959
}
924
-
Err(_) => self.clear_portal_pointer_session(),
925
-
},
960
+
}
926
961
Ok(None) => {}
927
962
Err(_) => {}
928
963
}
@@ -949,7 +984,10 @@ impl ComputerUseLinux {
949
984
}
950
985
sequence.push(wheel_mousemove_args(dx, dy));
951
986
let result = run_ydotool_sequence(&sequence).await;
952
-
Json(action_result("scroll", result, received))
987
+
Json(with_notes(
988
+
action_result("scroll", result, received),
989
+
off_screen_note,
990
+
))
953
991
}
954
992
955
993
#[tool(
@@ -1260,7 +1298,7 @@ impl ComputerUseLinux {
1260
1298
// The rmcp tool_handler macro only accepts a string literal here, so this
1261
1299
// can't be env!("CARGO_PKG_VERSION"); the MCP safety check (CI) fails the
1262
1300
// build if it drifts from the Cargo version.
1263
-
version = "0.3.0",
1301
+
version = "0.3.1",
1264
1302
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."
0 commit comments