Linux Inspector: window-id capture accuracy and geometry alignment#700
Conversation
🔎 ZeuZ PR ReviewOpen the full report in ZeuZ: Review findings and apply suggestions
Agent breakdown→ General ReviewStatus: ✅ Completed The PR is directionally solid, but there is a notable correctness gap around → Security ReviewStatus: ✅ Completed No high-signal security issues found in the PR diff. The changes add Linux window enumeration and screenshot alignment logic, plus pinned dependencies, without introducing a clear injection, authz, or secret-handling flaw. → Performance ReviewStatus: ✅ Completed I found one performance risk: the new Linux apps/window discovery path now shells out to → Testing ReviewStatus: ✅ Completed The Linux inspector change adds new window-aware behavior and a new
|
🔎 ZeuZ PR ReviewOpen the full report in ZeuZ: Review findings and apply suggestions
Agent breakdown→ General ReviewStatus: ✅ Completed I found one correctness issue in the new window-selection fallback, plus one maintainability issue in the API model definition. → Security ReviewStatus: ✅ Completed No high-signal security issues found in this PR diff. The changes add window selection and geometry alignment without introducing obvious injection, authz, or secret-handling regressions. → Performance ReviewStatus: ✅ Completed The PR adds useful multi-window support, but it also introduces several extra xdotool round-trips on the hot paths for app lookup and → Testing ReviewStatus: ✅ Completed The PR adds important Linux window-selection and geometry-alignment logic, but there are no tests covering the new code paths in
|
…geometry alignment Crops composite captures to the AT-SPI frame bounds so screenshots align with accessibility-tree coordinates, and allows callers to target a specific window by id instead of just app name.
1d36d8e to
a3c40a7
Compare
🔎 ZeuZ PR ReviewOpen the full report in ZeuZ: Review findings and apply suggestions
Agent breakdown→ General ReviewStatus: ✅ Completed I found one high-impact issue in the new screenshot alignment logic: the crop rectangle is computed from AT-SPI desktop coordinates but compared against the captured window's local geometry, so the alignment path will often never apply. I also noted a smaller maintainability issue around a mutable model default. → Security ReviewStatus: ✅ Completed No security-relevant issues found in the PR diff; the changes are focused on window selection and screenshot alignment without introducing obvious injection, auth, or data-exposure risks. → Performance ReviewStatus: ✅ Completed One performance concern: → Testing ReviewStatus: ✅ Completed The PR adds new window-selection and frame-alignment behavior, but I don’t see any tests covering the new Linux inspector paths or the regression scenario they fix.
|
🔎 ZeuZ PR ReviewOpen the full report in ZeuZ: Review findings and apply suggestions
Agent breakdown→ General ReviewStatus: ✅ Completed I found one behavior regression in the web click path; the rest of the diff looks broadly reasonable from a review pass. → Security ReviewStatus: ✅ Completed No high-confidence security issues were introduced by this PR diff. The changes mainly add window scoping and geometry alignment for Linux inspection, without exposing a clear injection, authz, or secret-handling regression. → Performance ReviewStatus: ✅ Completed No high-signal performance regressions stand out in this diff. The added window targeting and geometry alignment look correctness-driven, and the new executor usage in → Testing ReviewStatus: ✅ Completed The PR adds several Linux-inspector code paths but I couldn’t find corresponding tests in the repo, so the main gap is missing coverage for the new window-aware inspection and app/window discovery behavior.
|
Summary
window_idinput tocapture_screenshotandget_ui_treeso a specific Linux window can be captured/queried directly._get_frame_geometry_for_windowand crop composite screenshots to the matching AT-SPI frame bounds to remove the window-frame misalignment.window_idis not provided (fallback remains app-name based).Why this change
Files changed
Framework/Built_In_Automation/Desktop/Linux/BuiltInFunctions.pynode_cli.pyValidation
linux-inspector-installere841933aorigin/devandorigin/linux-inspector-installerReproduction (what to run)
# On repo root git checkout linux-inspector-installer git pull --rebase origin linux-inspector-installer git log --oneline -n 3 git status --short --branch# Push updates if needed git push origin linux-inspector-installerTest plan
1896x1043.700x997.