v1.2.0
·
299 commits
to master
since this release
Immutable
release. Only release title and notes can be modified.
What's Changed
- a11y: compact snapshot outline + disclose truncation by @xxx in #212
- perf(a11y-linux): read each node's AT-SPI properties concurrently by @xxx in #213
- feat(a11y): configurable snapshot limits (max_nodes) — no more hardwall caps by @xxx in #214
- feat(mcp): optional
returnobserve on glass_type (settle/snapshot parity) by @xxx in #215 - fix(x11): retry a wedged Xvfb once and surface its stderr on failure by @xxx in #216
- feat(a11y): native accessibility-action invoke for click_element by @xxx in #217
- test(a11y-windows): on-box TogglePattern rung + verify check by @xxx in #218
- a11y: declare and test cross-backend role support by @xxx in #219
- chore: pin LF line endings for every checkout by @xxx in #220
- a11y: fill the Windows and macOS role-map gaps the probes found by @xxx in #221
- a11y: fill the Android and iOS role-map gaps the probes found by @xxx in #222
- chore(deps): update dependencies (lockfile + pending majors) by @xxx in #223
- chore(deps): rmcp 2.2 and the tonic 0.14 gRPC stack by @xxx in #224
- test(ios): fold the on-box fixture app into examples/ by @xxx in #225
- chore: move the workspace to Rust edition 2024 by @xxx in #226
- a11y: decide the role matrix's unreachable cells by observation by @xxx in #227
- fix: stop the mobile backends silently discarding launch arguments by @xxx in #228
- fix(ios): stop reporting a window for an app that died on launch by @xxx in #229
- fix(windows,macos): ask an app to close before killing it by @xxx in #230
- fix(macos): don't direct-spawn a system app the kernel will kill by @xxx in #231
- fix(x11,wayland): ask an app to close before signalling it by @xxx in #232
- fix(wayland): bound every sway IPC request so a wedged compositor cannot hang teardown by @xxx in #233
- fix(x11): bound the close request so an unresponsive display cannot hang teardown by @xxx in #234
- fix(x11): don't lose the close request when the ask connection closes by @xxx in #236
- fix(wayland): recover an X11 window the compositor never surfaced by @xxx in #235
- feat(smoke): glass-mcp smoke --backend x11 by @xxx in #237
- feat(smoke): drive the wayland backend by @xxx in #238
- ci(smoke): gate on mutation testing, and fix what it found by @xxx in #240
- feat(smoke): drive the android backend by @xxx in #241
- Remove the smoke subcommand by @xxx in #243
- ci: name the mutation gate after what it gates by @xxx in #244
- ci: make the weekly mutation sweep informational by @xxx in #247
- test(diff): clear diff.rs of surviving mutants by @xxx in #248
- test(marks): clear marks.rs of surviving mutants by @xxx in #249
- test(a11y): clear accessibility.rs of surviving mutants by @xxx in #250
- test(session/a11y): clear session/a11y.rs of surviving mutants by @xxx in #251
- test(session/wait): clear the scroll geometry of surviving mutants by @xxx in #252
- ci: let the weekly mutation sweep fail again by @xxx in #253
- fix(android): report the failed uiautomator dump, and wait for it on a cold device by @xxx in #254
- fix(ios): take the display scale from the target, not the app's tree by @xxx in #255
- docs(ios): correct a doc left describing the removed scale derivation by @xxx in #257
- fix(macos): ship a README in the release .zip and .dmg by @xxx in #258
- feat(a11y): give every node a description, and source it on Linux by @xxx in #259
- a11y: source the description field on Windows and macOS by @xxx in #261
- mobile: bound every one-shot adb, simctl, emulator, plutil and ps call by @xxx in #264
- fix: report a set_value that did not take on the backends that type it by @xxx in #267
- fix: make glass doctor measure the accessibility reader and the iOS target by @xxx in #268
- fix: a switch reports the same role wherever the platform marks one by @xxx in #269
- perf: stop re-walking the tree while a wait waits by @xxx in #270
- docs(mcp): describe every tool parameter, and the six thinnest tools by @xxx in #271
- a11y: source the description field on Android and iOS by @xxx in #272
- a11y(android): one name rule for both readers by @xxx in #274
- fix(core): wait for the stdin write's outcome instead of guessing at it by @xxx in #283
- fix(core): a wait shorter than the re-read ceiling could answer from one stale read by @xxx in #284
- a11y-windows: event-gated waits over UI Automation by @xxx in #281
- docs: one heading per kind in [Unreleased] by @xxx in #285
- a11y(android): actuate element clicks through the accessibility service by @xxx in #291
- fix(macos): name what adoption chose, and what select_window rejected by @xxx in #292
- fix(macos): report the adopted window's settled geometry by @xxx in #295
- docs(macos): correct when the probe's early sampling starts by @xxx in #296
- build: make --workspace work on macOS by @xxx in #297
- Gate glass-ios's crate root to cfg(unix); unblock --workspace build/clippy on Windows CI by @xxx in #298
- fix(ci): run cargo test --workspace on Windows by @xxx in #301
- refactor: rename glass-sandbox-core to glass-sandbox-unix by @xxx in #302
- refactor: rename glass-clip-hook to glass-clip-shim-windows by @xxx in #303
- test(android): make four assertions able to fail by @xxx in #304
- ci(macos): run every crate's lib tests by @xxx in #306
- docs(ci): correct a macOS comment that contradicts its own step by @xxx in #307
- docs: say what to run to cover a change, per host by @xxx in #308
- fix(test): remove a pacing floor that cannot fail, and an ordering bias by @xxx in #309
- fix(a11y): disclose subtrees dropped by a failed child read by @xxx in #310
- fix(windows): probe WGC on a thread this code owns by @xxx in #311
- fix(a11y-android): bound a dump attempt as a whole, not per adb call by @xxx in #312
- fix(a11y-android): give every dump attempt a file of its own by @xxx in #313
- fix(a11y-android): answer for the app that was asked about by @xxx in #317
- test(a11y-android): pin what click resolution accepts by @xxx in #321
- ci(android): a scheduled Android device leg by @xxx in #325
- fix(a11y-android): a control that moved is the same control by @xxx in #328
- fix(a11y-android): an element that is gone is not an element that changed by @xxx in #330
- ignore old mutants dir as well by @xxx in #332
- test(core): close the gaps a whole-crate mutation sweep found by @xxx in #333
- test(a11y-android): prove a session click takes the native action by @xxx in #334
- refactor(android): let the backend choose its own accessibility reader by @xxx in #335
- docs: a terse-comments sweep over the whole workspace by @xxx in #336
- docs: a terse-comments sweep over the workspace's doc comments by @xxx in #337
- ci(android): make the device suite schedule-only by @xxx in #339
- ci(android): stream logcat for the whole run, not a dump at teardown by @xxx in #340
- fix(a11y-android): retry a uiautomator dump that crashed without saying why by @xxx in #342
- fix(a11y): wait for an app to publish its accessibility tree, don't fail on it by @xxx in #343
- test(android): tear the device down when a test panics, not only when it passes by @xxx in #344
- fix(android): say what was on screen when no window appeared, not just how long by @xxx in #345
- fix(a11y-android): bound readiness retries by attempts, not by a clock they outlast by @xxx in #346
- fix(a11y): let a caller's timeout reach the accessibility reader by @xxx in #347
- test(android): say which step left the search screen down, and retry the transient by @xxx in #349
- fix(a11y-android): owe the read before a write a second attempt by @xxx in #350
- ci(android): wait for the device to settle before the suite starts by @xxx in #351
- ci(android): size the settle budget from CI, not from the dev box by @xxx in #352
- fix(android): classify tool failures by their kind, not by their wording by @xxx in #353
- fix(a11y-android): carry the device's own node ref, don't infer it by @xxx in #354
- allow MUTANT_TIMEOUT override from cli by @xxx in #355
- tooling(mutants): let a caller scope a run to any package by @xxx in #356
- docs: record five user-facing changes that merged without an entry by @xxx in #357
- fix(build): make a local build's version name the commit it was built from by @xxx in #358
- fix(ios): say the element is gone when the write replaced the screen by @xxx in #360
- fix(a11y): confirm a write against the element wherever it moved to by @xxx in #364
- fix(a11y-ios): resolve a write's target by identity, and send its keystrokes together by @xxx in #365
- docs(changelog): close [Unreleased] as [1.2.0] by @xxx in #366
Full Changelog: v1.1.0...v1.2.0