Skip to content

Add strict Studio widget path selectors - #335

Closed
ZhangHanDong wants to merge 1 commit into
fix/studio-transport-deadlinesfrom
fix/studio-widget-path-selection
Closed

ZhangHanDong wants to merge 1 commit into
fix/studio-transport-deadlinesfrom
fix/studio-widget-path-selection

Conversation

@ZhangHanDong

@ZhangHanDong ZhangHanDong commented Sep 10, 2026 •

Copy link
Copy Markdown

Repeated widget IDs in retained panes cannot be selected safely from flat snapshot geometry. This adds an optional Studio selector path, backed by the native visibility-aware widget-path query from the companion Makepad change.

Integration status: the complete change is included in #336, which targets main directly. This Draft remains available to review the narrower diff; it does not need to merge before #336. Validation below applies to this branch's revision. Final integration validation and current limitations are recorded in #336.

The harness validates a bounded list of safe named segments, sends a correlated native WidgetQuery, requires exactly one native rectangle, and intersects that result with a fresh widget snapshot including text, value, window identity, and window-coordinate translation; enabled state is then enforced by the existing input guard. Zero, multiple, malformed, mismatched-build/query, and old-server responses fail closed. Snapshot-only matching rejects path selectors at every nesting depth, and the harness never falls back to flat ID matching, geometry order, or the first result.

Validation:

  • Full release harness test suite: 46 passed, 0 failed
  • Focused fake Studio coverage verifies exact query/build/text correlation before snapshot matching
  • R8 integration aligned all four Makepad declarations and retained lockfile source IDs to companion head 4dfb79e47a4c3656dfb5f2ac81ea88aa6ab4c749; locked release app and harness builds passed
  • R8 focused approval suite: 62 passed, 0 failed
  • A live R8 Studio query for info_button/inner_button selected the visible control in the intended retained pane and opened the corresponding information view; before/after state and the resulting frame were reviewed
  • Task contract parses successfully; lint quality score 0.9167 with advisory documentation/metadata warnings only

The companion Makepad #9/#10 changes have now entered dev through Makepad #11. The live check above validates this control path only; it is not an overall approval E2E or Computer Use validation.

The native query and snapshot are sequential observations rather than one atomic frame. A visibility/layout change between them fails when the rectangles differ; identical state that changes away and back cannot be causally distinguished. Existing bounded deadlines and no-replay behavior remain in force.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant