Skip to content

shuttle v0.1.10

Choose a tag to compare

@github-actions github-actions released this 20 Oct 15:18
· 132 commits to main since this release
  • Background gui_plan. With [desk] input = "background", gui_plan drives the window its app or wait step names, and the dialogs that window owns, without fronting it or moving your pointer, on macOS and Windows; it refuses only on Linux. It reads that window by its id, and refuses input when another window of the app has the same title, a step that needs the screen, a macOS menu-bar entry, a close of a dialog it cannot tie to the window, input the driver could not confirm that its own read or the next wait, verify or expect step does not show, and input after its window is gone; an app that brings itself to the front fails the step. Known limits: the typing check counts the text in any element of the window, and a macOS dialog with no owner is taken by its app and its arrival after input. desk windows names the window that owns a macOS sheet or a Windows owned window as owner (safety.md).
  • Computer verbs on macOS and Windows. desk computer_state, computer_act, computer_end, computer_scale and look answer on macOS and Windows as on Linux, refused under an app allowlist. Screenshots and the settle come from cua-driver's captures; screenshot pixels map to the screen by the driver's screen and screenshot widths when it reports no frame_scale; keys and typing go to the frontmost window; input at a screen point now goes in foreground delivery, so it drives the real pointer and may bring the app it clicks to the front, and on a Retina Mac it goes in capture pixels; window bounds may be fractional; and an element whose macOS app refuses its press action gets one click at its centre when the accessibility hit test there lands in its own window. look with a region cuts it from a full-size driver capture wherever MIT-SHM is not available.
  • macOS launch grace. A macOS app in its first 10 s on screen is no longer skipped from windows for 10 s when its accessibility reads keep timing out, so a launch that keeps its app busy no longer hides its window past a gui_plan app step's 8 s wait (the 0.1.9 known issue). An app that was on screen before keeps the 2 s / 10 s rule.
  • macOS typing pace. macOS foreground typing of basic-plane text no longer waits 30 ms per character in the driver: 20 characters take about 385 ms in place of 866. Astral characters, such as most emoji, and background typing keep the driver default.
  • Windows pipe hang-up. On Windows a client connection dropped with a write still pending cancels its I/O, so the other end sees the hang-up at once: a service splice whose first pump ended and a call an MCP cancel dropped mid-write left the server waiting before, since the handle stayed open until a write it never read completed.
  • Bundled: cua-driver v0.37.0-loomhand.2 (was v0.37.0-loomhand.1): on macOS get_desktop_state with no overlay to leave out captures through ScreenCaptureKit instead of a screencapture process, about 170 ms in place of 325 ms at a 1024 cap on a GPU-less VM; on Linux an ended session keeps its master pointer while its menus are open by upstream's own code (trycua/cua#5254), and a text may use keycode 248 as a spare, so 18 of a desktop box's 19 free keycodes.
  • Known issue: on a Retina Mac guest whose apps answer accessibility slowly, a gui_plan step can still fail with no accessibility answer within 3000 ms, or find a just-launched window late; this is the app's own latency, not the skip.